2015-02-02 5 views
0

Я пытаюсь заставить это отображать предупреждающее сообщение, когда ячейка содержит определенный текст типа «0» или «Н/Д». Он работал бы, когда вначале не было введенного значения, но я не могу заставить его эхо, когда уже есть определенное значение. Любая помощь будет большой. Благодаря!Если значение в определенной ячейке равно «Определенный текст» echo «Текст»

<?php 
       $listing = "$_POST[listing]"; 

       $sql = "SELECT open_house_attended FROM property_flyers WHERE street_property = '$listing' "; 
       $result = $conn->query($sql); 

       if ($result->num_rows > 0) { 
        // output data of each row 
        while($row = $result->fetch_assoc()) { 
        echo "</span><span class='report_bignumber'><br>". $row["open_house_attended"]."</span>"; 
        } 
       } else { 
        echo "<br> ". $noresults . "</span>"; 
       } 

      ?> 
+0

Вам нужно установить if() внутри цикла while(), чтобы проверить конкретное значение и повторить одно или другое. – satchcoder

ответ

1

Вы можете использовать немного регулярных выражений -

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     preg_match(trim($row["open_house_attended"]), '/[0]|[N\/A]/', $matches); // try to match '0' or 'N/A' 
     if(count($matches) == 0) { // do we have matches? 
      echo "</span><span class='report_bignumber'><br>". $row["open_house_attended"]."</span>"; 
     } else { 
      echo "<br> ". $noresults . "</span>"; 
     } 
    } 
} 
?> 

Или вы можете пойти немного более непосредственно -

if ($result->num_rows > 0) { 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     $ohCount = $row["open_house_attended"]; 
     if(($ohCount != '0') && ($ohCount != 'N/A')) { // do we have matches? 
      echo "</span><span class='report_bignumber'><br>". $ohCount ."</span>"; 
     } else { 
      echo "<br> ". $noresults . "</span>"; 
     } 
    } 
} 
?> 

preg_match()

+0

Не работал для меня. query ($ sql); \t \t \t \t, если ($ result-> num_rows> 0) { \t \t \t \t // выходные данные каждой строки \t \t \t \t \t в то время как ($ строка = $ result-> FETCH_ASSOC()) { \t \t \t \t $ ohCount = $ row ["open_house_attended"]; \t \t \t \t if (($ ohCount! = '0') && ($ ohCount! = 'N/A')) {// У нас есть совпадения? \t \t \t \t \t echo "
". $ ohCount. "
"; \t \t \t \t} еще { \t \t \t \t \t эхо "
". $ noresults. ""; \t \t \t \t} \t \t \t \t} \t \t \t \t?> – themurphyteammarketing

+0

Пожалуйста, не сваливать код в комментариях, они практически невозможно читать. Что вы подразумеваете под «не работали для меня»? –

+0

В коде, который вы разместили в комментариях @themurphyteammarketing, отсутствуют некоторые фигурные скобки. См. Обновленный ответ. У вас должна быть проверка ошибок, чтобы убедиться, что вы видите синтаксические ошибки. –

0
$sql = "SELECT open_house_attended FROM property_flyers WHERE street_property = '$listing' AND open_house_attended NOT IN ('0', 'N/A')"; 

использование NOT IN и список значений для отклонения. Это один из вариантов. Параметр preg match также работает, просто он просит php выполнить работу, и это требует sql для этого.

+0

Это будет только список записей, где что-то произошло, в то время как OP хотел бы установить набор, включая те, у которых нет данных. В этом случае OP будет показывать пользователю '$ noresults'. –

+0

хороший пункт, в этом случае проверка использования в php - это путь. проголосовали за ваш ответ. – user3593520