繁体   English   中英

PHP + MySQL打印查询结果

[英]PHP+MySQL Printing query results

我曾经像这样打印MySQL查询结果:

$query="SELECT fname,lname,email FROM users";
    $result=mysql_query($query);
    $num=mysql_numrows($result);
    mysql_close();
    $i=0;
    echo '<table BORDERCOLOR=black>';
    ?>
    <tr>
    <th>Vardas</th><th>Pavarde</th><th>E-Mail</th>
    </tr>

    <?php

    while ($i < $num) {
        $field1=mysql_result($result,$i,"fname");
        $field2=mysql_result($result,$i,"lname");
        $field3=mysql_result($result,$i,"email");

        echo "<td>";
        echo $field1; 
        echo "</td>";
        echo "<td>";
        echo $field2;
        echo "</td>";
        echo "<td>"; 
        echo $field3;
        echo "</td>";
        echo "</tr>";
        $i++;
    }
    echo "</table>";

但是这一次我必须使用不同的东西,并且我想知道在使用如下所示的函数/查询时如何打印结果:

查询代码(在“类数据库”中):

function query($querytext) {
        $rs = mysql_query($querytext, $this->_link);
        if($this->_debug) {
            $this->addDebugMessage("\t<tr>\n\t\t<td class=\"debug_nr\">".$this->_queryCount++."</td>\n\t\t<td class=\"debug_queInfo\"><b>Query: (".@mysql_num_rows($rs).")</b></td>\n\t\t<td>" . htmlspecialchars($querytext) . "</td>\n\t</tr>\n");
            if(mysql_error() != '') {
                $this->addDebugMessage("\t<tr>\n\t\t<td class=\"debug_nr\">".$this->_queryCount++."</td>\n\t\t<td class=\"debug_queInfo\"><b>Error #".mysql_errno($this->_link)." :</b></td>\n\t\t<td>" . htmlspecialchars(mysql_error($this->_link)) . "</td>\n\t</tr>\n");
            }
        }
        if($rs) {
            $num_rows = @mysql_num_rows($rs);
            if($num_rows) {
                if($num_rows > 0) {
                    $rsarray = array();
                    while($line = mysql_fetch_array($rs , MYSQL_ASSOC)) {
                        array_push($rsarray, $line);
                    }
                    mysql_free_result($rs);
                    return $rsarray;
                } else {
                    return false;
                }
            } else {
                if(mysql_affected_rows($this->_link) > 0) {
                    return true;
                } else {
                    return false;
                }
            }
        } else {
            return false;
        }
    }

(在“班级用户”中)

function findUser($phrase){
        global $DB;
        $results=$DB->query("SELECT * FROM users WHERE fname LIKE '%'$phrase'%' OR lname LIKE '%'$phrase'%' OR email LIKE '%'$phrase'%'");
            return $results;
    }

在index.php中(我该用什么来打印出来?):

$USER->findUser("john");

也许应该是

$results= $USER->findUser("john);

要么

$results=DB->findUser("john");

看来您有错字

function findUser($phrase){
        global $DB;
        $DB->query("SELECT * FROM users WHERE fname LIKE '%'$phrase'%' OR lname LIKE '%'$phrase'%' OR email LIKE '%'$phrase'%'");
    }

您的查询中有多余的引号。

function findUser($phrase){
        global $DB;
        $DB->query("SELECT * FROM users WHERE fname LIKE '%$phrase%' OR lname LIKE '%$phrase%' OR email LIKE '%$phrase%'");
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM