Php 在“while($row=mysqli\u fetch\u array($stmt))”中循环时不进入内部
我试图在我朋友的笔记本电脑中执行以下php程序,但while循环中什么也没有执行Php 在“while($row=mysqli\u fetch\u array($stmt))”中循环时不进入内部,php,html,mysql,mysqli,web-technologies,Php,Html,Mysql,Mysqli,Web Technologies,我试图在我朋友的笔记本电脑中执行以下php程序,但while循环中什么也没有执行 <html> <body> <?php $db_hostname = "localhost"; $db_username = "user"; $db_password = "password"; $db_name = "resulta"; $link=mysqli_connect($db_hostname,$db_username,$db_
<html>
<body>
<?php
$db_hostname = "localhost";
$db_username = "user";
$db_password = "password";
$db_name = "resulta";
$link=mysqli_connect($db_hostname,$db_username,$db_password,$db_name);
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$htno = $_POST['htno'];
$query="select * from marks where hallno=?";
if ($stmt = mysqli_prepare($link, $query)) {
mysqli_stmt_bind_param($stmt, 's', $htno);
/*http://php.net/manual/en/mysqli-stmt.bind-param.php*/
/* execute query */
mysqli_stmt_execute($stmt);
/* store result */
mysqli_stmt_store_result($stmt);
printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));
if(mysqli_stmt_num_rows($stmt)>0)
{
echo "thank you";
echo "recieved";
echo "<table>";
echo "<tr><th>Hall Ticket No.</th><th>Sub. Code</th><th>Sub. Name</th><th>Internal Marks</th><th>External Marks</th><th>Total Marks</th><th>Credits</th></tr>";
//$stmt = mysqli_query($link,$query);
while($row = mysqli_fetch_array($stmt)) {
echo "inside yeah!!!";
echo "<tr><td>" . $row['hallno'] . "</td><td>" . $row['subcode'] . "</td><td>" . $row['subname'] . "</td><td>" . $row['intemarks'] . "</td><td>" . $row['extmarks'] . "</td><td>" . $row['totalmarks'] . "</td><td>" . $row['credits'] . "</td></tr>";
}
echo "</table>";
echo "over";
mysqli_stmt_close($stmt);
mysqli_close($link);
}
else
{
/* close statement */
mysqli_stmt_close($stmt);
echo "Roll No. not found";
}
}
?>
</body>
</html>
我尝试了一个类似的代码,如果有帮助的话,它也可以工作:
$con=mysqli_connect($db_hostname,$db_username,$db_password,$db_name);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// select everything from the news table
$st=0;
$result = 'False';
$result = mysqli_query($con,"SELECT * FROM notif ORDER BY dat desc LIMIT $st, 6");
echo "<ul>";
while($row = mysqli_fetch_array($result)) {
echo "<li style='font-family: 'Open Sans',sans-serif;' ><b><u>[" . $row['subject'] . "]</u></b> " . $row['note'] . " <i>by <b>" . $row['user'] . "</b> on <b>" . $row['dat'] . " </b></i></li>";
echo "<br>";
}
echo "</ul>";
// disconnect from the database
mysqli_close($con);
为了检查计算机是否有问题,我在其他计算机上也尝试了相同的代码,但它没有执行,不知道为什么有些代码正在执行,有些代码没有执行,即使我无法获取结果,但函数printfnumberofrows:%d。\n,mysqli_stmt_num_rows$stmt;给出正确的输出,行数正确
我在运行Ubuntu14.04我也在我朋友的笔记本电脑上试过这个代码,他正在运行Ubuntu14.04,有人能检查一下这两个代码吗?如果它们都在运行,仍然不能理解为什么只有那个代码不工作,在我看来,工作的和不工作的代码都是一样的,但不知道为什么当我为不同的目的编写代码时,他们有时工作,有时不工作
有人能试试代码吗?您的$stmt是mysqli\u stmt类型,这就是为什么它可以与
但是,需要一个mysqli_结果,您可以通过存储mysqli_stmt_store_result$stmt的结果来获得该结果 使等号加倍,如下所示:
while($row == mysqli_fetch_array($stmt))
这不应该是一个比较,而是一个任务。。。。它将调用mysqli_fetch_数组返回的值赋给变量$row,但我已经使用mysqli_stmt_store_result$stmt存储了该变量;在code.yes中,但是您要将$stmt传递给该方法,至少我认为您需要做的是$returnvalue=mysqli\u stmt\u store\u result$stmt;mysqli_fetch_数组$returnvalue;感谢您的回复,但这不起作用。我在我的笔记本电脑上尝试了一个类似的代码,它工作正常,没有任何错误。如果替换这行代码,会发生什么:echo[.$row['subject'].]$行['note']。由$行['user']。开$第['dat'行];用回声测试?你得到的测试回显次数和行数一样多吗?是的,下面给出的代码正常工作,但上面给出的代码不正常。你是说Manfred的代码正常工作吗?不,Manfred的代码不正常我在问题中给出的第三个代码块正常工作,但是第一个和第二个代码块不工作第二个代码块只是第一个代码块中的一个小变化也可以尝试此代码调试$row中的内容,等等。变量:var_dump$row//显示用于调试目的的变量输出
while($row == mysqli_fetch_array($stmt))