Hallo!
Ich bin gerade dabei, hobbymäßig, etwas zu programmieren, für mich und meine Kollegen und natürlich um ein bissel fitter mit PHP zu werden
Jedenfalls wollte ich eine Seite entwerfen, die Funktion soll folgendermaßen aussehen:
Wenn man auf die Seite klickt, soll überprüft werden, ob die folgende Berechnung schoneinmal statt gefunden hat, dass erkennt das Programm anhand der Datenbank, wenn der Wert 1 (schon durchgeführt) oder eben 0 (noch nicht durchgeführt) ist.
Wenn nicht, sollen zwei zufällige Zahlen rechnet werden, von 1-6. Wenn eine der errechneten Zahlen die selbe Zahl ist wie die Userid des Seitenausführers, soll diese Zahl nocheinmal zufällig berechnet werden, bis es stimmt.
Danach soll in der Datenbank geschaut werden, ob die Zahl schon 2 Mal vorhanden ist. Wenn ja, sollen sie wieder neu berechnet werden. So, dass jede Userid 2mal in der Tabelle vorhanden ist.
Außerdem soll man nicht zweimal die gleiche Zahl errechnet bekommen.
Mein Problem ist nun, dass in der Tabelle trotzdem öfter z.B die Zahl 5 vorkommt und manchmal sogar pro User 2mal!
Ich versteh es einfach nicht! Ich habe schon viele Varianten ausprobiert, nichts funktionert. Vielleicht könnt ihr mir ja zur Lösung helfen! Danke schonmal!
Hier der Code
Ich bin gerade dabei, hobbymäßig, etwas zu programmieren, für mich und meine Kollegen und natürlich um ein bissel fitter mit PHP zu werden
Jedenfalls wollte ich eine Seite entwerfen, die Funktion soll folgendermaßen aussehen:
Wenn man auf die Seite klickt, soll überprüft werden, ob die folgende Berechnung schoneinmal statt gefunden hat, dass erkennt das Programm anhand der Datenbank, wenn der Wert 1 (schon durchgeführt) oder eben 0 (noch nicht durchgeführt) ist.
Wenn nicht, sollen zwei zufällige Zahlen rechnet werden, von 1-6. Wenn eine der errechneten Zahlen die selbe Zahl ist wie die Userid des Seitenausführers, soll diese Zahl nocheinmal zufällig berechnet werden, bis es stimmt.
Danach soll in der Datenbank geschaut werden, ob die Zahl schon 2 Mal vorhanden ist. Wenn ja, sollen sie wieder neu berechnet werden. So, dass jede Userid 2mal in der Tabelle vorhanden ist.
Außerdem soll man nicht zweimal die gleiche Zahl errechnet bekommen.
Mein Problem ist nun, dass in der Tabelle trotzdem öfter z.B die Zahl 5 vorkommt und manchmal sogar pro User 2mal!
Ich versteh es einfach nicht! Ich habe schon viele Varianten ausprobiert, nichts funktionert. Vielleicht könnt ihr mir ja zur Lösung helfen! Danke schonmal!
Hier der Code
PHP-Code:
#############################################################
## Personen, denen man an diesem Spieltag addet, errechnen ##
#############################################################
$abfrage = "SELECT * FROM users WHERE username='$username'";
$ergebnis = mysql_query($abfrage);
#eigene id in variable schreiben
while($row = mysql_fetch_object($ergebnis))
{
$eigeneid=$row->id."";
}
#Prüfen, ob die beiden zukünftig errechneten schon für diesen Spieltag berechnet wurden
$add = "SELECT * FROM ranking_spieltag WHERE name='$username' ORDER BY datum DESC LIMIT 1";
$addtruefalse = mysql_query($add);
while($row = mysql_fetch_object($addtruefalse))
{
$trueorfalse=$row->addtruefalse."";
}
if ($trueorfalse==0)
{
$zufall1 = mt_rand(1,6);
$zufall2 = mt_rand(1,6);
#######################################################################
####Wenn Wert mehr als zweimal in Tabelle vorhanden -> neu berechnen###
#######################################################################
$s1 = "SELECT COUNT(setzten) AS anzahl FROM ranking_spieltag WHERE setzten = '$zufall1' ORDER BY datum DESC LIMIT 6";
$erg1 = mysql_query($s1);
while($var1 = mysql_fetch_object($erg1))
{
$anzahlzufall1=$var1->anzahl."";
}
$s2 = "SELECT COUNT(bestaetigen) AS anzahl FROM ranking_spieltag WHERE bestaetigen = '$zufall2' ORDER BY datum DESC LIMIT 6";
$erg2 = mysql_query($s1);
while($var2 = mysql_fetch_object($erg2))
{
$anzahlzufall2=$var2->anzahl."";
}
$s3 = "SELECT COUNT(setzten) AS anzahl FROM ranking_spieltag WHERE setzten = '$zufall2' ORDER BY datum DESC LIMIT 6";
$erg3 = mysql_query($s3);
while($var3 = mysql_fetch_object($erg3))
{
$anzahlzufall3=$var3->anzahl."";
}
$s4 = "SELECT COUNT(bestaetigen) AS anzahl FROM ranking_spieltag WHERE bestaetigen = '$zufall1' ORDER BY datum DESC LIMIT 6";
$erg4 = mysql_query($s4);
while($var4 = mysql_fetch_object($erg4))
{
$anzahlzufall4=$var4->anzahl."";
}
$anzahlgesamt1=$anzahlzufall1+$anzahlzufall4;
$anzahlgesamt2=$anzahlzufall2+$anzahlzufall3;
#ÜBERPRÜFUNG ob in Tabelle der Wert schon zweimal vorkommt
while($anzahlgesamt1 >= 2 OR $anzahlgesamt2 >= 2 OR $zufall1==$eigeneid OR $zufall2==$eigeneid OR $zufall2==$zufall1)
{
$zufall1 = mt_rand(1,6);
$zufall2 = mt_rand(1,6);
$s1 = "SELECT COUNT(setzten) AS anzahl FROM ranking_spieltag WHERE setzten = '$zufall1' ORDER BY datum DESC LIMIT 6";
$erg1 = mysql_query($s1);
while($var1 = mysql_fetch_object($erg1))
{
$anzahlzufall1=$var1->anzahl."";
}
$s2 = "SELECT COUNT(bestaetigen) AS anzahl FROM ranking_spieltag WHERE bestaetigen = '$zufall2' ORDER BY datum DESC LIMIT 6";
$erg2 = mysql_query($s1);
while($var2 = mysql_fetch_object($erg2))
{
$anzahlzufall2=$var2->anzahl."";
}
$s3 = "SELECT COUNT(setzten) AS anzahl FROM ranking_spieltag WHERE setzten = '$zufall2' ORDER BY datum DESC LIMIT 6";
$erg3 = mysql_query($s3);
while($var3 = mysql_fetch_object($erg3))
{
$anzahlzufall3=$var3->anzahl."";
}
$s4 = "SELECT COUNT(bestaetigen) AS anzahl FROM ranking_spieltag WHERE bestaetigen = '$zufall1' ORDER BY datum DESC LIMIT 6";
$erg4 = mysql_query($s4);
while($var4 = mysql_fetch_object($erg4))
{
$anzahlzufall4=$var4->anzahl."";
}
$anzahlgesamt1=$anzahlzufall1+$anzahlzufall4;
$anzahlgesamt2=$anzahlzufall2+$anzahlzufall3;
}
echo "<br><br>Zufall 1 setzten: $anzahlzufall1<br>";
echo "Zufall 1 bestaetigen: $anzahlzufall2<br>";
echo "Zufall 2 setzten: $anzahlzufall3<br>";
echo "Zufall 2 bestaetigen: $anzahlzufall4<br>";
echo "Zufall 1 Gesamt: $anzahlgesamt1<br>";
echo "Zufall 2 Gesamt: $anzahlgesamt2<br>";
####################################
###################################
$sq = "UPDATE ranking_spieltag SET addtruefalse='1' WHERE name='$username' ORDER by datum DESC LIMIT 1";
$ergebni = mysql_query($sq);
$sql = "UPDATE ranking_spieltag SET setzten='$zufall1' WHERE name='$username' ORDER by datum DESC LIMIT 1";
$ergebnis = mysql_query($sql);
$sql2 = "UPDATE ranking_spieltag SET bestaetigen='$zufall2' WHERE name='$username' ORDER by datum DESC LIMIT 1";
$ergebnis2 = mysql_query($sql2);
Kommentar