2016-05-30 134 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