tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Yaslaw
  • 1 Beitrag von Yaslaw
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
361
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Xiaodeguo Xiaodeguo ist offline Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    10
    Hallo

    an dieser Stelle nochmal ein dickes Dankeschön an alle die mir bisher sehr geholfen haben.
    Leider ist nun wieder ein Fehler / Problem aufgetaucht an dem ich nicht weiterkomme.

    Wie vieleicht schon bekannt arbeite ich an einem Fussballtipp Spiel,
    bei dem folgenden Script soll das Ergebniss eigentlich eine Tabelle sein die folgende Informationen enthält:
    Partien des gewählten Spieltages, Ergebnis der Partien und Tipps aller Spieler zu den Partien.

    So weit geht es auch, nur zeigt er mir leider nur die erste Partie an, mit den gewünschten Zusatzinformationen.

    Wäre schön wenn mir jemand den Fehler zeigen könnte, oder mir einen Tipp zur Fehlerfindung benennt.

    PHP-Code:
    <table style="font-size: smaller;"><tr><td width="150">Partie</td><td width="80">Ergebnis</td>
    <?php
    include ('config.php');
    error_reporting(E_ALL);    
    $db_link = @mysql_connect($dbhost$dbusername$dbpasswort);  
    mysql_select_db($dbname); 

    $sql "SELECT
                *
            FROM
                "
    .$tabpartien." AS partien,
                "
    .$tabtipps." AS tipps
            WHERE
                partien.spieltag = '12'
                AND
                tipps.spieltag = '12'
                AND
                partien.ID_partien = tipps.ID_partien
            GROUP by
                tipps.k_spieler
            ORDER by
                tipps.ID_tipp DESC"
    ;


                
    /**
                 * ALLE AKTUELLEN SPIELER AUFLISTEN
                 */
                
    $result mysql_query($sql);
                while (
    $spiel mysql_fetch_object($result)){
        
                echo 
    "<td width='80'>".$spiel->k_spieler."'s Tipp</td>";
                
                }
                    echo 
    "</tr>";
                    
    /**
                     * SPIEL PLUS ERGEBNIS AUSLESEN
                     */
                    
    $result mysql_query($sql);
                    while (
    $spiel mysql_fetch_object($result)){
            
                    echo 
    "<tr><td>".$spiel->HT." / <br/>".$spiel->GT."</td><td>".$spiel->t_HT.":".$spiel->t_GT."</td>";
                    
                            
    /**
                             *  DIE TIPPS ZUM SPIEL AUSGEBEN
                             */
                            
                            
    $result mysql_query($sql);
                            while (
    $spiel mysql_fetch_object($result)){
            
                            echo 
    "<td>".$spiel->tore_HT.":".$spiel->tore_GT."</td>";
                            }}

            
    $result mysql_query($sql) OR              
    die(
    "Query: <pre>".$sql."</pre>\n".                  
    "Fehler: ".mysql_error());
    ?>
    </tr></table>
    Herzlichen Dank
     
    Mit freundlichem Gruß
    Xiaodeguo

  2. #2
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    Wenn man ein MySQL-Ergebnis mehrmals durchgehen will, muß es idR resetet werden.
    Code :
    1
    
    mysql_data_seek($MySQL_Result, 0);
    http://php.net/manual/de/function.mysql-data-seek.php

    Bei Dir also das erste
    PHP-Code:
    $result mysql_query($sql); 
    lassen und in den verschachtelten Schleifen jenes durch
    PHP-Code:
    mysql_data_seek($result0); 
    ersetzen.

    An Deiner Stelle würd ich vielleicht überlegen, das Result erstmal in ein Array/Objekt zu überführen, und dann jenes Gerüst wie von Dir angedacht zu durchlaufen.

    mfg chmee
    Geändert von chmee (02.02.12 um 13:08 Uhr)
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  3. #3
    Xiaodeguo Xiaodeguo ist offline Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    10
    Danke für deine schnelle Antwort,
    ich habe die Änderungen vorgenommen. Leider bleibt das Ergebnis das selbe.

    Du schreibst ich soll die Daten erst in ein Object / Array übertragen, tue ich das nicht in jeder schleife?
    PHP-Code:
    $result mysql_query($sql);
                while (
    $spiel mysql_fetch_object($result)){ 
    Wie gesagt die Problematik ist wie gesagt das er mir nur für die erste Partie alles richtig ausgibt, dann Schleife wohl aufhört. Wenn ich nun Abfrage wieviele Reihen und Felder im Result sind, gibt er mir 3 Reihen und 19 Felder aus. Die 19 ist richtig, bei den reihen müsste es aber 27 sein.

    Kann es sein das die Problematik bei "Group by k_spieler" liegt ?
    Nehme ich das weg, gibt er mir alle Tipps raus, aber nicht unter einem Spieler sortiert sondern nebeneinander weg, siehe Anhang.

    Naja wie gesagt aktuell habe ich keine Idee, belese mich mal weiter, iwie werde ich/wir schon eine Lösung finden. Danke euch
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Fehlersuche: While schleife gibt nur ein statt neun Ergebnisse aus-bltpp-002.jpg  
     
    Mit freundlichem Gruß
    Xiaodeguo

  4. #4
    Xiaodeguo Xiaodeguo ist offline Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    10
    Hallo Leute,

    ich komme leider wirklich nicht weiter. Egal was ich mit meinen kleinen Wissen versuche,
    es geht nicht. Nun hoffe ich das mir vieleicht doch noch einer von euch helfen kann. Dafür möchte ich euch gerne folgende Informationen liefern:

    Ich greife auf zwei Tabellen zu: $tabtipps und $tabpartien

    $tabtipps: hier werden alle Tipps der Spieler zu den einzelnen Partien gespeichert.
    Wichtig für diesen Fall sind folgende Spalten:
    1. ID_partien = entspricht der Partie ID in der $tabpartien Tabelle
    2. spieltag = Anwelchem Spieltag findet die Partiestatt, wird hier gespeichert
    3. k_spieler = ist der Benutzername des Spielers der den Tipp abgegeben hat
    4. tore_HT = Die Anzahl der Tore die laut Tipp des Spielers das Heimteam schießt
    5. tore_GT = Die Anzahl der Tore die laut Tipp des Spielers das Gastteam schießt

    $tabpartien: hier werden alle Partien der einzelnen Spieltag gespeichert.
    Wichtig für diesen Fall sind folgende Spalten:
    1. ID_partien = ID der partien findet man auch in $tabtipps wieder
    2. spieltag = entspricht auch der Angabe in $tabtipps
    3. HT = Heimteam
    4. GT = Gastteam
    5. t_HT = Tore Heimteam (Ergebnis)
    6. t_GT = Tore Gastteam (Ergebnis)

    So mit all diesen Daten wünsche ich mir nun das eine Tabelle ausgegeben wird, in der folgende Daten enthalten sind:

    Spieler/Partien Spiel 1 Spiel 2 Spiel 3 Spiel 4 Spiel 5 Spiel 6 Spiel 7 Spiel 8 Spiel 9
    Spieler 1 Tipp 1 Tipp 2 Tipp 3 Tipp 4 Tipp 5 Tipp 6 Tipp 7 Tipp 8 Tipp 9
    Spieler 2 Tipp 1 Tipp 2 Tipp 3 Tipp 4 Tipp 5 Tipp 6 Tipp 7 Tipp 8 Tipp 9
    Spieler 3 Tipp 1 Tipp 2 Tipp 3 Tipp 4 Tipp 5 Tipp 6 Tipp 7 Tipp 8 Tipp 9

    Die Auswahl des entsprechenden Spieltages erfolgt über ein Formular mit Dropdownauswahl (Man mag es nicht glauben, aber das kann ich schreiben), dann wird für alle Spieler die Tipps abgegeben haben die oben gezeigte Tabelle erstellt.

    Also an dieser Stelle nochmal die ganz große Bitte um Hilfe.
    Danke.
     
    Mit freundlichem Gruß
    Xiaodeguo

  5. #5
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    item: Sind $tabtipps und $tabpartien Arrays? Oder sind da Tabellen in einer MySQL-DB?

    item: Geh ich richtig, dass pro Spieltag 9 Einträge in $tabparteien enthalten sind? (Spiel 1 bis Spiel 9)
    Xiaodeguo bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  6. #6
    Xiaodeguo Xiaodeguo ist offline Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    10
    Danke Yaslaw für deine Antwort.

    $tabtipps und $tabpartien sind Tabellen in der MySQL Datenbank und
    ja das ist richtig, pro Spieltag sind 9 Begegnungen in der $tabpartien eingetragen.
     
    Mit freundlichem Gruß
    Xiaodeguo

  7. #7
    Avatar von Yaslaw
    Yaslaw Yaslaw ist gerade online n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Relativ einfach. Du brauchst nur tabtipps.
    Filtern -> auslesen -> in eine sinnvolle Arraystruktur bringen -> und ausgeben

    PHP-Code:
    $spieltag 1;

    //Aslsesen
    $sql "SELECT * FROM tabtipps WHERE spieltag = {$spieltag}";
    $result mysql_query($sql);
    while(
    $tipp mysql_fetch_assoc($result)){
        
    $tipps[$tipp['k_spieler']][$tipp['ID_partien']] = "{$tipp['tore_HT']}/{$tipp['tore_GT']}";
    }

    //und ausgeben
    echo '<table>';
    foreach(
    $tipps as $spieler => $spielerTipps){
        echo 
    '<tr>';
        echo 
    "<td>{$spieler}</td>";
        foreach(
    $spielerTipps as $partie => $tore){
            echo 
    "<td>{$tore}</td>";
        }
        echo 
    '</tr>';
    }
    echo 
    '</table>'
    Xiaodeguo bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  8. #8
    Xiaodeguo Xiaodeguo ist offline Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    10
    Hallo Yaslaw,

    wie kann ich dir danken? War ja nicht das erste Mal das du mir aus der Patsche geholfen hast.
    Klappt wunderbar (mit einigen Anpassungen).

    Frage: Kannst du mir irgendwelche guten Lektüren empfehlen, das ich dich in Zukunft nicht immer beschäftigen muss?
     
    Mit freundlichem Gruß
    Xiaodeguo

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 18.10.10, 14:32
  2. Antworten: 2
    Letzter Beitrag: 15.04.10, 15:19
  3. foreach Schleife Fehlersuche
    Von rollerueckwaerts im Forum PHP
    Antworten: 2
    Letzter Beitrag: 07.11.08, 00:16
  4. Antworten: 5
    Letzter Beitrag: 05.04.06, 14:22
  5. Antworten: 2
    Letzter Beitrag: 22.07.05, 12:56