WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » do-while schleife stürzt bei vielen durchläufen ab » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von Ori
Du kannst Arrays sortieren, bevor du sie in die Datenbank donnerst. Außerdem legst du einfach einen UNIQUE-Index über alle Spalten mit den Zahlen an.

Im Beispiel mit vier Spalten:
1: 
2: 
3: 
4:
$lottozahlen = array(6, 42, 1, 12); // oder wo auch immer die herkommen
$lottozahlen = sort($lottozahlen);

$sql = 'INSERT INTO ziehungen (eins, zwei, drei, vier) VALUES (' . implode(', ', $lottozahlen) . ')';


Wichtig für das Sortieren ist, dass es tatsächlich Zahlen sind (sonst SORT_NUMERIC als zweiten Parameter übergeben). In das Datenbank müssen die Einträge natürlich sortiert sein, damit der UNIQUE-Index verhindert, dass eine neue Zeile eingefügt wird. Wenn du viele einfügen willst, benutz Prepared Statements.


Nachtrag: Achja, meine Datenbanktabelle ist nicht richtig sauber; eigentlich muss es eine zweispaltige Tabelle sein. Und eine einspaltige:
- ziehungen (ziehungsid) ziehungsid PRIMARY KEY
- ziehungen_lottozahlen (ziehungsid, lottozahl) UNIQUE über beide Spalten, ziehungsid FOREIGN KEY

Jede gespeicherte Ziehung erhält einen Eintrag in der Tabelle ziehungen und sechs Stück in der Tabelle ziehungen_lottozahlen. Aber dann verrät einem der Index nicht mehr direkt beim Einfügen, ob es diese Kombination schon gibt. (Jaja, das Abfragen geht relativ fix; es ist nur für Anfänger nicht leistbar.) Dass es so sein sollte, nennt sich übrigens Normalisierung. Fragt Wikipedia.
von Marly007
Ne, also in geschachtelten Schleifen führt man keine SQL-Skirpte aus.
Guck dir mal Dinge wie INSERT DELAYED an oder baue dir deinen Query-String in der Schleife und setze später einen Query ab in dem du alles auf einmal einfügst.
Aber doch nicht so viele Inserts in einer Schleifer oO
von boribori
Hallo zusammen, ich bin auf dem Code auch aufmerksam geworden, ich sitze gerade auch auf ein Tool dass die Lottozahlen auswerten soll und habe folgendes Problem.
Ich habe ein Query das in dem Suchfeld angegeben wird, z.B. ein String von (lottovergleich.com)Lottozahlen , dann werden diese per PHP als Array Elemente gespeichert, dann muss ich das ganze in MYSQL checken, hier kommt das Problem. Die Reihenfolge ist nicht immer ideal, beduetet z.B. bei den Lottozahlen 1 2 4 5 6 7 8, und die Gewinnzahlen 3 1 4 5 6 8 , ich habe 3 richtige, muss aber jede Spalte mit jede andere Spalte vergleichen und die reihenfolge ist völlig beliebig..hat jemand irgendeine Idee wie ich das lösen kann???
von languitar
Hm naja, nur für solche Sachen hättest du auch direkt in der DB arbeiten können ;)
von damilchmann
wurde doch alles schon geklärt das skript funzt in der letzten variante. bewirken sollte es, dass alle möglichen kombinationen von 6 zahlen aus 49 möglichen in eine datenbank geschriebe werden.

lerne php gerade und hab einfach was ausprobiert, ist nur für das verständnis für mich um zu lernen, wie es zusammenhängt und das kann ich besser, wenn es etwas ist, was ich nachvollziehen kann

mehr nicht ;)

selbst wenn ich versucht hätte nen gästebuch zu programmieren, auch wenn ich es nicht wirklich brauche, hätte man die frage stellen können. wozu

Nach oben