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_fetch_assoc 从 php 5.5.0 开始不推荐使用 mysql_PDO 扩展名。

于 2013-05-27T09:38:56.907 回答