Wenn DB leer, Text anzeigen lassen

rikro

Mitglied
Hallo!

Über die Such-funktion hab ich nichts gefunden, also frage ich jetzt hier...

Ich habe eine DB die mit "LIKE 'a%'"zb für alle Einträge die mti "a" anfangen ausgelsesn wird.

PHP:
<?
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage =  "SELECT * FROM $tabelle WHERE title LIKE 'a%' ORDER BY title ASC"; 
$result = mysql_db_query($dbname, $dbanfrage, $dbverbindung);
while ($ausgabe = mysql_fetch_array($result))
 { 

 echo Kram etc.

}
mysql_close ($dbverbindung); 
?>

Jetzt habe ich probiert, das ganze mit einer If-Abfrage zu machen...
PHP:
<?
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage =  "SELECT * FROM $tabelle WHERE title LIKE 'a%' ORDER BY title ASC"; 
$result = mysql_db_query($dbname, $dbanfrage, $dbverbindung);
while ($ausgabe = mysql_fetch_array($result))
 { 
 if($ausgabe['id'] = " ") {
 echo ("Keine Datei vorhanden");
 }
 else {
 echo Kram etc.
 }
}
mysql_close ($dbverbindung); 
?>

Nur es funktioniert auch nicht, man sieht nur ein leeres Feld, in dem nichts drin steht...

Was mache ich falsch?
 
Schau doch erstmal nach, ob überhaupt ws drin is. ^^

PHP:
$dbanfrage =  mysql_query("SELECT count(*) FROM $tabelle WHERE title LIKE 'a%'");
$menge = mysql_result($dbanfrage, 0);
if ($menge > 0) {
  // is was drin
} else {
  // is nix drin
}
 
Mhh, ich kanns mal probieren...
Nur in der Tabelle ist ja was drin...

Es wird nur nicht angezeigt, weil kein Eintrag mit nem A anfängt..
 
Das ist nun die Frage, willst du die DB abfragen ob generell was drin ist oder willst du prüfen ob ein Titel mit dem Anfangsbuchstaben A drin ist.
Dannach richtet sich deine SQL Abfrage.
 
Nur prüfen, ob was mit dem Anfangsbuchstaben A ist...

Das A wird dann auch durch den Rest des Alphabetes ersetzt, aber als Beispiel reicht A...
 
ja dann nimm das was ich geschrieben habe.
das prüft, ob es einträge mit dem anfangsbuchstaben A gibt ... wenn du die Aktion noch in ne schleife von A bis Z packst, bekommst alles ^^
 
OK, danke!

Noch eine Frage:
Wie muss ich den LIKE-Befehl schreiben, wenn ich alle Zahlen anzeigen will?

/EDIT:
Bei DBs, wo Inhalt drin ist, zeigt er mir den Fehler:
Code:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /www/htdocs/rikro/data/arcarde.php on line 42

Codezeilen (erste Zeile ist 39):
PHP:
echo("<tr><td>&nbsp;</td></tr><tr><td class='contenttitle'><a id='b'></a>B</td></tr>");
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage =  mysql_query("SELECT count(*) FROM $tabelle WHERE title LIKE 'b%'"); 
$menge = mysql_result($dbanfrage, 0); 
if ($menge > 0) {
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage =  "SELECT * FROM $tabelle WHERE title LIKE 'b%' ORDER BY title ASC"; 
$result = mysql_db_query($dbname, $dbanfrage, $dbverbindung);
while ($ausgabe = mysql_fetch_array($result))
 {            
 echo("<tr><td class='content'><table width='100%'><tr><td class='content' width='90%'><a href='index2.php?go=arcarde&view=details&id=$ausgabe[id]'>$ausgabe[title]</a></tr>
<td class='content'><a href='index2.php?go=arcarde&view=details&id=$ausgabe[id]'>Details</a></td></tr></table></td></tr>"); 
 }
mysql_close ($dbverbindung); 
} else {
echo("<tr><td class='content'><table width='100%'><tr><td class='content'>-noch kein Rom vorhanden-</td></tr></table></td></tr>");
}
mysql_close ($dbverbindung);
 
Zuletzt bearbeitet:
Für Zahlen vielleicht besser:
PHP:
$sql = mysql_query("SELECT count(*) FROM $tabelle WHERE title REGEXP '^[0-9].*'";

//ungetestet
 
Original geschrieben von ronin
Schau doch erstmal nach, ob überhaupt ws drin is. ^^

PHP:
$dbanfrage =  mysql_query("SELECT count(*) FROM $tabelle WHERE title LIKE 'a%'");
$menge = mysql_result($dbanfrage, 0);
if ($menge > 0) {
  // is was drin
} else {
  // is nix drin
}

Nochmal ne frage dazu:
Er zeigt mir da nur an, das nichts drin ist...
Da IST aber 100% was drin...
PHP:
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage =  mysql_query("SELECT count(*) FROM $tabelle WHERE title LIKE 'b%'"); 
$menge = mysql_db_query($dbname, $dbanfrage, $dbverbindung);
if ($menge > 0) {
$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage =  "SELECT * FROM $tabelle WHERE title LIKE 'b%' ORDER BY title ASC"; 
$result = mysql_db_query($dbname, $dbanfrage, $dbverbindung);
while ($ausgabe = mysql_fetch_array($result))
 {            
 echo("Ausgabe der DB"); 
 }
mysql_close ($dbverbindung); 
} else {
echo("nix drin")
}
mysql_close ($dbverbindung);
 
Schon mal was von [phpf]mysql_num_rows[/phpf] gehört?
So sollte es klappen:
PHP:
$sql = mysql_query("SELECT irgendwas FROM tabelle");
if (mysql_num_rows($sql) > 0) {
    echo 'Datensätze vorhanden!';
} else {
    echo 'Keine Datensätze gefunden!';
}
 
Zurück