Abfrage Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abfrage Problem

    Hi leute ich sitze schon 3 tage an den gleichen problem deshalb frage ich jetzt doch mal .

    zeige Euch mal das Skript denke geht besser zum erklären

    PHP-Code:
    <?php 
    require ("config.inc.local.php");
    $sql 
    SELECT  t1.e_id,
        t1.evorname,
        t1.enachname,
        t1.epasswort,
        t2.f_id,
        t2.fname,
        t3.k_id,
        t3.kname,
        t3.klehrer_id,
        t4.l_id,
        t4.lvorname,
        t4.lnachname,
        t4.lemail,
        t4.lpasswort,
        t5.eltern_id,
        t5.eemail,
        t5.vergehen_id,
        t5.notiz,
        t5.hausaufgaben,
        t6.schueler_id,
        t6.faecher_id,
        t6.noten,
        t6.datum,
        t7.s_id,
        t7.svorname,
        t7.snachname,
        t7.sschulen_id,
        t7.sklassen_id,
        t7.slehrer_id,
        t8.schule_Id,
        t8.schulname,
        t9.v_id,
        t9.vname    
    FROM 
        eltern AS t1,  
            faecher AS t2,
        klasse AS t3, 
        lehrer AS t4,
        mitteilung AS t5,
        noten AS t6,
        schueler AS t7,
        schule AS t8,
        vergehen AS t9    
    WHERE  
            t1.e_id = t7.s_id
    AND
        t1.e_id = t5.eltern_id
    AND
        t8.schule_Id = t7.sschulen_id
    AND
        t3.k_id = t7.sklassen_id
    AND
        t4.l_id = t7.slehrer_id
    AND
        t6.faecher_id = t2.f_id
    AND
        t9.v_id = t5.vergehen_id
    AND
        schueler_id = s_id
    GROUP BY
        schueler_id
    "
    ;
    $notensql "SELECT noten, faecher_id,s_id,schueler_id FROM noten WHERE schueler_id = s_id";
        
    $res mysql_query($sql,$notensql)or die(mysql_error()); 


    while( 
    $row mysql_fetch_assoc$res ) ) 
    {
    //print_r($row);
    if ($ename==utf8_encode($row[evorname])+utf8_encode($row[enachname]) and ($epass==utf8_encode($row[epasswort])))
    {

    $noten1 = array();
    $faecher = array();

    array_push($noten1,$row[$noten]);
    array_push($faecher,$row[$fname]);

    $enachname1 utf8_encode($row[snachname]);
    echo 
    "&nameausgabe=$enachname1";
    $evorname1 utf8_encode($row[svorname]);
    echo 
    "&vornameausgabe=$evorname1";
    $datum1 $row[datum];
    echo 
    "&datumausgabe=$datum1";
    $klasse1 utf8_encode($row[kname]);
    echo 
    "&klasseausgabe=$klasse1";
    $schule1 utf8_encode($row[schulname]);
    echo 
    "&schuleausgabe=$schule1";
    $eintrag2 utf8_encode($row[hausaufgaben]);
    echo 
    "&hausaufgabenausgabe=$eintrag2";
    $eintrag1 utf8_encode($row[notiz]);
    echo 
    "&eintragausgabe=$eintrag1";
    $vergehen1 utf8_encode($row[vname]);
    echo 
    "&vergehen=$vergehen1";
    $noten1 utf8_encode($row[noten]);
    echo 
    "&noten=$noten1";
    $faecher1 utf8_encode($row[fname]);
    echo 
    "&faecher=$faecher1",
    $ausgabe1 "ausgabe";
    echo 
    "&$faecher1$ausgabe1=$noten1";
    if (
    $faecher==2)
    echo 
    "&$faecher1$ausgabe1=$noten1";


    //print_r($row);

    }
    }
    mysql_close();
    ?>
    leider habe ich nicht viel ahnung
    er sollte eigentlich aus der tabelle faecher alle zensuren anzeigen und durchschnitt nehmen pro fach ...und er zeigt mir leider nur erste zensur an rest 0. tabelle ist aber gefüllt mit daten ....verstehe das nicht

    könntet ihr mal bitte so nett sein und mal rüber schauen ?

    danke steeli

  • #2
    Re: Abfrage Problem

    Original geschrieben von Steelman
    PHP-Code:
    $res mysql_query($sql,$notensql)or die(mysql_error()); 
    was soll das werden? willst du 2 queries gleichzeitig absenden? das geht nicht.
    Kissolino.com

    Kommentar


    • #3
      dachte geht so ...sorry

      haste mal tip, wie ich das an besten denn mache ?
      meine nur wenn du bock hast .

      steeli

      Kommentar


      • #4
        mehr als die erste query brauchst du doch nicht => mysql_query($sql) ... keine ahnung, ob die richtig ist, deshalb erstmal im phpmyadmin testen.

        wozu soll die 2. gut sein?
        Kissolino.com

        Kommentar


        • #5
          habe es schon nur mit

          $res = mysql_query($sql)or die(mysql_error());


          versucht aber gleiche probl...

          zeige dir mal was er aus gibt

          &nameausgabe=Müller&vornameausgabe=Lieschen&datumausgabe=10.11.2005&klasseausgabe=8a&schuleausgabe= Anne-Franke-Schule&hausaufgabenausgabe=Charakterisiere eine Person aus der Lektüre " Der Hauptmann von Köpenick " &eintragausgabe=Sehr geehrte Damen und Herren, liebe Eltern, hiermit lade ich Sie herzlich zum ersten Elternabend in diesem Schuljahr ein. Am ... 2005 um 19.00 Uhr in unserer Schule, Raum 111. Folgende Tagesordnung wird vorgeschlagen: - Informationen zum neuen Schuljahr - Absprache zu den Wandertagen in diesem Schuljahr - Anfragen, Probleme, Vorschläge von Eltern - Sonstiges Mit freundlichen Grüßen Herr Lehmann&vergehen=anwesend¬en=2.0&faecher=maausgabe&maausgabe=2.0&dausgabe=&chausgabe=0&phausgabe=0&e rdausgabe=0&geausgabe=0&kuausgabe=0&muausgabe=0&spausgabe=0&engausgabe=0&franzausgabe=0&bioausgabe=0 &alausgabe=0

          alles haut hin bis auf die zensuren ...da gibt er mir nur ein fach aus


          steeli
          Zuletzt geändert von Steelman; 11.11.2005, 19:00.

          Kommentar


          • #6
            Vielleicht wäre es besser JOINs zu benutzen?
            Wenn es deine MySQL-Version zulässt, könntest Subqueries anwenden.

            Ich weiß nicht, wie deine DB-Struktur ist, aber für mich wäre es logischer, wenn du nach Schüler_ID gruppieren möchtest, dass du auch primär die Schülertabelle abfragst. Also direkt nach FROM

            Anbei könntest du in der MySQL-Doku nach Aggregatfunktionen suchen, wegen deiner Durschnittsberechnung.

            Nicht, dass ich dir jetzt nen Mist erzähl und du deine Query umstellst... Aber einen anderen Weg gibt es glaube ich nicht, deswegen such mal nach der JOIN Funktion und den Aggregat-Funktionen

            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
            sondern mit den Augen das Manual zu lesen.

            Kommentar


            • #7
              ohhhh man jetzt sehe ich noch weniger durch

              dachte bin schon richtigen weg


              steeli

              Kommentar


              • #8
                ok habe es jetzt so gemacht
                problem ist nun noch, dass er 1000 mal versucht reinzuladen ....deshalb fast 2 min dauert eh die seite aufgeht .

                zeige mal neues skript nochmal

                PHP-Code:
                <?php 
                require ("config.inc.local.php");
                $sql 
                SELECT  t1.e_id,
                    t1.evorname,
                    t1.enachname,
                    t1.epasswort,
                    t2.f_id,
                    t2.fname,
                    t3.k_id,
                    t3.kname,
                    t3.klehrer_id,
                    t4.l_id,
                    t4.lvorname,
                    t4.lnachname,
                    t4.lemail,
                    t4.lpasswort,
                    t5.eltern_id,
                    t5.eemail,
                    t5.vergehen_id,
                    t5.notiz,
                    t5.hausaufgaben,
                    t6.schueler_id,
                    t6.faecher_id,
                    t6.noten,
                    t6.datum,
                    t7.s_id,
                    t7.svorname,
                    t7.snachname,
                    t7.sschulen_id,
                    t7.sklassen_id,
                    t7.slehrer_id,
                    t8.schule_Id,
                    t8.schulname,
                    t9.v_id,
                    t9.vname    
                FROM 
                    eltern AS t1,  
                        faecher AS t2,
                    klasse AS t3, 
                    lehrer AS t4,
                    mitteilung AS t5,
                    noten AS t6,
                    schueler AS t7,
                    schule AS t8,
                    vergehen AS t9    
                INNER JOIN  noten ON (t6.schueler_id = t7.s_id)
                WHERE     t1.e_id = t6.schueler_id
                AND
                    t1.e_id = t5.eltern_id
                AND
                    t7.s_id = t6.schueler_id
                AND
                    t8.schule_Id = t7.sschulen_id
                AND
                    t3.k_id = t7.sklassen_id
                AND
                    t4.l_id = t7.slehrer_id
                AND
                    t6.faecher_id = t2.f_id
                AND
                    t9.v_id = t5.vergehen_id    
                "
                ;
                    
                $res mysql_query($sql)or die(mysql_error()); 


                while( 
                $row mysql_fetch_assoc$res ) ) 
                {
                //print_r($row);
                if ($ename==utf8_encode($row[evorname])+utf8_encode($row[enachname]) and ($epass==utf8_encode($row[epasswort])))
                {


                $enachname1 utf8_encode($row[snachname]);
                echo 
                "&nameausgabe=$enachname1";
                $evorname1 utf8_encode($row[svorname]);
                echo 
                "&vornameausgabe=$evorname1";
                $datum1 $row[datum];
                echo 
                "&datumausgabe=$datum1";
                $klasse1 utf8_encode($row[kname]);
                echo 
                "&klasseausgabe=$klasse1";
                $schule1 utf8_encode($row[schulname]);
                echo 
                "&schuleausgabe=$schule1";
                $eintrag2 utf8_encode($row[hausaufgaben]);
                echo 
                "&hausaufgabenausgabe=$eintrag2";
                $eintrag1 utf8_encode($row[notiz]);
                echo 
                "&eintragausgabe=$eintrag1";
                $vergehen1 utf8_encode($row[vname]);
                echo 
                "&vergehen=$vergehen1";
                $noten1 utf8_encode($row[noten]);
                echo 
                "&noten=$noten1";
                $faecher1 utf8_encode($row[fname]);
                echo 
                "&faecher=$faecher1",
                $ausgabe1 "ausgabe";
                echo 
                "&$faecher1$ausgabe1=$noten1";


                //print_r($row);

                }
                }
                mysql_close();
                vieleicht sieht noch wer den fehler

                danke steeli

                Kommentar


                • #9
                  Deine ganze ANDs sollten auch in JOINS und in FROM nur eines drin bleiben...

                  Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                  sondern mit den Augen das Manual zu lesen.

                  Kommentar

                  Lädt...
                  X