0

我已经开始制作一个使用 MySql 加载视频的视频脚本,我正在使用 Mysqli。但是,它应该发布 2 行,但它只发布第二行,而不是第一行。它使用“品牌”加载结果,因此如果有 2 行名为“测试”,它只加载第二行,而不加载第一行。那么,是什么原因造成的呢?我试过 3 行,但它不包括第一行。代码

<?php
{ /* Global Data */
ini_set('display_errors', 0); 
ini_set('error_reporting', -0);
$GetPath = $_GET['b'];
$SqlUser = "root";
$SqlPass = "**Private**";
$SqlHost = "localhost";
$SqlData = "heisteknikk";
}
{ /* Mysql Connect */
$Sql = new mysqli($SqlHost, $SqlUser, $SqlPass, $SqlData);
if ($Sql->connect_error) { die("Sorry, Could not connect (".$Sql->connect_errno.") ".$Sql->connect_error);}
}
{ /* Test */

$Brand = $Sql->real_escape_string($GetPath);
$SqlData = "SELECT * FROM videos WHERE Brand = '".$Brand."'";
$SqlQuery = $Sql->query($SqlData);
if (!$SqlQuery) {
    echo $Sql->error;
}
if ($SqlQuery->num_rows == 0) {
die("Nothing was found");
}
$Data = $SqlQuery->fetch_array(MYSQLI_ASSOC);
echo "<table border='1'>";
while ($Heis = $SqlQuery->fetch_assoc()) {
echo "
<tr><td>".$Heis['Brand']."</td><td>".$Heis['Name']."</td><td>".$Heis['Location']."


";
}
echo "</table>";
$Sql->close();
}
?>
4

3 回答 3

4

此行导致错误:

$Data = $SqlQuery->fetch_array(MYSQLI_ASSOC);

使用这一行,您可以有效地丢弃结果集的第一行,因为您根本不会$Data在下面的代码中进行处理。只需删除它,您的脚本应该可以正常工作(我假设</td></tr>粘贴代码时关闭序列丢失了,对吗?)

于 2012-09-04T20:01:57.597 回答
3

注释掉(或者更好的是,删除)这一行:

$Data = $SqlQuery->fetch_array(MYSQLI_ASSOC);

它正在抓取第一行......然后你没有对$Data做任何事情,然后抓取第二行(和连续的行)以在你的 while 循环中显示。注释掉上面的那一行将使您的循环抓取并从第一行开始显示它们。

于 2012-09-04T20:02:10.297 回答
3

在您的代码中

$Data = $SqlQuery->fetch_array(MYSQLI_ASSOC);
echo "<table border='1'>";
while ($Heis = $SqlQuery->fetch_assoc()) {

您正在获取一行(使用fetch_array),将其丢弃,然后获取另一行(使用fetch_assoc)。这可能就是为什么你只看到一排而不是两排

于 2012-09-04T20:02:56.430 回答