Wenn kein Datensatz geunden, dann...
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anweisung
anzahl
daten
datensatz
ergebnis
eventuell best
fehler
fehlerhafte daten
fehlerhaften datensatz
fehlermeldung
folgende result
insert
mailadresse
methode
not
nummer
registrierung
result
tabelle
verarbeitung
-
Ich habe zu folgendem ein Priblem. Und zwar wenn sich jemand bei mir einloggt, dann soll ?berpr?ft werden, ob es die entsprechende ID-Nummer gibt. Sofern diese besteht... soweit so gut... erledigt
Meine Anweisung ist in ca. folgende:
$result = mysql_query("SELECT * FROM tabelle WHERE ID='123'", $dbverbindung)
Wenn jetzt aber keine Datens?tze gefunden (sprich ID ist ung?ltig) wurden soll eine Fehlermeldung erscheinen. Ich kenne nur die "or DIE"-M?glichkeit, aber mit der kann man nen Abschlu?text ja nur eingeben. Ich will aber, das dieser dann noch etwas ausf?hrt!
Wer kann mir da helfen? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das mit der if ($result="") Methode habe ich schon zuvor ausprobiert, und das hatte nicht geklappt, weil er mir angab, das sich, auch wenn keine Ergebnisse drin befinden, immer noch ein [object] vorhanden ist.
Ich habe den Script ausgeweitet, indem ich erstmal einen Datensatz mit einer Entsprechenden ID einf?ge, aber der total fehlerhafte Daten enth?lt. Daraufhin lese ich alle Datens?tze mit der ensprechenden ID aus, und speicher nur den in Variablen, dessen Pr?fsumme richtig ist. Daraufhin l?scht er den fehlerhaften Datensatz wieder. Das h?rt sich zwar kompliziert an, aber klappt super. Nur m?chte ich dem Server sowie dem User (auch wenns Millisekunden sind, diese Zusatzoperationen ersparen. Ich gebe mal am besten den Quelltext meiner Registrierungsbest?tigung (da ist das genauso):
<span class="standardtext"><b>Registrierung</b><br><br></span>
<?php
$getsub = $_GET["sub"];
include("initpage.inc.php");
$preloadstring="INSERT INTO register_key (wochenstatistik, user_key) VALUES ('X', '$getsub');";
mysql_query($preloadstring, $db_conn);
$checkoutstring = "SELECT dienst, mailadresse, homepage, wochenstatistik, user_id, user_pass FROM register_key WHERE user_key = '$getsub';";
$result = mysql_query($checkoutstring, $db_conn);
$foundcode="Z";
while($i = mysql_fetch_row($result)) {
if ($i[3]=="j" || $i[3]=="n") {
$save_dienst = $i[0];
$save_mailadresse = $i[1];
$save_homepage = $i[2];
$save_wochenstatistik = $i[3];
$save_user_id = $i[4];
$save_user_pass = $i[5];
$foundcode="A";
echo "<span class=\"standardtext\">Die Registrierung war erfolgreich!<br><br>Du kannst dich jetzt mit deinen Daten unter Login einloggen.<br><br>Viel Spa? auf Freeservice.de.be</span>";
// Hier erfolgt die L?schung des X-Datensatzes, sowie die Umbuchung des User-Status
}};
if ($foundcode=="Z") {echo "<span class=\"standardtext\">Die Registrieungsdaten sind ung?ltig!<br><br>Eventuell best?tigst du deine Mail viel zu sp?t, oder dein Link ist ung?ltig! Bitte registriere dich in diesem Fall erneut!</span>";};
?>
Vielleicht hat jemand da mehr Ahnung als ich, sonst mu? ich bei der Methode bleiben -
Hi kenny!
Im Prinzip hast du zwei m?glichkeiten dein Problem zu pr?fen:
$result = mysql_query("SELECT COUNT(*) FROM tabelle WHERE ID='123'", $dbverbindung)
$anzahl = mysql_fetch_array($result);
if ($anzahl[0] == 0)
{
echo ("FEHLER.......");
}
else
{
......
}
Aber wie ich im unteren Post gesehen habe, ben?tigst du dann noch daten!
Da w?re es besser, wenn du ein Feld mitliest, welches NOT NULL ist, z.B den Primary Key
$result = mysql_query("SELECT PRIMARY_KEY, ......... FROM tabelle WHERE ID='123'", $dbverbindung)
$ergebnis = mysql_fetch_array($result);
if ( ! $ergebnis[0] )
{
echo ("FEHLER....");
}
else
{
.......
}
oder meinst du etwas anderes?!
Hoffe, ich habe geholfen!
-
Die Zeile
$anzahl = mysql_fetch_array($result);
gibt schon eine Fehlermeldung aus, wenn keine Daten gefunden wurden.
Ich k?nnte jetzt rein theoretisch daraus folgendes machen:
$anzahl = mysql_fetch_array($result);
or DIE(".....");
aber dann ist wieder das Problem, das ich nur einen Abschlutext nutze, und keine weitere Verarbeitung danach machen kann.
Es klappt aber auch nicht
$anzahl = mysql_fetch_array($result);
or {
...anweisungen
}
Dann sagt er mir, das der or-Befehl falsch verwendet wird! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage