gpt4 book ai didi

PHP SQL While 循环不起作用

转载 作者:行者123 更新时间:2023-11-29 01:28:57 26 4
gpt4 key购买 nike

我有一个代码应该从 favorites 中获取所有用户的收藏夹,然后它应该使用该信息从 menus 中获取信息以将它们显示为图片.

它应该做的只是显示用户的收藏夹,但目前它只会显示一张图片,因为用户的收藏夹中有很多图片。

<?php
$con=mysqli_connect("localhost","UN","PW","DB");

// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id=$_SESSION['user']['id'];
$result = mysqli_query($con,"SELECT * FROM favourites WHERE user='$id'");

while($row = mysqli_fetch_array($result)) {
$code=$row['gamecode'];
$con=mysqli_connect("localhost","UN","PW","DB");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM menus WHERE code='$code'");

while($row = mysqli_fetch_array($result)) {
?>
<a href="<?php echo $row['link']; ?>">
<img src="<?php echo $row['picture']; ?>" alt="<?php echo $row['game']; ?>" height="120" width="150" class="fade"></a>
<?php
}
mysqli_close($con);
}

mysqli_close($con);

?>

最佳答案

您正在通过重新连接到循环内的数据库来终止查询

$con = mysqli_connect(...) // connection #1
$result = mysqli_query(...);
while($row = mysqli_fetch($result)) {
$con = mysqli_connect(...); // connection #2

当您再次连接时,您会终止原始连接,这会终止您的查询。

除非您需要使用不同的凭据连接两次,否则不需要第二次连接。一个连接可以处理多个查询。

顺便说一句,如果您使用了不同的连接句柄变量,例如

$con = mysqli_connect(...);
$othercon = mysqli_connect(...);

你不会遇到这个问题。您可以有多个连接,但不能使用同一个变量。

关于PHP SQL While 循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24145146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com