gpt4 book ai didi

php - 创建下一个按钮以循环遍历 mysql 表

转载 作者:行者123 更新时间:2023-11-29 03:30:26 25 4
gpt4 key购买 nike

我试图让下面的代码在 while 部分有一个 if/else 语句?我正在尝试做类似的事情,如果结果是 mysql 表中的最后一行,则显示表中的第一行。否则显示 $id_related 变量中的 id 行。

我的目标是创建一个基本上循环遍历数据库表的“下一步”按钮 - 从 id 1 到 10,当用户到达 10 并按下“下一步”按钮时,它会返回到 id 1。

require('connect.php');
$id_related = mysqli_real_escape_string($db, $_GET['id']);
$sql_related = <<<SQL
SELECT *
FROM `article_img`
WHERE `id` > '$id_related' ORDER BY id LIMIT 1
SQL;

if(!$result = $db->query($sql_related)){
die('There was an error running the query [' . $db->error . ']');
}
while($row = $result->fetch_assoc()){
echo '
<a href="article.php?id='.$row['id'].'&size='.$row['size'].'">
<div style="background-image: url('.$row['img'].');">
</div>
</a>

';

}

最佳答案

备注:

  • 您可以检查查询将返回的行数。例如,如果当前 $_GET['id']10,则绑定(bind)到您的查询,并返回 0,返回表格的第一个 id 行。因此,如果您想扩展表格的行数,您不必担心将来更新代码。
  • 你应该使用mysqli_* 而不是deprecated mysql_* API。

connect.php 的代码:

$con = new mysqli("YourHost", "Username", "Password", "Database"); /* REPLACE NECESSARY DATA */

/* CHECK CONNECTION */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

还有你的主要代码:

require('connect.php'); /* YOUR CONNECTION */

if($stmt = $con->prepare("SELECT id,size,img FROM article_img WHERE id > ? ORDER BY id LIMIT 1")){
$stmt->bind_param("i",$_GET["id"]); /* BIND THIS VARIABLE TO YOUR QUERY */
$stmt->execute(); /* EXECUTE QUERY */
$stmt->store_result(); /* NECESSARY WHEN GETTING THE NUMBER OF ROWS */
$noofrows = $stmt->num_rows; /* GET NUMBER OF ROWS */
if($noofrows == 0){ /* IF FOUND NO ROW GREATER THAN CURRENT CODE */
/* GET THE FIRST ROW IN YOUR article_img */
$stmt2 = $con->prepare("SELECT id,size,img FROM article_img ORDER BY id LIMIT 1")){
$stmt2->execute();
$stmt2->store_result();
$stmt2->bind_result($id,$size,$img);
$stmt2->fetch();
$stmt2->close();
} /* END OF SECOND PREPARED STATEMENT */
} /* END OF IF $noofrows IS 0 */
else { /* IF THERE IS A VALID NEXT ROW */
/* GET THE NEXT PAGE */
$stmt->bind_result($id,$size,$img); /* BIND THE RESULT TO THESE VARIABLES OF THE FIRST QUERY */
$stmt->fetch(); /* FETCH THE RESULT */
} /* END OF ELSE */
$stmt->close();
} /* END OF PREPARED STATEMENT */

echo '<a href="article.php?id='.$id.'&size='.$size.'">
<div style="background-image: url('.$img.');">
</div>
</a>'; /* YOUR LINK TO NEXT PAGE */

关于php - 创建下一个按钮以循环遍历 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31396524/

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