Antworten
http://de.php.net/manual/de/ref.array.php
http://de.php.net/manual/de/control-structures.for.php ff
Da steht doch alles.
Du musst schon ein konkretes beispiel bringen und nicht "ich will ein array füllen".
Was meinst du mit "aus einer Abfrage füllen".
2.
Hi,
das konkrete Beispiel kann ich Dir gerne liefern, es könnte nur etwas wirr werden...
Ich hab ein Bundesliga-Tippspiel. Soviel vielleicht vorweg.
Also:
es gibt die Tabelle "spieltage". Ich führe im ersten Schritt die Abfrage aus "Zeige mir alle Spiele aus der aktuellen Saison, zu denen ein Ergebnis vorliegt". Dann kommt ein "solange es Spiele gibt, mach was!" (while-Schleife).
in dieser While-Schleife gucke ich, wieviele Tippspieler es gibt, wieder über eine While-Schleife.
Solange es Tippspieler gibt, gucke für das Spiel x und Tippspieler y in der Tabelle "tipps" nach, ob ein Tipp abgegeben wurde.
Wenn ein Tipp abgegeben wurde, wird dieser mit dem Ergebnis der Partie verglichen.
->Wenn Ergebnis=Tipp, dann 3 Punkte / Wenn richtige Tendenz, dann 1 Punkt / Sonst 0 Punkte.
So ungefähr sollte mein Array dann aufgebaut sein:
ID_Tippspieler; Anzahl Tipps; Anzahl richtige Tendenzen; Anzahl Volltreffer; Punkte
Bei jedem Schleifendurchlauf müssen dann halt die Werte ab "Anzahl Tipps" aktualisiert werden.
Am Ende müsste das Array dann wissen welcher Tippspieler wieviele Tipps abgegeben hat und wieviele Punkte dabei geholt wurden.
Jetzt soll das Array absteigend nach den Punkten sortiert werden und im letzten Schritt möchte ich das Array gerne um das Feld "Platzierung" ergänzen, was nicht einfach so durchnummeriert werden kann, weil sich ja auch mehrere Tippspieler einen Platz teilen können, wenn sie die gleiche Anzahl an Punkten haben.
So, ob dieses "Beispiel" was bringt?
Gruß,
Dennis
3.
Zitat:
D3nnis postete
So, ob dieses "Beispiel" was bringt?
Denke schon. Das kannst du auch gleich alles mit MySQL machen (oder nutzt du imernoch M$).
4.
Hi,
Grundlage ist ja auch MySQL. Aber ich kann mir nicht alles von einer Abfrage berechnen lassen und die Vergabe des Platzes stelle ich mir als SQL-Satement auch schwierig vor.
In MS Access habe ich die Tabellen per ODBC verknüpft und mache eine Abfrage mit einer anderen Abfrage.
Das Ergebnis kopiere ich in eine Hilfstabelle und vergebe dann noch manuell die Plätze.
Was mir für den Anfang wahrscheinlich reichen würde, sind einfache Beispiele von folgenden Dingen:
-Erstellung eines mehrdimensionalen Arrays und Befüllung über eine Schleife
-Sortierung des Arrays
-Erweiterung des Arrays um weitere Felder
Ich verstehe aber die Beispiele nicht, und auch mit dem PHP Manual komme ich in diesem Fall so gar nicht zurecht.
Bin ich vielleicht einfach nur zu blöd dafür?
Gruß,
Dennis
5.
natürlich läßt sich das mit mySQL lösen einfach die augabe mit "ORDER by punkte ASC " z.B. so hat man doch gleich alle Spieler nach punkten sortiert bei der ausgabe dan ne einfache abfrage ob die punkte gleich den punkten des zuletzt ausgegebenen und dan entweder platz + 1 oder der platz bleibt gleich
und mit tabellen für die Spieler die Spieltage und die Begegnugen würde sich das wohl schon alles lösen lassen ohne da riesige arrays zu nutzen die man später eh wieder irgend wo speichern müßte
6.
Zitat:
D3nnis postete
Ich verstehe aber die Beispiele nicht, und auch mit dem PHP Manual komme ich in diesem Fall so gar nicht zurecht.
Bin ich vielleicht einfach nur zu blöd dafür?
Scheint so ;)
Ist doch im Manual prima erklärt.. man muss es nur lesen.
http://de3.php.net/manual/de/language.types.array.php
Ich halte deine Lösung jedoch für nicht besonders gut.
7.
Hi,
na ja, ganz so leicht ist es nicht...
Tabelle Spieltage:
ID, Saison_ID, Spieltag, Datum, ID_Heimteam, ID-Gastteam, Ergebnis1, Ergebnis2
(Ergebnis1=Tore Heimmannschaft, Ergebnis2=Tore Gastmannschaft).
Tabelle tipps:
ID,Spieltage_ID,User_ID, Tipp1, Tipp2
So, da gibt es jetzt so einige Unterscheidungen:
1. (Tipp1==Ergebnis1) && (Tipp2==Ergebnis2)
-> 3 Punkte
$volltreffer++;
2. ((Ergebnis1-Ergebnis2)<0) && ((Tipp1-Tipp2)<0)
-> 1 Punkt
$tendenz++;
3. ((Ergebnis1-Ergebnis2)=0) && ((Tipp1-Tipp2)=0)
-> 1 Punkt
$tendenz++;
4. ((Ergebnis1-Ergebnis2)>0) && ((Tipp1-Tipp2)>0)
-> 1 Punkt
$tendenz++;
Und vorneweg noch:
Wenn (Ergebnis1!="") && (Ergebnis2!="") -> $anzahl_tipps++;
Ich hatte das anfangs mal über eine riesige Abfrage versucht, bin aber daran gescheitert.
Und jetzt würde ich auch gerne mal diese verfluchten mehrdimensionalen Arrays verstehen...
Gruß,
Dennis
8.
Zitat:
con postete
Ich halte deine Lösung jedoch für nicht besonders gut.
Was meinst Du genau?
Ich bin für jeden Tipp dankbar.
Meine PHP-Scripte hat noch nie jemand zu Gesicht bekommen.
Hab mir das halt selber beigebracht (wie wahrscheinlich alle hier), nur kenne ich leider auch niemanden, der PHP kann oder mein Tun beurteilen könnte.
Hauptsache es funktioniert :-)
Meine "Arbeit" diesbezüglich wurde noch nie bewertet ...
Gruß,
Dennis
9.
ich denk er meint die lösung mit nem array
aber wenn du es unbedingt so haben willst hier is noch ne recht gute erklärung von arrays
http://tut.php-q.net/array.htmlich würds trotzdem mit Tabellen lösen was bedeutend einfacher sein dürfte wenn man das vorher richtig plant und weiss was man brauch
10.
@Sintec1: Genau das meine ich.
11.
Der Link ist perfekt!
Vielen Dank!
Trotzdem würde ich gerne noch wissen, was ich verbessern könnte...
Raus mit der Sprache @con & Sintec1 ;-)
Gruß,
Dennis
12.
So, ich wage mich jetzt so langsam an den "Feind" heran...
Ist dieser Ansatz schon falsch?
Code: In Zwischenablage kopieren (nur IE)
Wie kann ich jetzt $meinarray z.B. nach $a sortieren lassen?
Und wie kann ich im nächsten Schritt $meinarray um $d ergänzen?
Danke & Gruß,
Dennis
13.
Hallo,
ich bin jetzt glaub ich einen Schritt weiter, habe aber ein Problem.
Hier mal ein Codeschnipsel:
Code: In Zwischenablage kopieren (nur IE)
Das Array hat 14 Datensätze.
Warum klappt das erste push_array, aber das hier: "array_push($rang_array[$j],$platzlast);" dann nicht mehr?
Fehlermeldung:
Warning: array_push() [function.array-push]: First argument should be an array in /WWWROOT/...bla
Gruß,
Dennis
14.
Steht doch da: $rang_array[$j] ist kein Array, sollte aber eins sein.
15.
Jou con, dass Du keine Hilfe bist hast Du ja gestern schon bewiesen.
16.
Das du nicht lesen kannst auch :)