2016-05-30 3 views
0

Я пытаюсь использовать обработку формы для создания конкретного запроса к базе данных. Я устанавливаю форму в $ name и пытаюсь обрабатывать $ sql = "SELECT * FROM quotes WHERE qSymbol = $ name ORDER BY qQuoteDateTime DESC" Каков наилучший способ сделать это?php form processing 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