2016-05-30 125 views
0

我正在尝试使用表单处理来进行特定的数据库查询。我将表单设置为$ name,并试图处理$ sql =“SELECT * FROM quotes WHERE qSymbol = $ name ORDER BY qQuoteDateTime DESC” 这样做的最佳方式是什么?php表单处理POST

<form action="post.php" method="post"> 
<span></span><input type = "text" value=" " name="boxy" /> 
<br/><input type="submit" name="submit" value="Enter" /> 
</form> 

<?php 
    $name = $_POST['boxy']; 
    if(isset($_POST['boxy'])){ 
     error_reporting(E_ALL^E_DEPRECATED); 

     $con = mysql_connect('...'); 
     if (!$con){ 
      die("Cannot connect : " . mysql_error()); 
     } 
     mysql_select_db('quotesdb',$con); 
     $sql = "SELECT * FROM quotes WHERE qSymbol = '$name' ORDER BY qQuoteDateTime DESC"; 
     $myData = mysql_query($sql,$con); 
     echo "<table border = 1> 
     <tr> 
     <th>Data</th> 
     <th>Last</th> 
     <th>Change</th> 
     <th>% Chg</th> 
     <th>Volume</th> 
     </tr>"; 

     while ($record = mysql_fetch_array($myData)){ 
      echo "<tr>"; 
      echo "<td>" . $record['qQuoteDateTime'] . "</td>"; 
      echo "<td>" . $record['qLastSalePrice'] . "</td>"; 
      echo "<td>" . $record['qNetChangePrice'] . "</td>"; 
      echo "<td>" . $record['qNetChangePct'] . "</td>"; 
      echo "<td>" . $record['qShareVolumeQty'] . "</td>"; 
      echo "</tr>"; 

     echo "</table>"; 



     mysql_close($con); 




     } 
+2

请不要使用过时的和不安全的'mysql'功能。切换到使用[MySQLi](http://php.net/manual/en/book.mysqli.php)或[PDO](http://php.net/manual/en/book.pdo.php)。 – Chris

回答

0

您仍需要围绕变量单引号,除非它是一个数字

$sql = "SELECT * FROM quotes WHERE qSymbol = '$name' ORDER BY qQuoteDateTime DESC"; 
+0

谢谢。它似乎仍然没有工作。我按下回车后没有任何反应,但我可以看到变量正在改变。 – user3019579

+0

我假设你省略了代码。您仍然需要执行查询并获取结果 –

+0

我做过。我编辑了原始问题以包含我的所有代码。我假设它是表单中的东西,它在我设置$ name ='something'时起作用 – user3019579