Как это исправить, если ваши переменные не проходят - PullRequest
1 голос
/ 03 марта 2012

Я использую php и mysql. Ниже приведен код ... Когда я выбираю "Штат", я должен получить список городов в этом штате ... Однако он не тянет ни один из городов ... Похоже, значение "Штат" не выдвигается в запрос по городам ... Что я делаю не так?

Спасибо!

</head>  

 <body>  
 <div id="wrapper">  

 <div id="header">  

 <h1>Tomorrow's Toys Today</h1>  
 </div>  
 <div id="subheader">  
 </div>  

 <div id="leftmenu">  

 <?php  

  include("misc.inc");                                           // 11


  $connection = mysql_connect($host,$user,$password)             // 13
       or die ("couldn't connect to server");
  $db = mysql_select_db($database,$connection)                   // 15
       or die ("Couldn't select database");


$state=@$_GET['state'];   

$city=@$_GET['city'];  


 @$quer=mysql_query("SELECT state  FROM states");   


echo '************' , $state;

 if(isset($state) and strlen($state) > 0){  

 @$quer2=mysql_query("SELECT city FROM cities c, states s where c.state_id = s.state_id and s.state = $state ");   

 }else{$quer2=mysql_query("SELECT city FROM cities c, states s where c.state_id = s.state_id and s.state = $state"); };



 echo "<form method=post name=f1 action='dd-check.php'>";  
 echo "<table> <tr><td>";  



 echo "State";  

 echo"</td><td>";  

 echo "<select name='state' onchange=\"reload(this.form)  \"><option value=''>Select one</option>";  

 while($noticia = mysql_fetch_array($quer)) {   

 if($noticia['state=']==$state){  

         echo "<option value='$noticia[state]'>$noticia[state]</option>"."<BR>";}  

     else{  

         echo  "<option value='$noticia[state]'>$noticia[state]</option><br>";}  

 }  

 echo "</select></td></tr><tr><td>";  


 echo "City";  

 echo "</td><td>";  

 echo "<select name='city' onchange=\"reload(this.form)  \"><option value=''>Select one</option>";  

 while($noticia2 = mysql_fetch_array($quer2)) {   

 if($noticia2['city=']==$city){  

         echo "<option value='$noticia2[city]'>$noticia2[city]</option>"."<BR>";}  

     else{  

         echo  "<option value='$noticia2[city]'>$noticia2[city]</option>";}  

 }  


 echo "</select></td></tr><tr><td>";  

 echo "<input type=submit value=Show></td></tr></table>";  
 echo "<input type=text name=state value=$state>";  
 echo "</form>";  
?>  


 </div>  

 <div id="main">  



 </div>  


 </div> 

Ответы [ 3 ]

3 голосов
/ 03 марта 2012

Является ли $ _GET ['state'] строкой? если это так, вы должны сделать что-то вроде этого:

 $quer2=mysql_query("SELECT city FROM cities c, states s where c.state_id = s.state_id and s.state = '".mysql_real_escape_string($state)."'");   

Строки нужны в кавычках. Инт нет. Иными словами, вы должны санировать этот ввод.

Кроме того, есть гораздо лучшие способы подавления ошибок, чем использование @ на всем ... http://php.net/manual/en/function.error-reporting.php

0 голосов
/ 03 марта 2012
</head>  

 <body>  
 <div id="wrapper">  

 <div id="header">  `enter code here`

 <h1>Tomorrow's Toys Today</h1>  
 </div>  
 <div id="subheader">  
 </div>  

 <div id="leftmenu">  

 <form method=post name=f1 action='dd-check.php'><table> <tr><td>State</td><td><select name='state' onchange="reload(this.form)  "><option value=''>Select one</option><br />
<b>Notice</b>:  Undefined index: state= in <b>C:\xampp\htdocs\Dummies\index.php</b> on line <b>62</b><br />
<option value='Virginia'>Virginia</option><BR><br />
<b>Notice</b>:  Undefined index: state= in <b>C:\xampp\htdocs\Dummies\index.php</b> on line <b>62</b><br />
<option value='Maryland'>Maryland</option><BR><br />
<b>Notice</b>:  Undefined index: state= in <b>C:\xampp\htdocs\Dummies\index.php</b> on line <b>62</b><br />
<option value='Washington DC'>Washington DC</option><BR><br />
<b>Notice</b>:  Undefined index: state= in <b>C:\xampp\htdocs\Dummies\index.php</b> on line <b>62</b><br />
<option value='Colorado'>Colorado</option><BR></select></td></tr><tr><td>City</td><td><select name='city' onchange="reload(this.form)  "><option value=''>Select two</option><br />
<b>Warning</b>:  mysql_fetch_array() expects parameter 1 to be resource, boolean given in <b>C:\xampp\htdocs\Dummies\index.php</b> on line <b>81</b><br />
</select></td></tr><tr><td><input type=submit value=Show></td></tr></table><input type=text name=state value=></form>  
0 голосов
/ 03 марта 2012
 @$quer2=mysql_query("SELECT city FROM cities c, states s where c.state_id = s.state_id and s.state = $state ");   

}else{$quer2=mysql_query("SELECT city FROM cities c, states s where c.state_id = s.state_id and s.state = $state"); };

echo "$ state"; выдаст вам $ state использовать echo $ state; или echo "{$ state}";

в вашем случае

@$quer2=mysql_query("SELECT city FROM cities c, states s where c.state_id = s.state_id  and s.state = ".$state." ");   
}else{$quer2=mysql_query("SELECT city FROM cities c, states s where c.state_id = s.state_id and s.state = ".$state.""); };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...