0

ページのタブを作成しようとしています。各タブには、mysql テーブル行の異なるフィールドが表示されます。タブの内容を切り替えたい。すべての行に異なる ID があり、タブ付きのデザインを作成したいと考えています。データは、テーブルの ID によって選択する必要があります。エコー部分で単純なテキストだけを使用すると、タブは正常に機能しますが、データベースからデータを取得できません。このコードを試しましたが、うまくいきません。

<?php

if (isset($data[0]) && is_numeric($data[0]) ) {
    $content = mysql_fetch_assoc ( mysql_query( "select id,tab_content_one,tab_content_two,tab_content_three,tab_content_four,tab_content_five from db_name where id = $data[0];") );
} else {
    $content = mysql_fetch_assoc ( mysql_query( "select id,tab_content_one,tab_content_two,tab_content_three,tab_content_four,tab_content_five from db_name order by id asc limit 1;") );   
}

switch($_GET['tabNum']) {
    case 1: echo strip_tags($content['tab_content_one']); break;
    case 2: echo strip_tags($content['tab_content_two']); break;
    case 3: echo strip_tags($content['tab_content_three']); break;
    case 4: echo strip_tags($content['tab_content_four']); break;
    case 5: echo strip_tags($content['tab_content_five']); break;
}

?>

コードの何が問題なのかわかりません。何か考えはありますか?

4

1 に答える 1

1

mysql_fetch_assoc を while ループで囲む必要があります。あなたのコードでは、次のようになります。

if (isset($data[0]) && is_numeric($data[0]) ) {
$sql = "select id,tab_content_one,tab_content_two,tab_content_three,tab_content_four,tab_content_five from db_name where id = $data[0];";
} else {
$sql = "select id,tab_content_one,tab_content_two,tab_content_three,tab_content_four,tab_content_five from db_name order by id asc limit 1;"; 
}
$result = mysql_query($sql);

while($content = mysql_fetch_assoc($result)){
    switch($_GET['tabNum']) {
    case 1: echo strip_tags($content['tab_content_one']); break;
    case 2: echo strip_tags($content['tab_content_two']); break;
    case 3: echo strip_tags($content['tab_content_three']); break;
    case 4: echo strip_tags($content['tab_content_four']); break;
    case 5: echo strip_tags($content['tab_content_five']); break;
}
}

とにかく、代わりに mysql_PDO 拡張機能を使用するために php 5.5.0 から非推奨になる mysql_fetch_assoc として提案されています。

于 2013-05-27T09:38:56.907 に答える