0

これが改訂されたコードです。まだ運がない!pls。ヘルプ

<html>
<body>

<?php

 $mysqli = new mysqli("localhost", "root", "password", "test");

 $whereClauses = '';
 $numLocations = count($_POST['Locations']);
 $numJobs = count($_POST['Jobs']);
 $i = 0;
 if (! empty($_POST['Locations'])) {
  foreach ($_POST['locations'] as $location) {
    $whereClauses .="Locations='".mysql_real_escape_string($location)."'";
    if ($i++ == $numLocations) {
     $whereClauses .= " AND";
    }
  }
  }
  if (! empty($_POST['Jobs'])) {
  foreach ($_POST['Jobs'] as $job) {
    $whereClauses .="Jobs='".mysql_real_escape_string($job)."'";
  }
  if ($i++ == $numJobs) {
     $whereClauses .= " AND";
  }
   }
  $sql = "SELECT * FROM mytable '".$whereClauses."' ORDER BY id DESC '".$limit."'";

$result=mysql_query($sql);

while ($row = mysql_fetch_array($result)) {
echo $row['Locations'];
echo $row['Jobs'];
}

?>
 </body>
</html>

===============================================私は複数のドロップダウンフィルターに基づいてWebフォームデータをフィルター処理するHTMLおよびPHPファイル。これがフォームです。フォームとPHPを実行すると、ブラウザーに結果が表示されません。エラーもありません。私は別のフォーラムメンバーによって投稿された例に取り組んでいます。助けてください。前もって感謝します。

<form action="showJobs_new.php" method="post">
<select name="Locations">
<option value="" selected="selected">All Locations</option>
<option value="arizona">Arizona</option>
<option value="alaska">Alaska</option>
</select>
<select name="Jobs">
<option value="" selected="selected">All jobs</option>
<option value="Carpenter">Carpenters</option>
<option value="Plumbers">Plumbers</option>
</select>
<input type="submit" value="search jobs" />
</form>

showJobs_new.php:

<html>
<body>

<?php

$username="root";
$password="password";
$database="test";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");

$whereClauses = array(); 
if (! empty($_POST['Locations'])) $whereClauses[] ="Locations='".mysql_real_escape_string($_POST['Locations'])."'"; 
if (! empty($_POST['Jobs'])) $whereClauses[] ="Jobs='".mysql_real_escape_string($_POST['Jobs'])."'"; 
$where = ''; 
if (count($whereClauses) > 0) { $where = ' WHERE '.implode(' AND ',$whereClauses); } 

$sql = mysql_query("SELECT * FROM mytable ORDER BY id DESC $limit" .$where);  

$result=mysql_query($sql);
or die("Error: ".mysql_error()."<br />Query: ".$sql);

while ($row = mysql_fetch_assoc($result)) {
echo $row['Locations'];
echo $row['Jobs'];
}

?>
</body>
</html>
4

2 に答える 2

3

クエリを次のように変更します

$sql = mysql_query("SELECT * FROM mytable " .$where." ORDER BY id DESC $limit");  

クエリの順序が間違っているようです。

于 2012-10-22T12:12:11.133 に答える
1

こんにちは、クエリに 2 つのエラーがあります。

1-これは、句の順序を間違えているためです。クエリ内の句の優先度は何かを知る必要があります。クエリを実行すると、句の順序は次のようになります

  • 選択する

  • から

  • どこ

  • グループ化

  • 持つ

  • 並べ替え

  • リミット

2-提案されているようにmysql_queryを2回使用するuser1599669

したがって、クエリは次のようになります

 $sql = mysql_query("SELECT * FROM mytable $where ORDER BY id DESC $limit");

詳細については、mysql devを参照してください。

于 2012-10-22T12:12:17.980 に答える