Ankündigung

Einklappen
Keine Ankündigung bisher.

Sql abfrage mit bildverknüpfung

Einklappen

Neue Werbung 2019

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

  • Sql abfrage mit bildverknüpfung

    Hallo,

    da ich neu hier bin und mich auch erst seit kurzem mit php beschäftige, hab ich hier ein problem für das ich einfach keine lösung finde.

    Und zwar hab ich ein script in dem der status eines benutzers ausgegebn wird. der Status wird durch die sql-datenbank abgefragt. dies funktioniert auch ohne probleme, wenn ich nur einen benutzer abfrage. Da erscheint dann auch das zugehörige Bild das erscheinen soll.

    Füge ich nun mehrere Benutzer ein durch

    $result = mysql_query("SELECT status as aktiv FROM tbl_17421_agenten WHERE ddi < '40'");

    bekomme ich zwar den status der benutzer angezeigt, jedoch liegen dann die dazugehörigen bilder übereinander.

    Ich habe das jetzt versucht durch eine tabelle zu lösen, dies funktioniert auch, jedoch dann leider nicht mit den dazugehörigen bildern, sondern ich bekomme nur die "Zahl" aus der Tabelle angezeigt. Soll heißen 0,1 oder 2.

    Hier mal das scribt wie ich es im moment verwende:

    echo '<img src="http://reiten-namborn.cgs-guitars.de/images/1.jpg">';
    $result = mysql_query("SELECT status as aktiv FROM tbl_17421_agenten WHERE ddi < '40'");



    $row = mysql_fetch_assoc($result);




    $aktiv=$row['aktiv'];





    echo "<table border='0' style='border-collapse: collapse'>";
    echo "<th>Name of the Tutorial</th>";

    while( $aktiv=$row = mysql_fetch_assoc($result) )
    {
    echo"<tr><td>".$row['aktiv']."</td></tr>";
    }
    if ($aktiv=='0') { echo '<img src="Red_6.png" alt="">'; } //Grafik für abwesend
    if ($aktiv=='1') { echo '<img src="Green_6.png" alt="">'; } //Grafik für anwesend
    if ($aktiv=='2') { echo '<img src="Blue_6.png" alt="">'; } //Grafik für besetzt
    echo "</table>";

    Und noch ein kleiner Screenshot wie es dann aussieht.
    Angehängte Dateien


  • #2
    Und du bist nicht der Meinung, dass das Bild mit in die Schleife sollte?

    Übrigens steht der Status in $row['aktiv'] und nicht in $aktiv.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Das bild soll mit rein, ist es ja auch nur in der tabelle nicht. ich hätte das bild aber auch gerne in der tabelle. Ansonten müsst ich für deb ersten nutzer

      $result = mysql_query("SELECT status as aktiv FROM tbl_17421_agenten WHERE ddi = '1'");

      einfügen und für den zweiten dann

      $result = mysql_query("SELECT status as aktiv FROM tbl_17421_agenten WHERE ddi = '2'");

      usw.

      ich hätte dies halt genre durch die tabelle gelöst, da ich ansonsten ein script mit hunderten von unnötigen zeilen schreiben müsste.

      Kommentar


      • #4
        Warum hunderte unnötige Zeilen? Eine Zeile reicht, den Rest erledigt doch die schon erwähnte Schleife.

        Kommentar


        • #5
          Ja, die schleife funktiert ja auch, nur wenn ich das mit bild angezeigt haben will, stehn die entweder übereiander als man sieht nur das letzte, oder in der tabelle wird nur die zahl, bzw array angezeigt.

          Kommentar


          • #6
            Das mag sein, dass die Schleife funktioniert. Aber meinst du nicht, deine Bildzuweisung sollte da auch noch mit rein?

            PHP-Code:
            if ($aktiv=='0') {  echo '<img src="Red_6.png" alt="">'; }   //Grafik für abwesend
            if ($aktiv=='1') {  echo '<img src="Green_6.png" alt="">'; } //Grafik für anwesend
            if ($aktiv=='2') {  echo '<img src="Blue_6.png" alt="">'; }  //Grafik für besetzt 

            Kommentar


            • #7
              Wäre ganz nützlich wenn das mit in der Schleife wäre.

              +

              PHP-Code:
              $aktiv=$row['aktiv']; // unnötig, kannst ja auch direkt prüfen
              if ($row['aktiv'] == '2'
              Außerdem:

              Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt. Zudem ist deine Query anfällig für SQL-Injections (aktuell nicht, aber falls du Variablen in dein Insert nimmst).
              Durch einen Wechsel auf mysqli_* oder PDO greifst du aufdie modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections wirken.
              Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm
              Relax, you're doing fine.
              RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

              Kommentar


              • #8
                Danke für die hilfe, dieses problem ist erledigt. mit ist nämlcih eingafallen, daß ich jeden einzeln abfragen muß um auch die einzelen userbilder und texte mit in eine tabelle zu bekommen.

                Das stellt nun kein problem mehr da. dafür gibt es ein anderes für das ich keine lösung finde. dies aber in einem anderen thread.

                Kommentar


                • #9
                  daß ich jeden einzeln abfragen muß um auch die einzelen userbilder und texte mit in eine tabelle zu bekommen
                  Wenn dein DB-Design korrekt ist, dann sicher nicht - aber siehe anderen Thread, da geht es eh schon in die Richtung.
                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar


                  • #10
                    Zitat von keltenhannes Beitrag anzeigen
                    , daß ich jeden einzeln abfragen muß um auch die einzelen userbilder und texte mit in eine tabelle zu bekommen.
                    Kommt ein neuer User dazu änderst die Programmierung? *facepalm*
                    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                    Kommentar


                    • #11
                      Das problem ist ja gerade das die db nicht von mir adminsitriert wird sondern von nem provider. das heißt ich habe nur lesezugriff auf die db.

                      Kommentar

                      Lädt...
                      X