PDOに切り替えようとしています。すぐにいくつかの問題に遭遇しましたが、解決できなかったのは、ランダム イメージ スクリプトに関するものです。これが機能しないことについての以前の投稿がありSELECT MAX(id) needed to be SELECT MAX(id-6)
ます。以前の問題は、ランダムな数のランダムな画像を取得していたことであり、6 ではありませんでした。
ここでの問題は、6 つのランダムな画像を取得する場合と、まったく取得しない場合があることです。誰かが私のスクリプトを見て、問題を見つけられるかどうかを確認できることを願っています。
ありがとうございます
<?php
$passed_cat = mysql_real_escape_string($_GET['cat']);
$passed_sub_cat = mysql_real_escape_string($_GET['sub_cat']);
include ('../../connection.php');
$related_images = "SELECT *,r1.id as main_id
FROM images AS r1
JOIN
(
SELECT ROUND(RAND() * (SELECT MAX(id-6)
FROM images)) AS id
) AS r2
WHERE r1.id >= r2.id
AND public_approved='Approved'
AND category = :category
AND sub_category = :sub_category
ORDER BY r1.id ASC
LIMIT 6
OFFSET 20";
$q = $conn->prepare($related_images);
$q->execute(array(
':category' => $passed_cat,
':sub_category' => $passed_sub_cat));
if(!$q)
{
die("Query failed due to: ". $conn->errorInfo());
}
$q->setFetchMode(PDO::FETCH_BOTH);
while($row = $q->fetch())
{
echo "<div style='float:left; margin:2px;' >";
echo '<a href="sub_page.php?cat='. $passed_cat .'&sub_cat='. $passed_sub_cat .'&id='. $row['main_id'] .'"><img src="../../files/small/thumb0_'. $row['item_name'] . '.' . $row['file_extension'] . '" style="width:96px;" border="0"></a>';
echo "</div>";
}
?>
編集: Connection.php
<?php
$host = "localhost";
$dbname = "all_sites";
$db_username = "root";
$db_password = "password";
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname",$db_username,$db_password);
}
catch (PDOException $pe)
{
die('Connection error, due to: ' .$pe->GetMessage());
}
?>