Sönke Tesch: Abschalten einer Fehlermeldung

Beitrag lesen

NUR: Wenn jetzt eine Nummer eingegeben wird, die es nicht gibt. Wird ja eine Fehlermeldung zurückgegeben (is ja normal, weil nicht da!) Wie unterdrücke ich diese Fehlermeldung die von der Datenbank zurückkommt!

Gar nicht, denn Fehlermeldungen sind dazu da, gelesen zu werden. Davon mal abgesehen: Wenn kein passender Datensatz gefunden wird, gibt die Datenbank keinen Fehler zurück, sondern ein leeres Ergebnis - das ist ein Unterschied.

$result=mysql_query("select * from stapler where com=$com order by tragkraft, baujahr");
if (!$result) {
    echo "<b>Datensatz nicht in der Datenbank vorhanden!<b>";
}

Datensatz ist nicht in der Datenbank vorhanden!

Wie eben beschrieben ist das die falsche Schlussfolgerung. Ist $result false, liegt ein Fehler in Deinem SQL-Befehl vor. Wäre kein Datensatz vorhanden, würde $result ein Ergebnis enthalten, für das mysql_num_rows() 0 bzw. mysql_fetch_row() false zurückgibt, also ein leeres Ergebnis.

Fehler: Unknown column 'e14000' in 'where clause'

Diesen Fehler gibst Du im obigen Code nicht aus. Ich gehe aber mal davon aus, daß das "e14000" in $com steht, damit sieht Dein SQL-Befehl so aus:

select * from stapler where com=e14000 order by tragkraft, baujahr

Daß das nicht passen kann, sollte Dir eigentlich klar sein. Falls nicht: Wenn Du eine Zeichenkette vergleichen willst, gib auch eine Zeichenkette an (mit Anführungszeichen). Im Moment vergleichst Du da nur die Spalte com mit der (nicht existierenden) Spalte e14000 - daher auch der Fehler.

Weiterhin wäre es mehr als ratsam, Daten, die von außen kommen, mittels mysql_escape_string() gegen Manipulationen abzusichern.

Alles in allem müßte es so aussehen:

$result = mysql_query("select * from stapler where com="".mysql_escape_string($com)."" order by tragkraft, baujahr");
  if (!$result) {
      echo "Fehler: ".mysql_error();
  }
  else {
      while ($row = mysql_fetch_xxx($result) {
          // Datensatz $row ausgeben
          }
  }

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\Programme\Apache Group\Apache2\htdocs\richter\auswahl.php on line 235

Auch mysql_fetch_object() taucht in Deinem Code nicht auf. Nichtsdestotrotz solltest Du $result nicht benutzen, wenn da nichts drin ist (außer dem Wert false).

Gruß,
  soenk.e