PHP - bir tablo yazdırırken boş satırları hariç

3 Cevap

Aşağıdaki kod harika çalışıyor. Bu bir HTML tablosu olarak bir MySQL veritabanı öğeleri yazdırır. Ancak, veritabanı ilk sütun (değişken "site") boş girişleri vardır. Nasıl "site" boş olduğu bu tablo satırları / girişleri hariç olabilir?

$result=mysql_query("SHOW TABLES FROM database LIKE '$find'")
or die(mysql_error());


if(mysql_num_rows($result)>0){
while($table=mysql_fetch_row($result)){
print "<p class=\"topic\">$table[0]</p>\n";
$r=mysql_query("SELECT * , itemsa - itemsb AS itemstotal FROM `$table[0]` ORDER BY itemstotal DESC");



print "<table class=\"navbar\">\n";
while($row=mysql_fetch_array($r)){


$itemstotal = $row['itemsa'] - $row['itemsb']; 

print "<tr>";


print "<td class='sitename'>".'<a type="amzn" category="books" class="links2">'.$row['site'].'</a>'."</td>";

print "<td class='class1'>".'<span class="class1_count" id="class1_count'.$row['id'].'">'.number_format($itemstotal).'</span>'."</td>";
print "<td class='selector'>".'<span class="button" id="button'.$row['id'].'">'.'<a href="javascript:;" class="cell1" id="'.$row['id'].'">'.Select.'</a>'.'</span>'."</td>";
}
print "</tr>\n";
}
print "</table>\n";



}
else{
print "";
}

3 Cevap

SQL sorgusu nerede madde ekleyin.

WHERE `site` <> ''
or
WHERE `site` != ''

çalışması gerekir.

Site diğer PHP seçenekleri için boş satırları istiyorsanız Ancak, PHP ve MySQL sorgu değil boş siteleri filtrelemek için daha iyi olurdu.

Sadece print sizin while döngüde çağırır önce aşağıdakileri koyun:

if (trim($row['site']) == '') {
    // skip output of this row if site is empty
    continue;
}

Basit çözüm iç while bloğunun içine aşağıdaki satırı eklemek olacaktır:

while($row=mysql_fetch_array($r)){

if (!trim($row['site'])) continue; // skip empty rows

$itemstotal = $row['itemsa'] - $row['itemsb'];

Edit: Aslında, o $itemstotal değişkeni gerekli değildir gibi görünüyor; Bu SQL sorgusu bir "sanal" itemstotal sütun olarak hesaplanan ediliyor. Eğer "number_format($itemstotal)" "number_format($row['itemstotal'])" birkaç satır aşağı, tamamen "$itemstotal = ..." hattının kurtulabilirsiniz ile. Değiştirin