[MYSQL] Bei fehler auf ne andere seite verlinken

mvoigt

Mitglied

Hallo ist es möglich das man anstatt die Fehlermeldung "tabelle xyz does .."
eine Weiterleitung auf ne andere Seite bekommt?

hier meine abfrage
PHP:
$mail=mysql_fetch_array(mysql_query("SELECT * FROM mail_$id WHERE username='$username'"));
echo mysql_error();

gruss Matthias
 
Zuletzt bearbeitet von einem Moderator:
Hi

Meines Wissens kannst Du die Ausgabe des Fehlers mit einem @ unterbinden, also:
Code:
$mail=@mysql_fetch_array(mysql_query("SELECT * FROM mail_$id WHERE username='$username'"));

Über die Prüfung, ob es zu einem Fehler kam ( mysql_error() ) kannst Du im Head-Bereich eine Weiterleitung generieren.

Wichtig ist dabei, daß die Weiterleitung vor JEDLICHER Ausgabe im Browser passiert.
Code:
echo '<Meta http-equiv="refresh" content="30;URL=\'''.$php_self.'">';
die 30 steht für 30 Sekunden Wartezeit
hinter URL= schreibst du die URL der Weiterleitungs-Seite rein.

Was du davor ausgeben kannst, ist das
Code:
header("Pragma: no-cache");
um das Cachen der Seite zu verhindern.

Wenn sich bei mir erst bei Abarbeitung der PHP herausstellt, ob eine Weiterleitung nötig wird, speicher ich die Ausgaben in einer Variable und gebe Diese erst zum Schluß aus, daß die Weiterleitung (wenn erforderlich) trotz der generierten Seite das Erste ist, was ausgegeben wird (nach dem Pragma).

Hoffe, konnte was helfen

MfG
Posti
 
Nee, das ist nicht das was ich suche

also wenn die Tabelle nicht mehr vorhanden ist denn soll er die Seite xyz.php laden
und den weiteren Code aus der abfrage nicht ausführen
PHP:
header("Pragma: no-cache");
echo '<Meta http-equiv="refresh" content="30;URL=home.php?page=mailfehler\'''.$php_self.'">';
 
include ("config.inc.php");
include('db.php');

$mail=@mysql_fetch_array(mysql_query("SELECT * FROM mail_$id WHERE username='$username'"));
mysql_error()

leider bekomme ich nur ne weise Seite
gruß matthias
 
Zuletzt bearbeitet:
Hi

Wie sieht's aus, wenn Du folgendes probierst:
PHP:
if (mysql_error()){
   include("seite_bei_fehler.php");
}else{
   include("seite_bei_ohne_fehler.php");
}
Wenn bei der Anfrage ein Fehler auftritt, sollte mysql_error() einen Inhalt haben.
Wenn's fehlerfrei abläuft, sollte mysql_error() leer sein *denk*

MfG
Posti
 
Zurück