MySQL Abfrage / Gutschein? MOD...

pl_90

Angesehenes Mitglied
Ich hab da ein kleines Problemchen...
Ich hab gestern Abend noch ein kleines Script zusammen gebastelt, muss ich zugeben, dass nicht alles von mir ist...
tongue.gif


Also der Script generiert eine Zufallszahl/Zufallsbuchstabe und speichert diese in die DB. Dannach wenn jemand den generierten Code eingibt und dieser Stimmt wird irgendwas ausgeführt, wenn der Code mit dem aus der DB nicht stimmt, wird ein Fehler angezeigt und nichts ausgeführt. Wenn der Code stimmt und der Besucher 'weitergellassen' wird bzw. wenn die Aktion erfolgreich durchgeführt worden ist, wird der Code aus der DB gelöscht. Ist der Code älter als XXX Tage/Stunden/Minuten wird dieser ebenso gelöscht. Das sieht so aus:

QUOTE
### Zufallszahl generieren und in DB schreiben ###

$zahlenkombination = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

function GetRandomString($length) {

global $zahlenkombination;

settype($length, "integer");
settype($rndstring, "string");
settype($a, "integer");
settype($b, "integer");

for ($a = 0; $a <= $length; $a++) {
$b = rand(0, strlen($zahlenkombination) - 1);
$rndstring .= $zahlenkombination[$b];
}

return $rndstring;

}

$datum = time();
$zufallszahlen = GetRandomString(10);

mysql_query("INSERT INTO TABELLE (B_CODE, DATUM) VALUES ('$zufallszahlen', '$datum')");
...
### ENDE ###

### Code Abfrage ###

...
$bid = $_POST['bid'];
...

$bid_abfrage = mysql_query("select B_CODE from TABELLE");
$bid_ausgabe = mysql_num_rows($bid_abfrage);

...

elseif ($bid_ausgabe !== $bid) {
$fehler = "bla bla Code nicht richtig bla bla";
}

...

mysql_query("DELETE FROM TABELLE WHERE B_CODE = '$bid'");
...
### ENDE ###


Ich benutze das als Gusctheinmod und als noch ein paar Sachen...

Und mein Problemchen ist jetzt, dass mit der Abfrage etwas nicht stimmt, also ich bekomme ständig ne Meldung, dass der Code nicht stimmt, obwohl alles richtig ist...
Was ist den da falsch? Also DB existiert alles wird korrekt ins DB geschrieben und auch gelöscht, aber wie gesagt mit der Abfrage stimmt etwas nicht, was ist los?

Vielen Dank für die Hilfe.
biggrin.gif



Grüße

Dawid
 
Heylou...

Hat niemand ne Idee wieso diese Abfrage hier:
QUOTE
$bid_abfrage = mysql_query("select B_CODE from TABELLE");
$bid_ausgabe = mysql_num_rows($bid_abfrage);
...
elseif ($bid_ausgabe !== $bid) {
$fehler = "bla bla Code nicht richtig bla bla";
}


nicht geht? Bitte ...
laugh.gif



Grüße

Dawid
happy.gif
 
QUOTE (pl_90 @ Sa 7.4.2007, 16:20) Heylou...

Hat niemand ne Idee wieso diese Abfrage hier:

QUOTE
$bid_abfrage = mysql_query("select B_CODE from TABELLE");
$bid_ausgabe = mysql_num_rows($bid_abfrage);
...
elseif ($bid_ausgabe !== $bid) {
$fehler = "bla bla Code nicht richtig bla bla";
}


nicht geht? Bitte ...
laugh.gif



Grüße

Dawid
happy.gif


Okay, ausnahmsweise ;-)

auf Deine Anfrage kann man nicht antworten.

Es fehlen evtl. Teile des relevanten Codes. Du gibst aber auch nicht eindeutig an, wo das Problem direkt sitzt. Ich erkenne aus Deiner Frage nicht wirklich, welche abfrage nicht funktioniert. Und zum Schluss wäre es sehr hilfreich, wenn du den Fehler, den Dir PHP oder MySQL anzeigt, auch hier posten würdest. Oder wer weiss, wenn Du dir das richtig ausgeben lässt, kommst du vielleicht hinter das eigentliche Problem.

Wenn ich ein DB Problem habe, dann füge ich nach jedem Query eine Abfage nach evtl. DB Fehlern aus und lass mir dann auch alles detailliert anzeigen. So z.B.

$res = mysql_query($sql);
if (mysql_error()) {
echo "<pre>\n";
echo mysql_errno() . ": \n";
echo mysql_error() . " \n";
echo "-------------------------------\n";
echo $sql . "\n";
echo "-------------------------------\n";
echo "</pre>\n";
}

Und wenn nun die abfrage in einen Fehler läuft, dann wird der Fehler meistens sehr gut beschrieben. Und drunter auch gleich noch das SQL Statement, damit ich überprüfen kann, ob und wo ich was falsch zusammengebaut habe.

Wenn Du also solche Fehlermeldungen hast, und den Fehler nicht lokalisieren kannst, dann würde ich genau so eine Ausgabe mit dem dazugehörigen Script(teil) noch einmal posten ;-)

sonnige Grüsse
 
Hey...
Thx für Antwort...
biggrin.gif


Also dieses Teil wie schon geschrieben geht nicht:

QUOTE
$bid_abfrage = mysql_query("select B_CODE from TABELLE");
$bid_ausgabe = mysql_num_rows($bid_abfrage);
...
elseif ($bid_ausgabe !== $bid) {
$fehler = "bla bla Code nicht richtig bla bla";
}



Und ich bekomme auch keine Fehler, nur irgendwie kann dieser Script die Werte nicht vergleichen oder so... Keine Ahnung was los ist...

Aber warte mal kurz.. Ich versuche noch mal mit den errors, vielleicht wirds ja was angezeigt...

 
Also ich habs versucht aber nix nada... Alles ist sauber... Werte sind da nur verglichen werden Sie nicht... Was ist den los?
 
Ok, ich habs.
1. Der Furzkopf hat sich nicht mit elseif vertragen,
2. Der Furzkopf hat nichts aus der DB geholt,
3. Der Futzkopf ist und bleibt ein Furzkopf.
biggrin.gif


Also ich kapp das nicht, ich habe direkt dadrunter so etwas Ähnliches und es klappt und das nicht? Das ist irgendwie doof...
Ok, das ganze sieht jetzt so aus:

QUOTE
### Zufallszahl generieren und in DB schreiben ###

$zahlenkombination = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

function GetRandomString($length) {

global $zahlenkombination;

settype($length, "integer");
settype($rndstring, "string");
settype($a, "integer");
settype($b, "integer");

for ($a = 0; $a <= $length; $a++) {
$b = rand(0, strlen($zahlenkombination) - 1);
$rndstring .= $zahlenkombination[$b];
}

return $rndstring;

}

$datum = time();
$zufallszahlen = GetRandomString(10);

mysql_query("INSERT INTO TABELLE (B_CODE, DATUM) VALUES ('$zufallszahlen', '$datum')");
...
### ENDE ###

### Code Abfrage ###

...
$bid = $_POST['bid'];
...

$bidabfrage = mysql_query("SELECT * from BACKLINK_CODE WHERE B_CODE='$backid'") or die (mysql_error());
$bidausgabe = mysql_num_rows($bidabfrage);

while($row=mysql_fetch_array($bidabfrage)) {
$bidnummer = $row['B_CODE'];
}

...

if ($bidnummer !== $bid) {
$fehler = "bla bla Code nicht richtig bla bla"; // oder echo "bla bla Code nicht richtig bla bla";
}

...

mysql_query("DELETE FROM TABELLE WHERE B_CODE = '$bid'");
...
### ENDE ###




Grüße

Dawid
biggrin.gif
 
Zurück
Oben