1

したがって、データベース全体を検索できますが、$ db_tb_atr_name="location"をすべての列に変更する方法が必要です。キーワードを検索して、行全体を返す必要があります。現在、返されるのは場所だけです。これを実現するためにコードを変更する方法がわかりません。

<?php

if(isset($_GET['submit'])){

$db_host="localhost";
$db_username="megan";
$db_password="megan";
$db_name="megan";
$db_tb_name="user";
$db_tb_atr_name="location";

 mysql_connect("$db_host","$db_username","$db_password");
 mysql_select_db("$db_name");

$query=mysql_real_escape_string($_GET['query']);

$query_for_result=mysql_query("SELECT * FROM $db_tb_name WHERE 
CONCAT(id_user,fname,lname,location,email,phone_number,username) LIKE '%".$query."%'");

echo "<h2>Search Results</h2><ol>";
while($data_fetch=mysql_fetch_array($query_for_result))
{
 echo "<li>";
 echo substr($data_fetch[$db_tb_atr_name], 0,160);
 echo "</li><hr/>";
}
 echo "</ol>";

 mysql_close();
 }
 ?>

$db_tb_atr_nameを$db_tb_nameに変更すると、まったく機能しなくなります

4

1 に答える 1

1

そのようにしないでください。次のようなことを試してください:

$query_for_result=mysql_query("SELECT * FROM $db_tb_name WHERE CONCAT(id_user,fname,lname,location,email,phone_number,username) LIKE '%".$query."%'");

echo "<h2>Search Results</h2><ol>";
while($data_fetch=mysql_fetch_assoc($query_for_result))
{
    echo "<li>";
    echo substr(implode(",", $data_fetch), 0,160);
    echo "</li><hr/>";
}
echo "</ol>";

mysql_fetch_array を mysql_fetch_assoc に切り替えました。これで、より組織的で関連性の高い応答を得ることができます。

また、私はあなたの $data_fetch を内破させました。つまり、異なる列を列ごとに結合しています。

必要に応じていつでも変更できますが、希望する出力は詳細ではありませんでした.

次のようなこともできます。

$query_for_result=mysql_query("SELECT * FROM $db_tb_name WHERE  CONCAT(id_user,fname,lname,location,email,phone_number,username) LIKE '%".$query."%'");

echo "<h2>Search Results</h2><ol>";
while($data_fetch=mysql_fetch_assoc($query_for_result))
{
    echo "<li>";
    foreach($data_fetch as $row => $value){
        echo "Row: $row - $value<br />";
    }
    echo "</li><hr/>";
}
于 2012-06-29T17:07:42.920 に答える