通过PHP-MySQL搜索显示特定记录的结果

时间:2012-02-08 12:43:13

标签: php mysql

使用我的数据库搜索的搜索条件后,我确实得到了所需的记录,但我不想显示每个记录的所有字段(85个字段);相反,我只展示了其中的5个,然后希望提供一个超链接说明"点击进一步的详细信息",以便用户可以继续查看特定记录的所有字段。

例如,如果用户输入" abc"在“搜索”框中,数据库包含5条" abc"的记录,然后它显示所有5条记录,但只显示5个特定字段。但要查看所有的字段,比如第1" abc"记录,用户将点击"进一步的详细信息",这将指导他到另一个页面,其中包含该特定第一个abc记录的所有85个字段。

请引导我完成!我不知道要给出什么条件,因为我尝试使用标题(位置),但显示所有记录,并且甚至不采取特定处理的SQL查询!

2 个答案:

答案 0 :(得分:1)

以下是您可以做的一个示例。它是一个自引用搜索页面,它首先使用通用查询来获取所有记录。然后,当它遍历每个记录时(仅抓取特定字段,它使用一个隐藏变量和主键/唯一ID的表单作为POST变量发送给自己(search.php)。然后,当该POST变量时如果检测到,则查询仅获取该1条特定记录并在WHILE循环中使用IF / THEN语句,显示所有80多个字段。

有更好的方法可以查询和处理表单数据,但这应该可以帮助您入门。如果有效,请选择此作为答案。

的search.php

<?php

    $query = "SELECT * FROM table"; 

    if (!empty($_POST['id'])) {
        $query = "SELECT * FROM table WHERE id_field = '" . $_POST['id'] . "'";
    }

    $query_info = mysql_query($query) or die(mysql_error()); 
    $query_info_count = mysql_num_rows($query_info);

    while($query_info_details = mysql_fetch_array($query_info)){

    if ($query_info_count > 1) {

        $field_a = $query_info_details['field_a'];
        $field_d = $query_info_details['field_d']; // Say this is the Primary Key
        $field_f = $query_info_details['field_f'];
        $field_g = $query_info_details['field_g'];
        $field_s = $query_info_details['field_s'];

        echo "<form method='post' action='search.php'>";

        echo "Name: " . $field_a . " - " . $field_f . " - ID: " . $field_d;
        echo " - Location: " . $field_g . "(" . $field_s . ")";

        echo "<input type='hidden' name='id' value='" . $field_d . "'>
        <input type='submit' value='View This Record'><br><br>";

    }
    else {

        // Display all fields for record using $query_info_details['field_X'] from above

    }

    }

?>

答案 1 :(得分:0)

$where_str="";

if(isset($_POST['searchBox']))
{
$searchStr=$_POST['searchText'];
$where_str="colx =". $searchStr ;
}
$standard_query ="select col1, col2,col3,col4,col5 from tableName ". $where_str;

然后显示

while($row=mysql_fetch_array($records))
{
 echo"<a href='' onclick='openDetail(\"$row[index]\")'>$row[index] </a>";
...
}

<强>的Javascript

function openDetail(index)
{

window.open("Detail.php?rowindex"+ index);
return false;
}

// Detail.php

if(isset($_GET['rowindex'])
{
$row_index=$_GET['rowindex'];
$detail_query="select * from tableName where index=$row_index";
...
}