[Php] zwei Tabellen abrufen, Datensätze vergleichen [Ende]

Brownie

Well-known member
ID: 163852
L
21 April 2006
6.080
483
Hallo,
da es gerade regnet, hab ich versucht etwas zu programmieren, um mir die Zeit zu vertreiben... nur hat das nicht so geklappt, wie ich wollte, was mich nicht so verwundert. Ich habe noch nie so wirklich programmiert. Deswegen hab ich das alles auf Umwege versucht zu lösen.

Ich wollte, dass ein User nach einer bestimmten Aktivität einen Bonus bekommt, nachdem er auf xyz.php klickt. Der Bonus ist einmalig und wer den Bonus erhalten hat, dessen ID wird in die Tabelle 2 eingetragen, so dass jeder nur einmal den Bonus erhalten kann.

Dazu hab ich mit der ersten Tabelle die Informationen zum Nutzer abgefragt: seine ID und Aktivität.

Im zweitem Schritt wurde überprüft, ob der Nutzer schon in Tabelle 2 steht. Wenn ja, hat er die Ausgabe "Du hast deinen Bonuspoint bereits erhalten" bekommen.

Wenn er nicht drinne steht, hat er den Bonus noch nicht erhalten. Es gibt zwei Möglichkeiten. Wenn er nun die bestimmte Aktivität erreicht hat, soll "Du bekommst noch einen Bonuspoint!" ausgegeben werden. Wenn er die Aktivität nicht erreicht hat, soll ""Tut mir Leid! Du hast noch nicht genug AP gesammelt." erscheinen.

Komischerweise wird ausgegeben "Du hast deinen Bonuspoint bereits erhalten!", obwohl meine ID nicht in der zweiten Tabelle steht. Das sollte aber die Bedingung sein.

Irgendwie scheint was schief gegangen zu sein, als ich die Tabellen abfragen wollte. Hab das im Internet so gefunden, wurde auch kein Fehler ausgegeben. :(
 
Zuletzt bearbeitet:
Check das mal, was er da ausgibt:

PHP:
$count=count($row);
for($i=0;$i<$count;$i++){
echo $row[$i].'< /br>';
}
 
Zuletzt bearbeitet:
Hallo,
wo soll ich das genau eingeben? :)

Hab den Fehler wohl schon... die Variablen wurden nicht übernommen, weil ich die Schleife geschlossen hatte. Ich probiers jetzt nochmal aus. :)

Edit: Jetzt kommt nichts mehr... muss die Schleife wohl da schließen und das mit Arrays machen, oder nicht? Ich hab noch nie mit Arrays gearbeitet, soll aber wohl damit klappen. Ich probier nochmal rum :ugly:

Edit2: Hab jetzt fast alles gelöst. Die Gutschrift erfolgt nun automatisch und die anderen Bedingungen werden so erfüllt, die Variablen richtig übergeben, abeeeeer...

Code:
[B]if($exportid == $bpsid)[/B]
funktioniert nicht. Der gibt mir zurück, dass die beiden Werte ungleich sindund springt somit zum "else". Hab nun mal mit echo mir die Werte ausgeben lassen und der gibt mir bei echo $bpsid kein Wert zurück, bei $exportid der richtige Wert, meine ID.

So hab ich $bpsid ermittelt. Die Tabelle dasbaum_bpsbonus hat nur eine Spalte: bpsid.

Code:
$result2 = mysql_query("SELECT * FROM dasbaum_bpsbonus")
or die(mysql_error());


$row2 = mysql_fetch_row($result2);

$bpsid = $row2[0];

Ich vermute, es liegt am mysql_fetch_row. Das ist ja nur für einen Datensatz. Mit den anderen hab ich das nicht hinbekommen. :(

Hab array für genommen. Nun klappt alles.... puuh. :)
 
Zuletzt bearbeitet:
Also ganz elegant waere es den Check direkt auf der DB zu machen:

Code:
SELECT * FROM tab1, tab2 WHERE exportid = bpsid AND bpsid = '$bpsid';
Damit bekommst du nur eine row zurueck wenn der user in beide tabellen eingetragen ist.