2 tabellen auslesen

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

  • 2 tabellen auslesen

    Hallo, ich habe folgendes Problem. Ich möchte bilder auslesen lassen, die in zwei tabellen sind. in dem einem ist das profil foto und in der anderen galeriebilder. ich habe mir auch schon einige threads durchgelesen und habe es auch mal mit dem join versucht. leider wollte es nicht klappen. ich habe mir auch das beispiel, welches in dem einem beitrag stand angeschaut und ausprobiert.
    ich hoffe mir kann jemand behilflich sein.
    PHP-Code:
    # $sitetable22 soll mit eingefügt werden und die where klauseln sind identisch
    $query2="SELECT * FROM $sitetable WHERE name !='$id_name' and datum2='1' and geschlecht='m' 
    and bild !='' and bild !='
    $keins' ORDER BY RAND() DESC LIMIT 0,1";
    $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
    while(
    $date=mysql_fetch_array($result2))
    ... 
    selfmade-webdesign
    webdesign leipzig

  • #2
    operatoren groß schreiben

    hallo vielleicht liegt es daran, dass Du die Operatorien AND nicht groß schreibst. (aber genau weiss ich es nicht)

    Kommentar


    • #3
      1. Falsches forum. Ist ein SQL Problem. Hier reicht auch die Query. PHP-Code spielt keine Rolle.

      2. Am AND liegts nicht.

      3. Wie sehen denn die Tabellen aus?

      4. Wie sieht denn dein gewünschtes Ergebnis (der Query) aus?

      Kommentar


      • #4
        ich hatte es mal so versucht
        PHP-Code:
        $query2="SELECT * FROM $sitetable , $sitetable22 WHERE name !='$id_name' and datum2='1' and geschlecht='m' 
        and bild !='' and bild !='
        $keins' ORDER BY RAND() DESC LIMIT 0,1";
        $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
        while(
        $date=mysql_fetch_array($result2))
        ... 
        doch dann gibt er mir die where klauseln zu vieldeutig sind. (ambigious oder so ähnlich geschrieben)

        die db-struktur kommt gleich, doch wie gesagt, das was in der where-klausel steht ist identisch in beiden tabellen. in der ersten stehen halt noch in paar einträge mehr, aber wie gesagt, die db-felder die in der where klausel abgefragt sind identisch <-- gleiche bezeichnung
        selfmade-webdesign
        webdesign leipzig

        Kommentar


        • #5
          wie sehen die Tabellen aus?
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            schön, wieder jemand der möglichst minimal auf gestellte fragen eingeht.

            warum postest du bei einem SQL-Problem die ganze zeit PHP-Code? Der erschwert das ganze doch nur. Die sql Query und Antworten auf die o.g. Fragen reichen vollkommen.

            Kommentar


            • #7
              $sitetable22

              siteid int(10) Nein auto_increment
              name varchar(255) Nein
              userid varchar(255) Nein
              datum varchar(255) Nein
              datum2 varchar(255) Nein
              bild varchar(255) Nein
              bewert varchar(255) Nein
              bewertzahl varchar(255) Nein
              bewertdurch varchar(255) Nein
              geschlecht varchar(255)

              $sitetable
              siteid int(10) Nein auto_increment
              name varchar(255) Nein
              alter2 varchar(255) Nein
              grosse varchar(255) Nein
              gewicht varchar(255) Nein
              geschlecht varchar(255) Nein
              mail varchar(255) Nein
              passwort varchar(255) Nein
              rubrik varchar(255) Nein
              land varchar(255) Nein
              kurztext varchar(255) Nein
              sternz varchar(255) Nein
              sternztext varchar(255) Nein
              vorlieben longtext Nein
              abneigung longtext Nein
              musik varchar(255) Nein
              text longtext Nein
              bild varchar(255) Nein
              datum varchar(255) Nein
              plz varchar(255) Nein
              plz22 varchar(255) Nein
              code varchar(255) Nein
              online varchar(255) Nein
              termteim int(10) UNSIGNED Nein 0
              bewalter varchar(255) Nein
              bewalterzahl varchar(255) Nein
              bewert varchar(255) Nein
              bewertzahl varchar(255) Nein
              bewertdurch varchar(255) Nein
              besucher varchar(255) Nein
              letzterbesucher varchar(255) Nein
              letzterzahl varchar(255) Nein
              benachmail varchar(255) Nein
              abmelden varchar(255) Nein
              letzterlogin varchar(255) Nein
              letzterlogin1 datetime Nein 0000-00-00 00:00:00
              lastaktion datetime Nein 0000-00-00 00:00:00
              kinderwunschzahl varchar(255) Nein
              kinderwunsch varchar(255) Nein
              kinderzahl varchar(255) Nein
              kinder varchar(255) Nein
              bundesland varchar(255) Nein
              augenfarbe varchar(255) Nein
              haarfarbe varchar(255) Nein
              vegetarier varchar(255) Nein
              alkohol varchar(255) Nein
              rauchen varchar(255) Nein
              religion varchar(255) Nein
              statur varchar(255) Nein
              intention varchar(255) Nein
              freunde varchar(255) Nein
              bildsehen varchar(255) Nein
              anderncode varchar(255) Nein
              tag varchar(255) Nein
              monat varchar(255) Nein
              jahr varchar(255) Nein
              echtname varchar(255) Nein
              strasse varchar(255) Nein
              ort varchar(255) Nein
              ipnummer varchar(255) Nein
              datum2 varchar(255) Nein

              das wäre alles was in beiden drin steht
              selfmade-webdesign
              webdesign leipzig

              Kommentar


              • #8
                sag bescheid, wenn du auf die anderen punkte eingegangen bist

                Kommentar


                • #9
                  gewünschtes ergebnis

                  PHP-Code:
                  while($date=mysql_fetch_array($result2))
                  {
                  $idbewname$date[siteid];
                  $idbewname$date[userid];
                  $name$date[name];
                  $bild$date[bild];
                  $mail$date[mail];
                  $bewertdurch$date[bewertdurch];

                  $bewert$date[bewert];
                  $bewertzahl$date[bewertzahl];


                  if(
                  $date[online]=="online")
                  {
                  $codeonline2="<a href=\"index_start.php?trefferid=$idbewname&$sidname=$sidsid\" target=\"$linkziel\">
                  <img src=\"gra/online.gif\" border=\"0\"></a>"
                  ;
                  }
                  else
                  {
                  $codeonline2="";
                  }

                  echo(
                  "<font size=\"$font\" color=\"$fontcolor\" face=\"$schriftart\"></font><font size=\"$font\" 
                  color=\"
                  $fontcolor\" face=\"$schriftart\"></font>
                  <a href=\"index_start.php?trefferid=
                  $idbewname&$sidname=$sidsid&bild=$bild\" target=\"$linkziel\">
                  <center><img width=\"200\" 
                  border=\"0\" src=\"bilder_tum2.php?bild=
                  $bild\"></a>
                  <br><center><font size=\"
                  $font\" color=\"$fontcolor\"
                   face=\"
                  $schriftart\"><b>$name</b></font></a>
                  <br>
                  $codeonline2<font size=\"1\"><br><br></font>");
                  echo(
                  "</td>");
                  $codetreffercode++;

                  if(
                  $codetreffercode=="4")
                  {
                  echo(
                  "</tr><tr>");
                  $codetreffercode=0;
                  }
                  }
                  mysql_free_result($result2);



                  if(
                  $codetreffercode=="0")
                  {
                  echo(
                  "<td width=\"25%\"></td>
                  <td width=\"25%\"></td>
                  <td width=\"25%\"></td>
                  <td width=\"25%\"></td>"
                  );
                  }
                  elseif(
                  $codetreffercode=="1")
                  {
                  echo(
                  "<td width=\"50%\"></td>
                  <td width=\"25%\"></td>
                  <td width=\"25%\"></td>"
                  );
                  }
                  elseif(
                  $codetreffercode=="2")
                  {
                  echo(
                  "<td width=\"25%\"></td>
                  <td width=\"25%\"></td>"
                  );
                  }
                  elseif(
                  $codetreffercode=="3")
                  {
                  echo(
                  "<td width=\"25%\"></td>");
                  }
                  echo(
                  "</tr></table>");
                  ?></td> 
                  selfmade-webdesign
                  webdesign leipzig

                  Kommentar


                  • #10
                    welche zellen deiner tabellen willst du denn überhaupt verbinden? wenn du zwei tabellen nutzt,
                    EDIT:
                    SELECT * FROM $sitetable , $sitetable22

                    musst du expliziet angeben, welches feld aus welcher tabelle kommt.
                    dadurch das in beiden tabellen "name" und z.b. auch "datum" vorkommt, musst du bei deiner selectanfrage diese felder spezifiezieren. Also
                    EDIT:
                    SELECT * FROM $sitetable , $sitetable22 WHERE $sitetable.name !='$id_name'

                    und das für alle doppelten felder, daher auch deine fehlermeldung:
                    doch dann gibt er mir die where klauseln zu vieldeutig sind. (ambigious oder so ähnlich geschrieben)
                    wo wir grade bei dem beispiel sind, nutze bitte nicht "!=", ist zwar nicht verkehrt, aber
                    EDIT:
                    WHERE not $sitetable.name='$id_name'

                    geht auch. Also nochmal ganz in ruhe nachdenken, welche zellen aus welcher tabelle wie verglichen werden sollen, die selectabfrage am besten neu schreiben und ein bisschen text, wie du die tabellen verbinden willst.
                    Also HOP, HOP!

                    Kommentar


                    • #11
                      ähm, er will die tabellen nicht verbinden, sondern aus beiden die datensätze raussuchen.

                      ist zwar nicht verkehrt, aber
                      WHERE not $sitetable.name='$id_name'
                      geht auch.
                      Was ist das bitte für eine Begründung?

                      Wieso missbrauchst du die Edit-Tags?

                      Kommentar


                      • #12
                        Wieso missbrauchst du die Edit-Tags?
                        weil ich seinen quelltext als vorlage genommen habe und ihn dann editiert.
                        Was ist das bitte für eine Begründung?
                        ich [COLOR=red]persönlich[/COLOR] finde "not" besser, da "!=" schneller zu überlesen ist und sich damit leichter fehler einschleichen können.
                        ähm, er will die tabellen nicht verbinden, sondern aus beiden die datensätze raussuchen.
                        ja aber dazu musst du die tabellen doch irgendwie "verbinden", du musst doch wissen welche datensatz von $sitetable zu welchen datensatz von $sitetable22 gehört, sonst gibst du ja sachen aus, die gar nichts miteinander zutun zu haben. die müssen doch mindestens den selben "namen", "siteID" oder so haben?!? denk ich mir zumindest.

                        Kommentar


                        • #13
                          sie sind nicht bezogen sondern unabhängig von einander.
                          $sitetable22 hat information, die nötig sind um das bild dem user dem es gehört zu zuordnen. genauso andersrum.
                          ich möchte einfach nur per zufall ein bild für ein voting ausgeben. entweder von der galerie tabelle ($sitetable22) oder von der mitglieder tabelle das profilbild ($sitetable)
                          selfmade-webdesign
                          webdesign leipzig

                          Kommentar


                          • #14
                            okay ich habs kapiert, dann bleibt immer noch das problem der sauberen select-anfrage. nach wie vor musst du genau festlegen, welches attribut aus welcher tabelle kommt.

                            Kommentar


                            • #15
                              ich habe es mal nach deinem bsp oben gemacht aber komischerweise gibt er mir nur noch die bilder aus der zweiten tabelle $sitetable22
                              aus der ersten kommt gar nichts
                              das gibt er mir per echo aus
                              PHP-Code:
                              SELECT FROM Rubriken Bilder WHERE Rubriken.name !='brauni' 
                              and Rubriken.datum2='1' and Rubriken.geschlecht='m' 
                              and Rubriken.bild !='' and Rubriken.bild !='bilder/keins.gif' 
                              and Bilder.name !='brauni' and Bilder.datum2='1' 
                              and Bilder.geschlecht='m' and Bilder.bild !='' 
                              and Bilder.bild !='bilder/keins.gif' ORDER BY RAND() DESC LIMIT 0,
                              aus tabelle rubriken kommt kein einziges bild
                              selfmade-webdesign
                              webdesign leipzig

                              Kommentar

                              Lädt...
                              X