0

这可能不是一个很难回答的问题。我在编写这个 PHP 函数时遇到了问题……它逐行返回行,但每次返回的行都递增 4。所以第一行将输出,然后是第 5 行,然后是第 9 行......

function showDatabases() {

# $_GET variables from the URL.
$database = mysql_real_escape_string($_GET['database']);
$table    = mysql_real_escape_string($_GET['table']);   

$mysqli = new mysqli('127.0.0.1', 'root', '', $database);

$query_one = $mysqli->query("SELECT * from $table");

$num_rows   = mysqli_num_rows($query_one);
$num_fields = mysqli_num_fields($query_one);

    for ($x = 0; $x < $num_rows; $x++) {
       for ($c = 0; $c < $num_fields; $c++) {
            $row = mysqli_fetch_row($query_one);
            echo($row[$c]."&nbsp;&nbsp;");
       }
    echo("<br/>");
    }
}

谢谢!

4

2 回答 2

4

mysqli_fetch_row获取整行并将指针移动到下一行。你应该每行只调用一次;现在您每列调用一次。

那是,

for ($x = 0; $x < $num_rows; $x++) {
   $row = mysqli_fetch_row($query_one);
   for ($c = 0; $c < $num_fields; $c++) {
        echo($row[$c]."&nbsp;&nbsp;");
   }
echo("<br/>");
}
于 2012-05-11T17:34:21.020 回答
0

你把事情复杂化了,你只需一个循环就可以做到

$query = "SELECT * from $table";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_assoc()) {
        echo $row['fieldname']."&nbsp;&nbsp;";
    }
}

我建议您在某个时间添加订单,默认订单不是 id 订单。

于 2012-05-11T17:44:21.700 回答