データベースからランダムに20件取り出し表示するPHPを作成しています。


$db->setSQL('select rss.* from rss where rss.pick=1 order by rand() limit 20 ');
$result =$db->query();
if($result){
$rss = mysql_fetch_array($result, MYSQL_ASSOC);
}
$db->setSQL('select rss_history.* from rss_history where rss_history.rss_id='.$rss['id'].' order by rand() limit 20 ');
$result =$db->query();
if($result){
if ($rec = mysql_fetch_array($result, MYSQL_ASSOC)) {
$value=$rec;
}
}
$title =htmlspecialchars( $value['title']);
$url =htmlspecialchars( $value['url']);
$meta_title=htmlspecialchars($value['meta_title']);
$image_path=htmlspecialchars($value['image_path']);

上記のようにランダムで20件取得する部分はできたのですが、ここからその20件表示させる方法がわからなくなってしまいました。

表示させる部分は「echo」ではなくtplファイル上なのでHTMLタグと変数使用です。

説明がわかりにくかもしれませんがどうぞご指南お願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/01/18 15:00:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kodairabase No.2

回答回数661ベストアンサー獲得回数80

ポイント100pt

どんなテンプレートか分かりませんが、tableタグで表示させるのなら以下のようになります。

PHPスクリプト

$db->setSQL('select rss.* from rss where rss.pick=1 order by rand() limit 20 ');
$result =$db->query();
if ($result) {
    $rss = mysql_fetch_array($result, MYSQL_ASSOC);
}
$db->setSQL('select rss_history.* from rss_history where rss_history.rss_id='.$rss['id'].' order by rand() limit 20 ');
$result =$db->query();
$data = array();
if ($result) {
    if ($rec = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $data[] = $rec;
    }
}

TPLテンプレート

<table border="1">
<tr>
<th>TITLE</th>
<th>URL</th>
<th>META_TITLE</th>
<th>IMAGE_PATH</th>
</tr>
{foreach from=$data key="key" item="val" name="hoge"}
{$smarty.foreach.hoge.iteration}:<tr><td>{$val['title']}</td><td>{$val['url']}</td><td>{$val['meta_title']}</td><td>{$val['image_path']}</td></tr>
{foreachelse}
No Data
{/foreach}
</table>

その他の回答1件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント100pt

http://php5.seesaa.net/article/62565378.html

こちらを参考にしてみてください。

id:kodairabase No.2

回答回数661ベストアンサー獲得回数80ここでベストアンサー

ポイント100pt

どんなテンプレートか分かりませんが、tableタグで表示させるのなら以下のようになります。

PHPスクリプト

$db->setSQL('select rss.* from rss where rss.pick=1 order by rand() limit 20 ');
$result =$db->query();
if ($result) {
    $rss = mysql_fetch_array($result, MYSQL_ASSOC);
}
$db->setSQL('select rss_history.* from rss_history where rss_history.rss_id='.$rss['id'].' order by rand() limit 20 ');
$result =$db->query();
$data = array();
if ($result) {
    if ($rec = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $data[] = $rec;
    }
}

TPLテンプレート

<table border="1">
<tr>
<th>TITLE</th>
<th>URL</th>
<th>META_TITLE</th>
<th>IMAGE_PATH</th>
</tr>
{foreach from=$data key="key" item="val" name="hoge"}
{$smarty.foreach.hoge.iteration}:<tr><td>{$val['title']}</td><td>{$val['url']}</td><td>{$val['meta_title']}</td><td>{$val['image_path']}</td></tr>
{foreachelse}
No Data
{/foreach}
</table>

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません