Leere felder nicht anzeigen

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

  • Leere felder nicht anzeigen

    Ich habe hier folgendes Script, das aus einer Datenbank Bildnamen ausliest und diese dann anzeigt. Das funktioniert auch ziemlich gut, allerdings hab ich ein problem, wie mache ich das das nur die felder angezeigt werden in denen inhalt ist, weil ich ja sonst nen haufen x'e hab für die leeren images?

    <?
    include("../module/verb.inc");
    if($senden=="usr")
    {
    // BILDANZEIGE VORSCHAU
    $Query = "SELECT * from mitglieder WHERE nick='$user'";
    $Result = mysql_query($Query)
    or print "&gt;&gt;&gt; MySQL-Error: ".mysql_errno()." -&gt; ".mysql_error()."<br>\n";
    print ("<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=2 ALIGN=left>\n");
    while ($Row = mysql_fetch_array ($Result))
    {
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><img src=\"../mitglieder/$user/$Row[bild1]\"</TD>\n");
    print ("</TR>\n");
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><img src=\"../mitglieder/$user/$Row[bild2]\"</TD>\n");
    print ("</TR>\n");
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><img src=\"../mitglieder/$user/$Row[bild3]\"</TD>\n");
    print ("</TR>\n");
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><img src=\"../mitglieder/$user/$Row[bild4]\"</TD>\n");
    print ("</TR>\n");
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><img src=\"../mitglieder/$user/$Row[bild5]\"</TD>\n");
    print ("</TR>\n");
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><img src=\"../mitglieder/$user/$Row[bild6]\"</TD>\n");
    print ("</TR>\n");
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><img src=\"../mitglieder/$user/$Row[bild7]\"</TD>\n");
    print ("</TR>\n");
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><img src=\"../mitglieder/$user/$Row[bild8]\"</TD>\n");
    print ("</TR>\n");
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><img src=\"../mitglieder/$user/$Row[bild9]\"</TD>\n");
    print ("</TR>\n");
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><img src=\"../mitglieder/$user/$Row[bild10]\"</TD>\n");
    print ("</TR>\n");
    }
    print ("</TABLE><p>\n");
    //
    }
    else
    {
    // USER AUSWAHL
    $Query = "SELECT nick from mitglieder";
    $Result = mysql_query($Query);
    print ("<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=2 ALIGN=left>\n");
    while ($Row = mysql_fetch_array ($Result))
    {
    print ("<TR ALIGN=left VALIGN=TOP>\n");
    print ("<TD ALIGN=left VALIGN=TOP><a href=\"$php_self?senden=usr&user=$Row[nick]\" target=\"_self\">$Row[nick]</a></TD>\n");
    print ("</TR>\n");
    }
    print ("</TABLE><p>\n");
    //
    }
    ?>

  • #2
    wenn deine spalte bild den inhalt NULL besitzt, wenn kein bild enthalten ist, kannst du das nehmen.

    Code:
    SELECT * from mitglieder WHERE nick='$user' AND bildspalte IS NOT NULL;
    ist NULL nicht zulässig und der STRING ist nur leer, dann nimm das.

    Code:
    SELECT * from mitglieder WHERE nick='$user' AND bildspalte != '';
    erste variante kann ich nur ans herz legen. notfalls musst du deine tabelle anpassen...
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      wenn ich mich nicht irre, entspricht das doch diesem posting von dir?
      http://www.php-resource.de/forum/sho...threadid=14431

      das problem ist doch das gleiche gewesen und da hast du doch schon selber die lösung gehabt
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Augen auf
        Bei dem posting gab es nur ein Bild, das habe ich direkt angesprochen, in dem neuen fall sind es aber viele viele ...
        Werd das jetzt mal testen.

        Kommentar


        • #5
          Ähm, da ham wa den salat,
          es handelt sich nicht um eine spalte, sonder die bilder sind in einer zeile eingetragen. Also hintereinander

          | bild1 | bild2 | bild3 | etc. |

          und nu?

          Mir ist grad mal so aufgefallen das praktisch nur wir beide miteinander diskutieren

          Kommentar


          • #6
            ich hab grad was ausprobiert, aber das wars schonmal nicht, glaube auch nicht das soetwas überhaupt gibt, aber *auf sig verweis*

            $Query = "SELECT * from mitglieder WHERE nick='$user' AND bild1 != '' AND bild2 != '' AND bild3 != '' AND bild4 != '' AND bild5 != '' AND bild6 != '' AND bild7 != '' AND bild8 != '' AND bild9 != '' AND bild10 != ''";

            das geht auch nicht:

            $Query = "SELECT * from mitglieder WHERE nick='$user' AND bild1 != '', bild2 != '', bild3 != '', bild4 != '', bild5 != '', bild6 != '', bild7 != '', bild8 != '', bild9 != '', bild10 != ''";

            und das auch nicht:

            $Query = "SELECT * from mitglieder WHERE nick='$user' AND bild1 != '' bild2 != '' bild3 != '' bild4 != '' bild5 != '' bild6 != '' bild7 != '' bild8 != '' bild9 != '' bild10 != ''";

            wie mach ich das bloß?

            Kommentar


            • #7
              wenn du eines richtig gemacht hast, dann den ersten syntax

              allerdings hast du dich ins eigene fleisch geschnitten. ALLE felder MÜSSEN ungleich '' sein, damit was kommt. kurz gesagt, der user MUSS alle 10 bilder besitzen, damit er gezeigt wird....

              ich würde nur die erste spalte prüfen. wenn da ein bild ist, ists ok. wenn der user in den anderen spalten bilder hat, kannst du die ja immer noch ausgeben. die prüfung dafür hattest du ja dann schon ... )
              wenn ich dich richtig verstehe , kann der user nicht nur bild2 belegen. bei bild1 gehts immer los. richtig?

              dass nur wir zwei diskutieren heisst eigentlich nur, dass kein anderer lust hat ... müssen ja nicht alle den gleichen senf dazu geben.

              eine noch schönere lösung (aber für dich wahrscheinlich zu kompliziert) ist, alle bilder in einer separaten tab unterzubringen und nur einen verweis des users einzubinden.

              jeder deiner user hat ja eine id. mehr brauchst du nicht.

              nun legst du dir eine neue tab an.

              BildId -> autoincrement,primara
              UserId -> gleicher typ wie in deiner user tab. aber kein auto-inc und kein primary.
              bild -> EINE spalte für bilder.

              wenn jetzt ein user (id = 1) ein bild reinlädt, schreibst du in die bild-tabelle die user-id (hier 1) und das bild.

              lädt er noch ein bild rein, schreibst du wieder user-id = 1 und das bild.

              somit hat der user jetzt zwei einträge in der tabelle der bilder.

              das auslesen ergibt logischerweise auch zwei einträge, ist aber nicht schlimm. die query dafür könnte so aussehen.

              Code:
              SELECT * FROM users
                              LEFT OUTER JOIN bilder ON users.id = bilder.userid;
              damit bekommst du alle bilder....

              probier es mal aus. (feld- und tab-namen müssen evtl. angepasst werden)
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                ja ne is klar

                schon vergessen? ICH BIN DUMM!

                Kommentar


                • #9
                  das kann ja sein, dass du dumm bist, aber die grundfertigkeiten umgang mit pc hast du ja schon erfolgreich erlernt...

                  mal im erst. du hast schon eine tabelle angelegt, und du hast schon php-gecodet. richtig?

                  lies einfach mal mein letzten post laaaaaannnnnnggggggsaaaammmm durch. ich denke nicht, dass ich es unverständlich ausgedrückt habe.
                  ein wenig grundkenntnis natürlich vorausgesetzt....

                  probier es einfach mal. ich nicht schwer
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    dann hab ich ja millionen tabellen späder

                    Kommentar


                    • #11
                      wieso das?
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        hast bestimmt nur einen denkfehler...
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          axo, habs geschnallt, aber wozu dient die bildid?
                          userid und bild hab ich schon geschnallt nur bild id nich

                          Kommentar


                          • #14
                            neue tabelle, neue id....
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              tschuldige bin grad nich mehr so schnell, was bekommmt ne neue id?

                              Kommentar

                              Lädt...
                              X