2015-02-02 4 views
-4

У меня есть таблица с ID,FRNZ,MSTR,TES,DEN,PRT столбцов, которые:Пустой запрос независимо от того, что

  • ID = Идентификатор
  • FRNZ = наши поставщики
  • MSTR = 2 значный код для Каталоги
  • TES = КОД для поиска
  • DEN = наименование объекта
  • PRT = цена

Для каждого КОДА есть 3 ряда (изделия: один костюм, одна куртка, одна брючная). Я хочу отобразить все 3 строки, со всеми деталями из поиска кода. Я составил этот код, но получаю ошибку.

Warning: mysqli_query(): Empty query on line 20 

Warning: mysqli_error() expects exactly 1 parameter, 0 given in line 20 

И мой код

<?php 
if(isset($_POST['submit'])){ 
if(isset($_GET['go'])){ 
$TES=$_POST['name']; 
$db=mysqli_connect ("localhost","root","") or die ('I cannot connect to the database because: ' . mysqli_error()); 
$mydb=mysqli_select_db($db,"prices"); 
$sql=`SELECT * FROM PRICES WHERE TES LIKE '%" . $TES . "%' `; 
mysqli_real_escape_string($db,$TES); 
$result=mysqli_query($db,$sql) or die(mysqli_error().'<br>'.$sql); 
while($row=mysqli_fetch_array($result) or die(mysqli_error())){ 
      $FRNZ=$row['FRNZ']; 
      $MSTR=$row['MSTR']; 
      $TES=$row['TES']; 
      $DEN=$row['DEN']; 
      $PRT=$row['PRT']; 
    } 
echo "<ul>\n"; 
    echo "<li>" . "Furnizor :" .$FRNZ . " Mostrar :" . $MSTR ." Cod tesatura :" .$TES . "Denumire :" . $DEN ."Pret :".$PRT . " </a></li>\n"; 
    echo "</ul>"; 

} 
} 

else{ 
echo "<p>Te rog scrie codul de tesatura</p>";} 
?> 
+2

Удалить отметки '' '' в своем запросе a и замените их кавычками. Кроме того, 'mysqli_real_escape_string ($ db, $ TES);' находится в неправильном месте, и вы также должны назначать ему переменную. –

+1

Заменить '$ TES = $ _ POST ['name'];' с '$ TES = mysqli_real_escape_string ($ db, $ _ POST ['name']);' и избавиться от 'mysqli_real_escape_string ($ db, $ TES);' вы делаете в два раза работу для ничего. Что же касается 'mysqli_error()' хорошо, передайте ему DB-соединение. http://php.net/manual/en/mysqli.error.php –

+0

Хорошо пойманный @ Фред-и-, больше кофе для меня. ;-) –

ответ

1

Вам необходимо исправить кавычку и цитировании в вашем запросе. Вы -

$sql=`SELECT * FROM PRICES WHERE TES LIKE "%" . $TES . "%" `; 

Это должно быть -

$sql="SELECT * FROM PRICES WHERE TES LIKE '%" . $TES . "%' "; 

Вы должны только проверить на ошибки запроса раз, которое вы делаете, когда вы запускаете запрос, изменить это -

while($row=mysqli_fetch_array($result) or die(mysqli_error())){ 

-

while($row=mysqli_fetch_array($result)){ 
+1

'if (isset ($ _ GET ['go'])) {' немного неясно. Я попросил OP предоставить дополнительную информацию об этом. –

+1

Хорошо, наконец, это работает! Спасибо @Jay Blanchard и Fred -ii- Извините за probably, это действительно самая неудачная ошибка, но это мое первое приложение php! Еще раз спасибо! – Cein

+0

Добро пожаловать! Мы стремимся, чтобы угодить! –

Смежные вопросы