投稿とセクションの2つのテーブルがあります。最後の10件の投稿WHEREsection= 1を取得したいのですが、10件の結果をさまざまな場所で使用します。私は関数を作ります:
function sectionposts($section_id){
mysql_set_charset('utf8');
$maxpost1 ="SELECT max(id) from posts WHERE section_id = $section_id ORDER BY ID DESC LIMIT 20";
$maxpost12 =mysql_query($maxpost1);
while ($maxpost_rows = mysql_fetch_array($maxpost12 ,MYSQL_BOTH)){
$maxpost2 = $maxpost_rows[0];
}
$query = "SELECT * FROM posts WHERE id = $maxpost2";
$query2 = mysql_query($query);
return $query2;
}
$query2 = sectionposts(6);
while ($rows = mysql_fetch_array($query2)){
echo $rows['title'] . "<br/>" . "<br/>";
echo $rows['id'] . "<br/>" . "<br/>";
echo $rows['image_section'] . "<br/>";
echo $rows['subject'] . "<br/>";
echo $rows['image_post'] . "<br/>";
}
これらの10の結果をどのように取得することができますが、それらをさまざまな場所で使用し、1から10に配置しておくことができます。
これは古いケースであり、私はそれを解決しましたが、別の問題を見つけました。クライアントが投稿をid = 800として削除した場合、「DBにid = 800がないため」、最大IDから$NUMを引いた値を取得するとそれから、この操作はid = 800に等しくなければならないので、ここでプログラミングの間違いがあります。どうすればそのようなことを処理できますか。
function getmax_id_with_minus ($minus){
mysql_set_charset('utf8');
$maxid ="SELECT max(id) FROM posts";
$maxid1 =mysql_query($maxid);
while ($maxid_row = mysql_fetch_array($maxid1)){
$maxid_id = $maxid_row['0'];
$maxid_minus = $maxid_id - $minus;
}
$selectedpost1 = "SELECT * FROM posts WHERE id = $maxid_minus";
$query_selectedpost =mysql_query($selectedpost1);
return ($query_selectedpost);
}
<?php
$ss = getmax_id_with_minus (8);
while ($rows = mysql_fetch_assoc($ss)){
$main_post_1 = $rows;
?>
とにかく「本当に」ありがとうございました:)!