回显标签中的不同字段

时间:2013-05-27 09:18:26

标签: php mysql tabs

我正在尝试为我的页面制作一个选项卡,其中每个选项卡显示一个mysql表行的不同字段。我想在选项卡中切换内容。 每行都有不同的ID,我想做一个标签式设计。应该通过表的id选择数据。 如果我在echo部分只使用一个简单的文本,该选项卡工作正常,但我无法从我的数据库中获取数据。 我尝试了这段代码,但它不起作用。

<?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;
}

?>

我不知道我的代码有什么问题。你有什么想法吗?

1 个答案:

答案 0 :(得分: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_fetch_assoc,它将从PHP 5.5.0开始不再使用,而是使用mysql_PDO扩展名。