-1

#、@、または通常のステートメントのユーザー入力を取得して、データベースの「ジョブ」というテーブルの「クエリ」列に検索結果が存在する場合、それらの結果を SQL データベースから取得しようとしています。これが私が得ているエラーです:

 Unknown column 'Array' in 'where clause'

これが私のコードです:

$result_all = $_POST['result_name'];
$result_all_array= explode(',',$result_all);
$query = "select last_count, query, job_id from twitterinblack46.job where 

query in (".$result_all_array.") order by last_count desc;";
 $result= mysql_query($query);

if($result === FALSE) {
die(mysql_error());
 }
 else{
 //Sets up table
 echo "<table border='1'
 <tr>
 <th>Job ID</th>
 <th>Last Count</th>
 <th>Result</th>
 </tr>";

 //Populates table
 while($row = mysql_fetch_array($result)){
echo"<tr>";
echo "<td>" . $row["job_id"] . "</td>";
echo "<td>" . ltrim($row["last_count"],'0') . "</td>";
echo "<td>" . str_replace(array('%23', '%40', '%20', 'q='), array('#','@',' ',''), 

$row['query']) . "</td>";
echo "<tr>";
 }
echo "</table>";

私が間違っていることを知っている人はいますか?


アップデート:

ここに混乱がありました。クエリの $ をコピーすることを忘れていませんでした。「クエリ」は、クエリで情報を取得する列の名前です。私が言いたいのは、これら 2 つのコード セットの違いは何で、最初のクエリで機能しないのはなぜですか?

動作しないコード:

$result_all= $_POST['result_name'];
$query = "select last_count, query, job_id from twitterinblack46.job where 
query in (".$result_all.") order by last_count desc;";
$result= mysql_query($query);

動作するコード:

$job_id_all= $_POST['job_id'];
$query = 'select last_count, query, job_id from twitterinblack46.job where job_id in 
('.$job_id_all.') order by last_count desc;';
$result= mysql_query($query);
4

1 に答える 1

0

たとえば、複数のチェックボックスがオンになっているなど、フォーム入力の問題であることは明らかです。
両方のクエリでこれを試してください。

$result_all= implode(',', mysql_escape_string($_POST['result_name']));
$query = "select last_count, query, job_id from twitterinblack46.job where query in (".$result_all.") order by last_count desc;";
$result= mysql_query($query);
于 2013-02-24T23:26:10.543 に答える