Ausgabeproblem

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

  • Ausgabeproblem

    Hallo, ich hatte letztens das Problem daten aus 2 tabellen abzufragen und konnte es lösen. Doch jetzt gefällt mir folgendes nicht so recht.
    in einer tabelle sind bilder von mitgliedern und in der anderen andere daten, die ich benötige.
    die mitglieder sollen in einer galerie mit bild gezeigt werden doch wenn sie mehr als eins geladen haben werden sie auch dementsprechend oft angezeigt. Kann ich irgendwo ein LIMIT setzen damit das Mitglied nur einmal angezeigt wird?
    PHP-Code:
    $codetreffercode=0;
    $treffzahl$treffzahl*$trefferproseite;
    $query2="SELECT * FROM $sitetable a INNER JOIN $sitetable22 b 
    ON b.userid = a.siteid WHERE b.geschlecht='m' ORDER BY b.name 
    ASC LIMIT 
    $treffzahl,$trefferproseite";
    $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
    while(
    $date=mysql_fetch_array($result2))

    die zweite frage wäre zu meinem voting. es geht darum mitglieder erst darin anzuzeigen wenn sie die nötige bewertung haben (<-kein problem) und zweitens mindesten 50 Stimmen auf ihr bild bekommen haben(<--Problem) das Problem ist, wenn ich die stimmen auslese zeigt es mir dann trotzdem folgende zahlenbsp an die mit 6,7,8,9 anfangen
    kann man das irgendwie ändern oder sollte ich ab mitglieder ab 100 auslesen, denn das müßte ja trotzdem gehen
    selfmade-webdesign
    webdesign leipzig

  • #2
    Zu Frage 1:
    versuch es mal mit "SELECT DISTINCT * ..."


    Gruß
    Stephan
    [font=Verdana]SteGaSoft
    Theorie ist, wenn jeder weiß, wie es geht, aber nichts funktioniert, Praxis ist, wenn alles funktioniert und niemand weiß warum.
    [/font]

    Kommentar


    • #3
      danke werde ich mal versuchen
      mein 2.problem konnte ich lösen in dem ich in der db stimmen auf INT umgestellt habe
      selfmade-webdesign
      webdesign leipzig

      Kommentar


      • #4
        das scheint aber nicht richtig zu sein, hab irgendwo ein fehler, aber weiß nicht an was es genau liegt
        PHP-Code:
        #wie muß ich DISTINCT einbauen? weiß nicht genau 
        $query2="SELECT * FROM $sitetable a INNER JOIN 
        $sitetable22 b ON b.userid = a.siteid WHERE b.geschlecht='m' 
        ORDER BY b.name ASC LIMIT 
        $treffzahl,$trefferproseite";
        $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
        while(
        $date=mysql_fetch_array($result2)) 
        selfmade-webdesign
        webdesign leipzig

        Kommentar


        • #5
          Sorry, kann sein, dass DISTINCT nicht mit INNER JOIN funktioniert .
          Vielleicht hilft Dir dieser Link weiter:
          http://www.phpforum.de/archiv_40020_..._anzeigen.html

          Gruß
          Stephan
          [font=Verdana]SteGaSoft
          Theorie ist, wenn jeder weiß, wie es geht, aber nichts funktioniert, Praxis ist, wenn alles funktioniert und niemand weiß warum.
          [/font]

          Kommentar


          • #6
            tja, ich bekomme es leider immer noch nicht hin
            hat denn nicht noch jemand eine idee?
            selfmade-webdesign
            webdesign leipzig

            Kommentar


            • #7
              habe es nun so versucht, aber mir ist noch immer nichts eingefallen um, falls jemand mehr als ein bild hat, ihn trotzdem nur einmal anzeigen zu lassen
              hier der code:
              PHP-Code:
              $query2 "select $sitetable.*, $sitetable22.bild from $sitetable 
              INNER JOIN 
              $sitetable22 ON ($sitetable.name = $sitetable22.name
              AND 
              $sitetable.siteid = $sitetable22.userid)
              where termteim<>'' ORDER BY termteim DESC LIMIT 0,5"
              ;
              $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
              while(
              $date=mysql_fetch_array($result2))
              {
              $name$date[name];

              echo(
              "<tr width=\"25%\" valign=\"top\">");
              echo(
              "<a href=\"http://www.flirtexplosion.de/index_start.php?
              trefferid=
              $date[siteid]&$sidname=$sidsid\" target=\"$linkziel\"><center><img width=\"$neueBreite\" 
              border=\"0\" src=\"http://www.flirtexplosion.de/bilder_tum2.php?bild=
              $date[bild]\"></a>
              </font>
              <br><center><font size=\"
              $fontuber\" color=\"$fontcolor\" 
              face=\"
              $schriftart\"><b>$name</b></font></a>");
              echo(
              "</tr>"); 
              mit diesem ergebnis werden mir die letzten 5 logins angezeigt doch wenn einer drei bilder hat kommt er halt dreimal in der liste mit seinen verschiedenen bildern vor und das soll nicht sein <--kann ich nicht irgendwo erzwingen, dass derjenige nur einmal egal mit welchen bild angezeigt wird? ich brauch eure hilfe
              selfmade-webdesign
              webdesign leipzig

              Kommentar


              • #8
                erstmal code umbrechen
                ---------
                du könntest jede id in einer liste speichern und dann gucken ob diese id schon existiert oder so
                Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                Kommentar


                • #9
                  tschuldigung, meine auflösung ist scheinbar zu hoch und ändern kann ich nun nichts mehr, aber hier noch einmal der code
                  PHP-Code:
                  $query2 "select $sitetable.*, $sitetable22.bild from $sitetable 
                  INNER JOIN 
                  $sitetable22 ON ($sitetable.name = $sitetable22.name
                  AND 
                  $sitetable.siteid = $sitetable22.userid)
                  where termteim<>'' ORDER BY termteim DESC LIMIT 0,5"
                  ;
                  $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
                  while(
                  $date=mysql_fetch_array($result2))
                  {
                  $name$date[name];

                  echo(
                  "<tr width=\"25%\" valign=\"top\">");
                  echo(
                  "<a href=\"http://www.flirtexplosion.de/index_start.php?
                  trefferid=
                  $date[siteid]&$sidname=$sidsid\" target=\"$linkziel\">
                  <center><img width=\"
                  $neueBreite\" 
                  border=\"0\" src=\"http://www.flirtexplosion.de/bilder_tum2.php?bild=
                  $date[bild]\">
                  </a></font>
                  <br><center><font size=\"
                  $fontuber\" color=\"$fontcolor\" 
                  face=\"
                  $schriftart\"><b>$name</b></font></a>");
                  echo(
                  "</tr>"); 
                  mit diesem ergebnis werden mir die letzten 5 logins angezeigt doch wenn einer drei bilder hat kommt er halt dreimal in der liste mit seinen verschiedenen bildern vor und das soll nicht sein <--kann ich nicht irgendwo erzwingen, dass derjenige nur einmal egal mit welchen bild angezeigt wird? ich brauch eure hilfe
                  selfmade-webdesign
                  webdesign leipzig

                  Kommentar


                  • #10
                    OffTopic:
                    welche auflösung hast du?? ich hab 1600x1200 - außerdem kannst du einen beitrag doch per [ändern] ändern oder??
                    du könntest jede id in einer liste speichern und dann gucken ob diese id schon existiert oder so
                    kannst du damit denn was anfangen??
                    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                    Kommentar


                    • #11
                      hab keine rechte zum ändern
                      genutzt hat es mir leider nicht, aber trotzdem danke

                      hat denn noch jemand eine idee, wie ich in der galerie nur ein bild von einem user anzeigen lassen kann auch wenn er mehr als eins geladen hat?
                      hier nochmal der komplette code um die galerie anzeigen zu können
                      PHP-Code:
                      echo("<table cellpadding=\"0\" width=\"95%\"><tr>");
                      $treffzahlund$treffzahl*$trefferproseite;
                      $query2="SELECT $sitetable22.* , $sitetable.* FROM 
                      $sitetable22 inner join $sitetable ON
                      (
                      $sitetable22.userid = $sitetable.siteid) ORDER BY 
                      $sitetable.name ASC LIMIT $treffzahlund,$trefferproseite";
                      $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
                      while(
                      $date=mysql_fetch_array($result2))
                      {
                      $name$date[name];
                      $bild$date[bild];

                      if(
                      $bild=="")
                      {
                      $bild="<img src=\"$keins\" align=\"BOTTOM\" border=\"0\">";
                      }

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

                      echo(
                      "<td width=\"25%\" valign=\"top\">");
                      echo(
                      "<a href=\"index_start.php?trefferid=$date[siteid]
                      &
                      $sidname=$sidsid\" target=\"$linkziel\"><center><img 
                      width=\"
                      $neueBreite\" border=\"0\" src=\"bilder_tum.php?
                      bild=
                      $bild\"></a>
                      <br><center><font size=\"
                      $fontuber\" 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=\"25%\"></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>");
                      ?> 
                      selfmade-webdesign
                      webdesign leipzig

                      Kommentar


                      • #12
                        DISTINCT oder GROUP BY sind evtl. deine freunde. kann dir nicht mehr sagen, bei der menge an code und der (für mich) abstrakten fragestellung.

                        Kommentar


                        • #13
                          distinct habe ich schonmal versucht aber irgendwie wollte das auch nicht so recht, vielleicht habe ich es auch nicht korrekt gemacht
                          was verstehst du denn an meiner frage nich? die frage ist einfach wie ich einen user der 2 oder mehrer bilder geladen hat anzeigen kann mit bild
                          anzeigen tut er sie ja doch wenn yyy zwei bilder hat wird yyy dementsprechend 2 mal angezeigt. einmal mit dem und dem anderen bild. ich möchte aber, dass yyy nur einmal angezeigt wird (erstmal egal mit welchem bild)
                          selfmade-webdesign
                          webdesign leipzig

                          Kommentar


                          • #14
                            PHP-Code:
                            echo("<table cellpadding=\"0\" width=\"95%\"><tr>");
                            $treffzahlund$treffzahl*$trefferproseite;
                            #$sitetable=tabelle mit den daten der user
                            #$sitetable22=tabelle mit den bildern der user
                            $query2="SELECT $sitetable22.* , $sitetable.* 
                            FROM 
                            $sitetable22 inner join $sitetable ON
                            (
                            $sitetable22.userid = $sitetable.siteid) 
                            ORDER BY 
                            $sitetable.name ASC LIMIT $treffzahlund,$trefferproseite";
                            $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
                            while(
                            $date=mysql_fetch_array($result2))
                            {
                            # siehe oben 
                            selfmade-webdesign
                            webdesign leipzig

                            Kommentar


                            • #15
                              nachtschicht ;-)

                              danke nochmal für den tip, habe es nun hinbekommen, doch nun tut sich leider ein weiteres Problem aus. Das Problem ist, dass user die kein Bild von sich geladen haben ein NO PIC Bild bekommen. ich habe es auch mit eine if anweisung versucht doch leider bleibt das feld leer.
                              hier mal der code:
                              PHP-Code:
                              $treffzahlund$treffzahl*$trefferproseite;
                              $query2="SELECT DISTINCT $sitetable22.* , $sitetable.* 
                              FROM 
                              $sitetable22 inner join $sitetable ON
                              (
                              $sitetable22.userid = $sitetable.siteid) GROUP BY 
                              $sitetable.name ASC LIMIT $treffzahlund,$trefferproseite";
                              $result2=mysql_db_query($dbname,$query2,$conn) or die(mysql_error());
                              while(
                              $date=mysql_fetch_array($result2))
                              {
                              $name$date[name];
                              $bild$date[bild];

                              if(
                              $bild=="")
                              {
                              $bild="<img src=\"$keins\" align=\"BOTTOM\" border=\"0\">";
                              }
                              .... 
                              ansonsten funzt es schon einwandfrei, dass die leute die auch mehrere bilder haben nur einmal gezeigt werden
                              danke für eure geduld mit mir
                              selfmade-webdesign
                              webdesign leipzig

                              Kommentar

                              Lädt...
                              X