从一个表中选择多个随机值?PHP
我想要3张随机图像,第一张有效,但另外两张不行。 最好,我想挑选两个其他的图像,然后第一个和第二个,第三个都是不同的 这是我的密码:从一个表中选择多个随机值?PHP,php,random,mysqli,Php,Random,Mysqli,我想要3张随机图像,第一张有效,但另外两张不行。 最好,我想挑选两个其他的图像,然后第一个和第二个,第三个都是不同的 这是我的密码: $content .= '<div>'; $qryFirstImage = "SELECT a.KW, a.KWKidsBeschrijving, a.Titel, b.GebruikersNaam FROM tblKWKids AS a LEFT JOIN tbl
$content .= '<div>';
$qryFirstImage = "SELECT a.KW, a.KWKidsBeschrijving, a.Titel, b.GebruikersNaam
FROM tblKWKids AS a
LEFT JOIN tblUser AS b
ON a.UserID = b.UserID
ORDER BY RAND()";
if ($stmt = mysqli_prepare($dbconn, $qryFirstImage)) {
mysqli_stmt_bind_result($stmt, $KW, $KWKidsBeschrijving, $TitelKW, $GebruikersNaam);
mysqli_stmt_execute($stmt);
mysqli_stmt_fetch($stmt);
mysqli_close($dbconn);
}
$content .= '<img src="' . $KW . '" width="240px" height="240px" alt="' . $TitelKW . '" title="' . $TitelKW . '">';
$content .= '<h5>' . $TitelKW . ' door: ' . $GebruikersNaam . '</h5>';
$content .= '<p>' . $KWKidsBeschrijving . '</p>';
$content .= '</div>';
$content .= '<div>';
$qrySecondImage = "SELECT a.KW, a.KWKidsBeschrijving, a.Titel, b.GebruikersNaam
FROM tblKWKids AS a
LEFT JOIN tblUser AS b
ON a.UserID = b.UserID
ORDER BY RAND()";
if ($stmt2 = mysqli_prepare($dbconn, $qrySecondImage)) {
mysqli_stmt_bind_result($stmt2, $KW2, $KWKidsBeschrijving2, $TitelKW2, $GebruikersNaam2);
mysqli_stmt_execute($stmt2);
mysqli_stmt_fetch($stmt2);
}
$content .= '<img src="' . $KW2 . '" width="240px" height="240px" alt="' . $TitelKW2 . '" title="' . $TitelKW2 . '">';
$content .= '<h5>' . $TitelKW2 . ' door: ' . $GebruikersNaam2 . '</h5>';
$content .= '<p>' . $KWKidsBeschrijving2 . '</p>';
$content .= '</div>';
$content .= '<div>';
$qryThirdImage = "SELECT a.KW, a.KWKidsBeschrijving, a.Titel, b.GebruikersNaam
FROM tblKWKids AS a
LEFT JOIN tblUser AS b
ON a.UserID = b.UserID
ORDER BY RAND()";
if ($stmt3 = mysqli_prepare($dbconn, $qryThirdImage)) {
mysqli_stmt_bind_result($stmt3, $KW3, $KWKidsBeschrijving3, $TitelKW3, $GebruikersNaam3);
mysqli_stmt_execute($stmt3);
mysqli_stmt_fetch($stmt3);
}
$content .= '<img src="' . $KW3 . '" width="240px" height="240px" alt="' . $TitelKW3 . '" title="' . $TitelKW3 . '">';
$content .= '<h5>' . $TitelKW3 . ' door: ' . $GebruikersNaam3 . '</h5>';
$content .= '<p>' . $KWKidsBeschrijving3 . '</p>';
$content .= '</div>';
$content.='';
$qryFirstImage=“选择a.KW、a.KWCIDSBESCHRIJING、a.Titel、b.GebruikersNaam
从tblKWKids作为
左连接tblUser为b
在a.UserID=b.UserID上
兰德订单();
如果($stmt=mysqli_prepare($dbconn,$qryFirstImage)){
mysqli_stmt_bind_result($stmt、$KW、$KWKidsBeschrijving、$TitelKW、$GebruikersNaam);
mysqli_stmt_execute($stmt);
mysqli_stmt_fetch($stmt);
mysqli_close($dbconn);
}
$content.='';
$content.=''$蒂特尔克。”门:'$"",;
$content.=''$Kwkidsbechrijing。” ",;
$content.='';
$content.='';
$qrySecondImage=“选择a.KW、a.kwkidsbchrijving、a.Titel、b.GebruikersNaam
从tblKWKids作为
左连接tblUser为b
在a.UserID=b.UserID上
兰德订单();
if($stmt2=mysqli_prepare($dbconn,$qrySecondImage)){
mysqli_stmt_bind_result($stmt2、$KW2、$KWKidsBeschrijving2、$TitelKW2、$GebruikersNaam2);
mysqli_stmt_execute($stmt2);
mysqli_stmt_fetch($stmt2);
}
$content.='';
$content.=''$滴度kW2。”门:'$GebruikersNaam2.“;
$content.=''$KWKidsBeschrijving2.“ ",;
$content.='';
$content.='';
$qryThirdImage=“选择a.KW、a.KWKIDSBCHRIJVING、a.Titel、b.GebruikersNaam
从tblKWKids作为
左连接tblUser为b
在a.UserID=b.UserID上
兰德订单();
如果($stmt3=mysqli\u prepare($dbconn,$qryThirdImage)){
mysqli_stmt_bind_result($stmt3、$KW3、$KWKidsBeschrijving3、$TitelKW3、$GebruikersNaam3);
mysqli_stmt_execute($stmt3);
mysqli_stmt_fetch($stmt3);
}
$content.='';
$content.=''$TitelKW3。”门:'$GebruikersNaam3.“;
$content.=''$KWKidsBeschrijving3.“ ",;
$content.='';
请看那些
写了很少的代码,搜索和更多
$qryFirstImage=“选择a.KW、a.kwkidsbechrijving、a.Titel、b.GebruikersNaam
从tblKWKids作为
左连接tblUser为b
在a.UserID=b.UserID上
兰德订单();
如果($stmt=mysqli_prepare($dbconn,$qryFirstImage)){
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt、$KW、$KWKidsBeschrijving、$TitelKW、$GebruikersNaam);
对于($i=0;($i<3&&mysqli_stmt_fetch($stmt));$i++){
$content.='';
$content.='';
$content.=''.$TitelKW.'door:'.$GebruikersNaam.';
$content.=''.$KWKIDSBESCHRIJING.';
$content.='';
}
mysqli_stmt_close($stmt);
}
让我猜猜看。所有图像都是相同的吗?为什么要连续三次执行相同的查询?您可以运行一次查询,只获取前三个结果,或者最好在末尾添加一个LIMIT 3
,这样就不需要对整个表进行排序。我想MySQL的RAND()
函数的默认种子是基于时间的,您的查询一个接一个地太快了。因此,种子是一样的。因此,结果的第一行是相同的。事实上,经过一些研究,我得出了如下解决方案:
$qryFirstImage = "SELECT a.KW, a.KWKidsBeschrijving, a.Titel, b.GebruikersNaam
FROM tblKWKids AS a
LEFT JOIN tblUser AS b
ON a.UserID = b.UserID
ORDER BY RAND()";
if ($stmt = mysqli_prepare($dbconn, $qryFirstImage)) {
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $KW, $KWKidsBeschrijving, $TitelKW, $GebruikersNaam);
for($i = 0; ($i < 3 && mysqli_stmt_fetch($stmt)); $i++){
$content .= '<div>';
$content .= '<img src="' . $KW . '" width="240px" height="240px" alt="' . $TitelKW . '" title="' . $TitelKW . '">';
$content .= '<h5>' . $TitelKW . ' door: ' . $GebruikersNaam . '</h5>';
$content .= '<p>' . $KWKidsBeschrijving . '</p>';
$content .= '</div>';
}
mysqli_stmt_close($stmt);
}