2016-05-25 2 views
0

У меня есть таблица заказов в mysql, и в этом случае для некоторых заказов я устанавливаю особый статус заказа как «обзор». Я хочу настроить способ, если какой-либо заказ, размещенный конкретным клиентом (имя и фамилия), для которого я ранее установил статус заказа как «обзор», чтобы отобразить предупреждение в списке.Отображается на основе результатов в запросе Mysql

 
$sql = "select * from order where firstname = ".$firstname." AND lastname = ".$lastname." AND order_status = 'review';"; 
       $SQLresult = mysql_query("$sql", $DBcon_MySQL);

  while($row = mysql_fetch_array($SQLresult)) {  
        foreach($row as $row){ 

         $result = "warning!"; 
         echo $result; 
        } 
      } 

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

[EDIT после применения Ответ]

Это, как я использую его.

<td width="200"> 
    <? 
     $sql = "select * from cust_order where firstname = '$firstname' AND lastname = '$lastname' AND order_status = 'review'"; 
     $SQLResult = mysql_query("$sql", $DBcon_MySQL); 

     while($row = mysql_fetch_array($SQLResult)) {  
       //$result; 
       foreach($row as $row){ 
        //$result=""; 

        $result = "Warning!"; 

       } 

    ?> 

     <p><? echo $result;?></p> 
     <?} ?>  
    </td> 

Как я должен вставить чек, что он должен отображать предупреждение только один раз Независимо от того, сколько заказов от одного клиента помечаются как обзор, предупреждение отображения только один раз?

+1

Вложите текстовые переменные в одинарные кавычки, так что окончательный запрос будет выглядеть следующим образом: "... WHERE Firstname = 'Джон' AND ...". Пожалуйста, объясните, какой результат вы ожидаете от этого кода. – Imashcha

+0

Я не понял, что вы подразумеваете, заключая в одинарной кавычки. Результат, который я хочу, - путем поиска таблицы заказов с именем и фамилией, если есть какой-либо заказ с обзором состояния заказа, отображает предупреждение. –

+1

$ sql = "select * from order где firstname = '". $ Firstname. "' AND lastname = '". $ Lastname. "' AND order_status = 'review';" Обратите внимание на «вокруг переменных». – Imashcha

ответ

1

попробовать это,

$sql = "SELECT 
        * 
      FROM 
        `order` 
      WHERE 
        firstname = '$firstname' AND lastname = '$lastname' AND 
        order_status = 'review' LIMIT 1"; 

    $SQLresult = mysql_query($sql, $DBcon_MySQL); 

    while($row = mysql_fetch_array($SQLresult)) {  
     foreach($row as $row){ 

      $result = "warning!"; 
      echo $result; 
     } 
    } 

Информирует, что MySQL функция устарела и не рекомендуется. ИСПОЛЬЗУЙТЕ MySQLi или PDO. ссылаются на следующие запросы.

http://php.net/manual/en/book.mysqli.php

http://php.net/manual/en/book.pdo.php

+0

Привет Это тоже работает, но проблема, которую я получаю, - это многократное эхо. Я думаю, что это связано с тем, что, если у одного клиента есть несколько заказов, и я установил статус заказа для их просмотра, он повторяется каждый раз. Например, если у 1 клиента есть 5 заказов при просмотре статуса, то он повторяет «Предупреждение!». 5 раз. Я редактировал вопрос для добавления редактируемого ответа и проблем, связанных с ними. Пожалуйста, взгляните на это. Спасибо –

+0

ИСПОЛЬЗУЙТЕ ПРЕДЕЛ 1, см. Ответ! – Hytool

+0

Так просто, я фактически сохранил результат в массиве и назвал их вне цикла while. Но ваше просто. спасибо –

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