列からランダムな行を選択しようとしていますが、1 つの問題がありますtitle != '';
。I putand r1.title != '';
空のタイトルを表示します。後で反響してい$row['image_one'];
ます。最初の行には image_one と title があり、2 番目の行には image_one があり、title はありません。タイトル付きの image_one が表示され、ページを更新すると空のページが表示されます。タイトル付きの画像だけを表示し続けたいのですが、
SELECT r1.id, title, price, image_one
FROM table AS r1
JOIN (
SELECT (RAND() * (SELECT MAX(id) FROM table)) AS id
) AS r2
WHERE
r1.id >= r2.id
AND r1.title != ''
ORDER BY r1.id ASC
LIMIT 1
html
<?php include_once("models/config.php");?>
<div class="ho_col_1_pr">
<?php
$stmt = $mydb->prepare("SELECT r1.id, title, price, image_one
FROM hm_table AS r1 JOIN
(SELECT (RAND() *
(SELECT MAX(id)
FROM table)) AS id)
AS r2
WHERE r1.id >= r2.id and r1.title != ''
ORDER BY r1.id ASC
LIMIT 1 ");
$stmt->execute();
if ( false===$stmt ) {
die('prepare() failed: ' . htmlspecialchars($mydb ->error));
}
?>
<?php
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {?>
<div class="pro_img_wrap">
<div class="hid_tit"><div class="hid_tit_ex"><?php echo wordwrap($row['title'], 50, "<br/>\n", true);?></div></div>
<?php
$path = 'images/';
echo "<a href='test.php?redirect=".urlencode($row['title'])." & item=".$row['id']."'>"."<img src='".$path."".$row['image_one']."' style='width:225px;height:169px;'/>"."</a>";?>
</div>
<div class="pr_sep">
<div class="pr_prod">
<?php
var_dump($row['title']) ;
echo $row['price'];?>
</div>
<?php
}
?></div>
</div>