Zuviel Ausgabe bei join zweier Tabellen

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

  • Zuviel Ausgabe bei join zweier Tabellen

    Hallo! Ich habe folgendes Problem:

    Ich habe zwei Tabellen:

    Kurse

    KursID Name Farbe
    1 Tai Chi #FFFFFF
    2 Fatburner #FFCCBB
    3 Yoga #CCFFAA
    4 Stepaerobic #AAFFCC
    5 Rückengymnastik #BBCCFF

    und die zweite

    Montag

    ID KursID Studio FeldNummer Anfangszeit Endzeit
    1 1 1 1 10:00:00 12:00:00
    2 3 1 2 12:30:00 14:30:00
    3 5 1 3 15:00:00 17:00:00
    4 4 2 9 10:00:00 12:00:00
    5 2 2 10 12:30:00 14:30:00


    Jetzt will ich alle Kurse, die am Montag stattfinden ausgeben und zwar mit dem Name des Kurses, der Farbe (jeder Kurs hat seine eigene Farbe) und der Anfangs- und Enzeit der Kurse und jeden Attribut in den Zweidimensionalen Array packen, d. h.:

    Array[0][1]= Name des ersten Kurses
    Array[0][2]= Farbe ersten Kurses
    Array[0][3]= Anfangszeit des ersten Kurses
    Array[0][4]= Endzeit des ersten Kurses

    usw für jeden Kurs

    (Array[1][1]= Name des zweiten Kurses
    Array[1][2]= Farbe zweiten Kurses
    Array[1][3]= Anfangszeit des zweiten Kurses
    Array[1][4]= Endzeit des zweitenKurses)

    Dazu habe ich ein Script erstellt, das das machen solllte:


    PHP-Code:
    <?php
    include("connect.inc.phtml");

    $query="Select Name,Farbe,Anfangszeit,Endzeit 
                   from Kurse natural join Montag 
                  where Kurse.KursID = Montag.KursID"
    ;
    $result mysql_query($query);
    $i=1;

    while (
    $row mysql_fetch_array($result))
    {
      
    //echo "count(row): ".count($row);
      
    for($j=0;$j sizeof($row);$j++)
      {
        
    $studio_array[$i][$j+1]=$row[$j];
      }
      
    $i++;
    }
    echo 
    "<pre>";
    print_r($studio_array);
    ?>
    Und der gibt anstatt von 5 Kursen Array[0][1]....[4] für jeden Attribut

    Array[0][1]....[8] d. h. 4 Felder zuviel wobei die letzten vier leer sind

    das sieht dann so aus:

    Array
    (
    [1] => Array
    (
    [1] => Tai Chi
    [2] => #FFFFFF
    [3] => 10:00:00
    [4] => 12:00:00
    [5] =>
    [6] =>
    [7] =>
    [8] =>
    )

    [2] => Array
    (
    [1] => Yoga
    [2] => #CCFFAA
    [3] => 12:30:00
    [4] => 14:30:00
    [5] =>
    [6] =>
    [7] =>
    [8] =>
    )

    [3] => Array
    (
    [1] => Rückengymnastik
    [2] => #BBCCFF
    [3] => 15:00:00
    [4] => 17:00:00
    [5] =>
    [6] =>
    [7] =>
    [8] =>
    )

    [4] => Array
    (
    [1] => Stepaerobic
    [2] => #AAFFCC
    [3] => 10:00:00
    [4] => 12:00:00
    [5] =>
    [6] =>
    [7] =>
    [8] =>
    )

    [5] => Array
    (
    [1] => Fatburner
    [2] => #FFCCBB
    [3] => 12:30:00
    [4] => 14:30:00
    [5] =>
    [6] =>
    [7] =>
    [8] =>
    )

    )

    An der Abfrage kann es nicht liegen denn ich habe die in phpmyadmin ausprobiert und da hat es ohne Probleme funktioniert, mit PHP aber nicht und ich weis nicht voran es liegt.

    count($row) hat einfach den wert 8 anstatt 4 wie es sein sollte (meiner meinung nach), weil es sind ja nur vier Attribute pro Ergebnisstupel. Kann mir jemand sagen woran es liegen könnte oder was jemand die lösung für mein problem

    Wenn ihr noch weitere Fragen habt, dann nur zu! Ich beantworte sie gerne, denn ich weiss nicht weiter. (Vielleicht bin ich nur zu doof! )

    Danke allen im Voraus und CU l8er!

    Johnny79

  • #2
    Re: Zuviel Ausgabe bei join zweier Tabellen

    An der Abfrage kann es nicht liegen denn ich habe die in phpmyadmin ausprobiert und da hat es ohne Probleme funktioniert, mit PHP aber nicht und ich weis nicht voran es liegt.
    tja, ich sag trotzdem mal, daß es an der abfrage liegt ...
    waru benutzt du beim join nicht on? oder using, in dem fall
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Das habe ich schon ausprobiert, hat auch nicht funktioniert.

      Kommentar


      • #4
        mach statt mysql_fetch_array ein mysql_fetch_row, dann gehts.
        Warum? Darum

        Kommentar


        • #5
          da du hier nur über den Index die Daten holtst, gib mal MYSQL_NUM als 2. Parameter für mysql_fetch_array an, dann sollte funz.

          Kommentar


          • #6
            @oppi: habe ausprobiert mit dem mysql_fetch_row und es hat gefunzt. vielen dank!

            Kommentar


            • #7
              Schon mal überlegt den spaltennamen im Select nen Tabellen-Namen zu verpassen, damit Mysql auch weiß, woher der Wert kommen soll?

              BTW: Was ist "Montag" für ein Tabellenname???

              Kommentar

              Lädt...
              X