Nasıl kontrol eğer PHP while ($ row = mysql_fetch_array sonuçları

6 Cevap php

Bu sonuç döndürülür işlemek için nasıl anlamaya çalışıyorum Im, ben bunu nasıl kod istiyorsunuz?

while ($ row = mysql_fetch_array ($ Sonuç))

Yani isterseniz orada bir sonuç: onları baskı

else: bağlantıyı göstermek

6 Cevap

http://ca3.php.net/manual/en/function.mysql-num-rows.php

if(mysql_num_rows($result) > 0) {
   while($row = mysql_fetch_array($result)) { ... }
} else {
  // show link
}

Sen mysql_num_rows() to tell you how many results are found. Using that with a simple if-statement kullanabilir ve hangi eylemin belirleyebilirsiniz.

if (mysql_num_rows($result) > 0) {
  // do while loop
} else {
  // show link
}

Diğerleri mysql_num_rows() kullanmanızı öneririz ama size bir buffered query kullanmak eğer işlev yalnızca farkında olmalıdır. Eğer mysql_unbuffered_query() kullanarak sorgulayabilir, sonucu satır sayısı mevcut değildir.

Ben basit bir bayrak değişkeni kullanabilirsiniz:

$found_row = false;

while ($row = mysql_fetch_array($result)) {
  $found_row = true;
  . . .
}

if ($found_row == false) {
  // show link
}

Bu doğru art arda $found_row ayarlamak için gereksiz görünebilir, ancak bir değişkene değişmez bir değer atayarak herhangi bir dilde önemsiz gider olmalı olabilir. Kesinlikle bir SQL sorgu sonucunu alma ve işleme göre küçük.

Ben bunu anladım olabilir:

if (!($row = mysql_fetch_array($descResult)))
     {
     echo "<tr><td>Add Link</td></tr>";
}

Bu (mysql_num_rows olmadan yapılabilir) ya da ek bir (bayrak) değişken

if ( false===($row=mysql_fetch_array($result, MYSQL_ASSOC)) ) {
  echo 'no rows in result set';
}
else {
  do {
    echo $row['X'];
  } while ( false===($row=mysql_fetch_array($result, MYSQL_ASSOC)) );
}

ama gerçek (deyim-ve eğer süre bendinde tek tek) komutu getir çoğaltır.

Önemsiz olmadan bile kısa sözdizimi kullanın mysql_num_rows işlemci zaman kazanmak için:

if($result) {
   // return db results
} else {
   // no result
}