Mehrere Tabellen

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

  • Mehrere Tabellen

    Hi

    Ich hab folgendes Problem:


    Ich habe zwei Tabellen:

    Tabelle 1:

    USERID | TIME | JOBID

    Tabelle 2:

    JOBID | SUBJECT | TYP


    Wenn ein bestimmtes Script nun aufgerufen wird sollte es aus der ersten Tabelle alle zur USERID (die es per Session bekommt) passenden Einträge (TIME & JOBID) auslesen.
    Dann sollte es zu den JOBIDs aus der anderen Tabelle SUBJECT und TYP auslesen,
    Und am Ende sollte es mittels der TIME dem SUBJECT und dem TYP ein (bzw. mehrere) Sätzchen bilden.

    Nur krieg ich das im Kopf irgendwie nicht zusammen wie ich es mir ursprünglich gedacht habe... Kann mir da jemand helfen oder sagen wie das System verinfach / verbesserbar wäre?

  • #2
    JOIN ist dein Freund

    Kommentar


    • #3
      Hi
      Hab mir das ganze jetzt mal angeshen und unten schonmal 'was probiert'



      Wie gesagt die beiden Tabellen haben die JOBID gemiensam. Und ich möchte die TIME aus der einen und TYPE, TYPE2, SUBJECT auslesen.

      Nur ist dann ncoh die Frage: Wie gebe ich es aus... (und ist es wenn ich es ausgebe richtig sortiert, d.h. wenn mehrer Zeilen aus der DB gelesen werden sind dann auch die dinge die zusammengehören (da selbe JOBID) zusammen.)


      PHP-Code:

      $sql 
      "SELECT t1.time, t2.subject, t2.type, t2.type2  FROM 
      jobs t1 INNER JOIN jobdata t2 USING(jobid)
      WHERE t1.userid = '
      $_SESSION["userid"]'";  

      $qry mysql_query($sql); 

      Funktioniert folgendes mit meinen 'Ansprüchen' und wenn ja, wie kann ich es Ausgeben bzw. Werte aus dem Resultierenden Array geordnet auslesen. ?

      mfg
      EDIT:
      line break sponsored by asp2php
      Zuletzt geändert von asp2php; 21.08.2004, 07:28.

      Kommentar


      • #4
        fragen ... immer fragen ... warum probierst du nicht einfach und stellst selbst fest, ob es klappt. . Und wenn noch Probleme auftauchen, dann kannst du wieder kommen, aber bitte mit konkrete Problemschilderung bzw. Fehlermeldung.

        Kommentar


        • #5
          Hi

          Ja ich würds ja ausprobieren.. aber ich hab eben keine Ahnung wie Ausgeben lassen.. also wie man das Array behandelt was es dann wohl geben wird... d.h. gibts noch nciht viel auszuprobieren.

          Kommentar


          • #6
            http://www.schattenbaum.net/php/anze...071a12181e1608

            Kommentar


            • #7
              Die Ausgabe an sich hab ich jetzt hingekriegt (war einfacher als ich es mir vorgestellt hatte)

              Nur ist dabei ein weiteres prob aufgetaucht:

              PHP-Code:
              <? while($row2 = mysql_fetch_object($query2))
                  {
              echo "Bis date(H:i:s, $row2->timex) am date(d.m.y, $row2->timex) wird $row2->type2 $row2->subject $row2->type1. <br>"; 
                  } ?>
              geht natürlich nicht da der PHP Code innerhalb von echo nicht geparsed wird.
              Die Frage: Ist es machbar dass der da drinn doch geparsed wird?
              Und wenn nicht, wie kann ich das Problem sonst lösen?

              Kommentar


              • #8
                PHP-Code:
                echo "Bis ".date("H:i:s"$row2->timex)." am ".date("d.m.y"$row2->timex)." wird ".$row2->type2.$row2->subject.$row2->type1."<br>"

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

                Kommentar


                • #9
                  thx!

                  Kommentar


                  • #10
                    Neue Frage:

                    PHP-Code:

                    $sql2 
                    "UPDATE base SET '$row->jobid' =  '$row->jobid'+1 WHERE userid = '$row->userid'"
                    Dies verursacht einen Fehler ("You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''4' = '4'+1 WHERE userid = '1'' at line 1 ")

                    Das ganze sollte in der Tabelle 'base' in der Spalte 4 (die heisst 4) 'eins' zum Wert hinzufügen in der Zeile die zur entsprechenden usrid gehört. (Also sollte z.B. nachher 8 in der Spalte 4 stehen wenn da vorher 7 stand)

                    Nun Frage ich mich wo der Fehler liegt: Hab ich was falsch 'geschrieben' , eine Falsche Methode zur Addition gewählt oder ist eine Addition entweder auf diese Art gar nicht möglich, oder kann man die Spaltennamen nicht als Variabeln angeben?

                    mfg

                    Kommentar


                    • #11
                      bevor du weitere Frage dieser Art postest => lerne Grundlagen von PHP, insbesondere den Umgang mit String. Ist es denn so schwer zu kombinieren, denn xManUx hat dir bereits gezeigt, wie man den String zusammenbaut.

                      Kommentar


                      • #12
                        4 ?!

                        ist das der versteckte-Kamera-Thread ?
                        Ja, ihr wollt mich nur testen, oder ?

                        Eine Spalte, die 4 heißt ?
                        Es ist wie im richtigen Leben: alles, was theoretisch möglich wäre,
                        wird auch irgendjemand einmal tun.

                        Ich kenne Spaltennamen wie zB 'vorname', da stehen Vornamen drin.
                        oder 'email', dort sind E-Mail Adressen zu finden.
                        oder Artikelnr, da stehen Artikelnummern drin
                        oder schuhgroesse oder geb_dat oder....

                        ABER WAS STEHT IN EINER SPALTE, DIE 4 HEISST ?
                        etwa eine 4? wenn nicht, was sonst, vielleicht 5?

                        oder bin ich zu altmodisch ?

                        4, das muß man sich einmal auf der Zunge zergehen lassen...

                        so könnte es gehen: (beachte die `und ' oder ´)
                        PHP-Code:
                        $sql2 "UPDATE base SET `$row->jobid`=  `$row->jobid`+1 WHERE userid = '$row->userid' "
                        los, geh' hin und ändere deine bestehenden Tabellen dahingehend,
                        einigermaßen aussagekräftige Spaltennamen zu verwenden.

                        nicht einfach durchnumerieren oder A-Z nehmen, das ist EXCEL.

                        Kommentar


                        • #13
                          erstma thx, es funktioniert

                          Und wegen dem Spaltennamen: Ich wollte den auch nicht nach ner Zahl benennen *g* Aber es hat sich so ergeben dass ich fast nicht anders konnte bzw. ich sah eine einfache Lösung für ein Problem wenn cih die Spalte so nenne.

                          Selbstverständlich haben meine anderen Spaltennamen meist normale bezeichnungen

                          Kommentar

                          Lädt...
                          X