Überschrift ausblenden wenn keine Datensätze mit select folgen

tmixer

Grünschnabel
Moin,

ich habe folgendes vor.
Auf der Seite sollen die Ausgabedaten mit vielen Tabellen dargestellt werden.
Die Datensätze haben verschiedene Felder, wovon das Suchkriterium bei dem Feld pnummer ist.
Dieses ist ein Gruppenzuordnung.

Suchkriterien gibt es viele, 238 Stück, auf dieser Seite frage ich jedoch nur 20 ab.
Die sichtbare Tabelle soll aber nur denn erscheinen wenn ich einen Eintrag habe der meiner where-Abfrage entspricht.
Ich möchte vermeiden dass die 20 Tabellenüberschriften erscheinen, wovon 4 Ausgaben unter der Überschrift haben, der Rest 16 nur die Überschrift.
Wenn als nur eine Überschrift erschein ohne Text darunter, soll sie auch gar nicht erst erscheinen.
Ich habe verschiedene If-Abfragen und Schleifen versucht, leider ohne Erfolg.

Unten der Code, wo wird was eingetragen?
Vielen Dank für Eure Mühe im Voraus.

Gruss aus Hamburg

Klaus


PHP:
<?php 
include ("db12357connect.php"); 

$SQL_Befehl = "SELECT * FROM `mannschaftbm` WHERE pnummer = 'flotkdr' order by jj01,mm01,tt01,jj02,mm02,tt02"; 
$resultat = mysql_db_query("db12357", $SQL_Befehl); 

// ab hier soll nun angezeigt werden wenn pnummer = 'flotkdr'  
// wenn nicht, dann zur nächsten Abfrage 

echo"<b><font face=Arial,Helvetica>Ausgabetext über der Überschrift</font></b>"; 
echo"<table>"; 
echo"<tr bgcolor=B4B0B0>"; 
echo"<td WIDTH=140><b><font face=Arial,Helvetica>Name u. Mail</font></b></td>"; 
echo"<td WIDTH=140><b><font face=Arial,Helvetica>Vorname</font></b></td>"; 
echo"<td WIDTH=220><b><font face=Arial,Helvetica>Dienstzeit</font></b></td>"; 
echo"<td WIDTH=270><b><font face=Arial,Helvetica>Dienstgrad u. Verwendung</font></b></td>"; 
echo"<td WIDTH=230><b><font face=Arial,Helvetica>Bemerkung</font></b></td>"; 
echo"</tr>"; 
  $color1="#E6E6E6"; 
  $color2="#F4F4F4"; 
  $row_count=0; 

while ($row = mysql_fetch_OBJECT($resultat)) { 
$row_color = ($row_count % 2) ? $color1 : $color2; 
echo"<tr bgcolor=". $row_color .">"; 
echo"<td WIDTH=140 align=\"left\"><a href=\"mailto:" 
    .$zeile->postmail 
    ."?subject=Text für Betreffzeile in der Mail $row->vname $row->name\"><font face=Arial,Helvetica>" 
    .$row->name 
    ."</font></a></td>"; 
echo"<td WIDTH=140><font face=Arial,Helvetica>$row->vname</font></td>"; 
echo"<td WIDTH=220><font face=Arial,Helvetica>$row->tt01.$row->mm01.$row->jj01 bis $row->tt02.$row->mm02.$row->jj02</font></td>"; 
echo"<td WIDTH=270><font face=Arial,Helvetica>$row->taetigkeit</font></td>"; 
echo"<td WIDTH=230><font face=Arial,Helvetica>$row->bemerkung</font></td>"; 
echo"</tr>"; 
$row_count++; 
  } 

..... 
// weitere Abfragen 
.... 

echo"</table>"; 

mysql_close; 
?>
 
Ganz einfach:

Mache einfach eine Abfrage wieviel Datensätze zurückgeliefert werden:

PHP:
if(mysql_num_rows($SQL_Befehl) > 0){
    //Ausgabe der Tabelle
} else {
    // was Ausgegeben werden soll wenn keine Datensätze zurückgeliefert werden
}
 
Hi

Ohne 100%ig Deinen Äußerungen folgen zu können ein einfacher Tipp:

Sammle Deine Informationen doch erst einmal in einer Variablen etwa

$Tabellen.

Enthält nun eine Select-Abfrage keine Daten, so fügst Du auch keine Informationen zur Variablen $Tabellen hinzu. Wenn doch, dann kannst Du $Tabellen entsprechend ergänzen.

Erst wenn alles ermittelt ist, verwendest Du echo $Tabellen;

Das dürfte etwas übersichtlicher sein

Gruß vop
 
Moin,

vielen Dank für die rasche Antwort.
Heute Abend eingefügt, es klappt, allerdings mit ein paar Änderungen, die mir als Neuling nicht ganz so nachvollziehbar sind, aber auch google.de sei Dank fand ich letztlich die Lösung zu den Fehlermeldungen.
Erweitern musste ich
PHP:
$SQL_Befehl = mysql_query(" SELECT *  FROM`mannschaftbm` WHERE pnummer = 'flottkdr' order by jj01,mm01,tt01,jj02,mm02,tt02");

// die Erweiterung zu SELECT zur Zeilenabfrage
mysql_query(" SELECT…”);
Dann aber hatte
PHP:
while ($row = mysql_fetch_OBJECT($resultat)) {
eine Fehlermeldung produziert.
Ich schrieb alles zurück und fügte zwei Zeilen komplett neu ein
PHP:
$resultat2 = mysql_query("SELECT *  FROM mannschaftbm WHERE pnummer = 'flottkdr'");
if(mysql_num_rows($resultat2) >0 ) {
Zweite Abfrage für die Zeilenauswertung, siehe da es klappte.
Sicherlich nicht die eleganteste Lösung, aber ich bin froh dass es nun klappt.
Schönen Abend und schönes Wochenende.

Gruss aus Hamburg

Klaus
 
Zurück