PHP MYSQL结果不完整

时间:2014-02-04 01:21:22

标签: php mysql

此代码有效,除非$market返回多个单词。 IE:科罗拉多州将返回普韦布洛,它起作用。当它返回“科罗拉多斯普林斯”时,$market只有回声“科罗拉多”,而SID从不显示。我很遗憾这段代码可能很难看,但是我的所有内容都很糟糕。

$pickstate = $_POST['state'];
    $result = mysql_query("SELECT * FROM ppc WHERE State='" . $pickstate . "'");
      if (!$result) {
        echo("<P>Error performing query: " .
             mysql_error() . "</P>");
       exit();
  }

echo '<form action="" method="POST"><select id="Market" name="Market">';

while ($row = mysql_fetch_array($result)) {
    echo ( '<option value= '.$row['Market'].' onclick="this.form.submit();">'.$row['Market'].'</option>' );
}
echo "</select></form>";

$market = $_POST['Market'];
echo "Market = " . $market . "<br />";
$sid = mysql_query("SELECT SID FROM ppc WHERE Market='" . $market . "'");
while ($row = mysql_fetch_array($sid)) {
    echo '<p>SID = ' . $row['SID'] . '</p><br />';
}

2 个答案:

答案 0 :(得分:1)

考虑到您的实际代码,您必须更改

echo "<option value=" . $row['Market'] . " onclick=\"this.form.submit();\" . $row['Market'] . "</option>";

到这个

echo "<option value=" . $row['Market'] . " onclick=\"this.form.submit();\"" . $row['Market'] . "</option>";

另外,您可以考虑编写那些具有可读性的行,如下所示:

echo ( '<option value= '.$row['Market'].' onclick="this.form.submit();"'.$row['Market'].'</option>' );

结合不同类型的报价会有所帮助。当您必须输出双引号时,请尝试使用单引号。

答案 1 :(得分:0)

您缺少值周围的引号。您需要将引号放在onclick周围。它只显示第一个单词,因为下面的单词因空格而丢失。引号使其包含空格和以下单词。

echo ( '<option value= "'.$row['Market'].'" onclick="this.form.submit();">'.$row['Market'].'</option>' );