2016-04-26 4 views
0

Я пытаюсь получить количество строк из инструкции MySQL и создать инструкцию if-else. Тем не менее, я пробовал свои времена, но, похоже, он не работает. Может ли кто-нибудь сказать мне, что я делаю неправильно? или есть лучший способ сделать это.PHP sql server получить количество строк

PHP:

$sqlquery_str = "SELECT * FROM Promotions WHERE membershipType = :membershipType AND promoStatus = '1' AND CONVERT(datetime, startDate, 103) <= convert(varchar(8), GETDATE(), 112) AND CONVERT(datetime, endDate, 103) >= convert(varchar(8), GETDATE(), 112) AND startTime <= CONVERT(char(5), GETDATE(),108) AND endTime >= CONVERT(char(5), GETDATE(),108)"; 

    $number_of_rows = mysql_fetch_array($sqlquery_str); 
    $total = $number_of_rows[0]; 

Если другое заявление:

if (!$results){ 
     logError('SQL Query failed',print_r($conns->errorInfo(),true)); 
     echo ' 
     <b>There was an error retrieving the information for the selected event. Please contact the administrator for further advice.</b>'; 
     } 

    else if ($total == 1){ 
     echo "There is an error"; 
     echo "<br />"; 
     } 

    else { 
     $DOMstr = "<h1 class='post-title'>".$results['titlePromo']."</h1>"; 
     } 
+0

Что такое, если иное? Что вы пытаетесь достичь? – Ofir

+1

Swap 'mysql_fetch_array' для' mysql_num_rows'. – Farkie

+0

@Ofir Я думаю, что это просто комментарий – Farkie

ответ

0

Использование mysql_num_rows().

<?php 
    $sqlquery_str = "SELECT * FROM Promotions WHERE membershipType = :membershipType AND promoStatus = '1' AND CONVERT(datetime, startDate, 103) <= convert(varchar(8), GETDATE(), 112) AND CONVERT(datetime, endDate, 103) >= convert(varchar(8), GETDATE(), 112) AND startTime <= CONVERT(char(5), GETDATE(),108) AND endTime >= CONVERT(char(5), GETDATE(),108)"; 

    $number_of_rows = mysql_num_rows($sqlquery_str); 

    if ($number_of_rows > 0) 
    { 
     $results = mysql_fetch_array($sqlquery_str); 
     $DOMstr = "<h1 class='post-title'>".$results['titlePromo']."</h1>"; 
    } 
    else 
    { 
     echo "There is an error"; 
     echo "<br />"; 
    } 
?> 
0

EDIT: Изменено на то, что вы мне сказали.

$sqlquery_str = "SELECT * FROM Promotions WHERE membershipType = :membershipType AND promoStatus = '1' AND CONVERT(datetime, startDate, 103) <= convert(varchar(8), GETDATE(), 112) AND CONVERT(datetime, endDate, 103) >= convert(varchar(8), GETDATE(), 112) AND startTime <= CONVERT(char(5), GETDATE(),108) AND endTime >= CONVERT(char(5), GETDATE(),108)"; 

$query = mysql_query($sqlquery_str) or die('SQL Query failed'); 
$number-of-rows = mysql_num_rows($query); 

if ($number-of-rows == 0) 
{ 
    // picture... 
    echo "<img src='x' />"; 
} 
else 
{ 
    if($number-of-rows == 1) 
    { 
     $results = mysql_fetch_array($query); 
     $DOMstr = "<h1 class='post-title'>".$results['titlePromo']."</h1>"; 
    } 
    else 
     echo "ERROR"; 
} 
+0

Я пытаюсь выполнить if if else в php, используя число столбцов i, полученных из sql. если число строк равно 0, будет отображаться изображение по умолчанию, но если число столбцов больше 1, то выводится сообщение об ошибке. иначе просто покажите извлеченные данные. Извините, это кажется вам непонятным – lel

0

Я понимаю, что вместо этого я должен использовать fetchAll(). Спасибо за помощь!

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