Jens: Auslesen von Daten aus DB und Felder ohne Inhalt nicht anzeigen

Hallo,

ich hab eine MySQL DB. Um mir die Inhalte anzeigen zu lassen, habe ich mir eine Seite erstellt, wo er mir die Überschrift anzeigt. Dann gibt es dahinter einen anzeigen Button. Wenn man da drauf klickt bekommt man alle Daten des Datensatzes in der DB angezeigt. Nun habe ich aber bei einigen Datensätzen einige Felder wo nichts drin steht. Besser gesagt in den Feldern stehen immer ... Wie kann ich es machen, dass er mir nur die Felder anzeigt wo wirklich Text drin steht. Das heisst, dass er die Felder wo ... drin ist einfach weglässt.

MfG
Jens

  1. grundsätzlich is ... keine gute lösung für ein leeres feld in einer db. dafür sollteste lieber einfach nix drin speichern oder NULL.

    in deinem fall kannst du den inhalt aber einfach vergleichen mit "..." bevor du es ausgibst. ist nur "..." enthalten wirds halt ent ausgegeben.

    eien andere möglichkeit wäre (allerdings kenn ich dein select-syntax nicht, es direkt in die WHERE anweisung zu integrieren.

    WHERE feld_bla!='...'

    dann würde es das feld nur auslesen wenn nicht "..." enthalten ist..

    mfg Chris

    Hallo,

    ich hab eine MySQL DB. Um mir die Inhalte anzeigen zu lassen, habe ich mir eine Seite erstellt, wo er mir die Überschrift anzeigt. Dann gibt es dahinter einen anzeigen Button. Wenn man da drauf klickt bekommt man alle Daten des Datensatzes in der DB angezeigt. Nun habe ich aber bei einigen Datensätzen einige Felder wo nichts drin steht. Besser gesagt in den Feldern stehen immer ... Wie kann ich es machen, dass er mir nur die Felder anzeigt wo wirklich Text drin steht. Das heisst, dass er die Felder wo ... drin ist einfach weglässt.

    MfG
    Jens

    1. Das Problem an der Sache ist ja das es Felder sind wo halt begrenzt was drin steht. Und die Daten die drin stehen werden aus einer DB ausgelesen. Deshalb ...
      Weil ... hab ich gesetzt, damit falls keine Daten bei der Eingabe mehr erfoderlich sind nicht automatisch der erste Eintrag reingeschrieben wird.
      Und da halt nicht in allen Feldern was drin steht sondern auch diese ... stehend für "kein Eintrag". Und das würd ich dann gern so machen, das er diese Feldern wo ... drin ist nicht anzeigt. Sondern nur diese wo Text drin steht.

      MfG
      Jens

      1. Meine Select Syntax sieht so aus :

        $result=mysql_query("select datum,cocktailname,cocktailart,glaeser,erste,mengenangabe_erste,zweite,mengenangabe_zweite,dritte,mengenangabe_dritte,vierte,mengenangabe_vierte,likoere_erste,likoere_menge_erste,likoere_zweite,likoere_menge_zweite,sirup_erste,sirup_menge_erste,sirup_zweite,sirup_menge_zweite,saefte_erste,saefte_menge_erste,saefte_zweite,saefte_menge_zweite,saefte_dritte,saefte_menge_dritte,saefte_vierte,saefte_menge_vierte,pic,beschreibung,eis,machart from tabelle_loungefn_cocktails WHERE
              id=$_POST[id]");

        MfG
        Jens

        1. hm,

          dann musst du wohl oder übel nach der abfrage alle array-felder auf inhalt auf "..." abchecken. mit WHERE würde er sonst die ganze zeile nicht lesen.

          mach ma am ende noch nen LIMIT 0,1 erhöht die performance nen tick..

          mfg Chris
          www.scar4u.de

          1. mach ma am ende noch nen LIMIT 0,1 erhöht die performance nen tick..

            wie meinst du das ???

            MfG
            Jens

            1. $result=mysql_query("select datum,cocktailname,cocktailart,glaeser,erste,mengenangabe_erste,zweite,mengenangabe_zweite,dritte,mengenangabe_dritte,vierte,mengenangabe_vierte,likoere_erste,likoere_menge_erste,likoere_zweite,likoere_menge_zweite,sirup_erste,sirup_menge_erste,sirup_zweite,sirup_menge_zweite,saefte_erste,saefte_menge_erste,saefte_zweite,saefte_menge_zweite,saefte_dritte,saefte_menge_dritte,saefte_vierte,saefte_menge_vierte,pic,beschreibung,eis,machart from tabelle_loungefn_cocktails WHERE
                    id=$_POST[id] LIMIT 0,1");

              das meinte ich..

              mal ne andere frage *g*, sin das eigentlich alle spalten die du aus der db auslesen willst? wenn ja *könntest* du auch

              $result=mysql_query("select * from tabelle_loungefn_cocktails WHERE
                    id=$_POST[id] LIMIT 0,1");

              schreiben..

              1. $result=mysql_query("select * from tabelle_loungefn_cocktails WHERE
                      id=$_POST[id] LIMIT 0,1");

                ja. das sind alle spalten die ich aulesen möchte. das heisst alle felder dieser tabelle.

                MfG
                Jens

                1. mit Limit 0,1 das funzt net. er gibt mir dann die ... aus. kann ich ich der Abfrage das irgendwie so gestalten das er diese Felder mit Inhalt ... weglässt ???

                  MfG
                  Jens

                  1. mit Limit 0,1 das funzt net. er gibt mir dann die ... aus. kann ich ich der Abfrage das irgendwie so gestalten das er diese Felder mit Inhalt ... weglässt ???

                    MfG
                    Jens

                    das mit limit hatte auch nix mit dem ... zu tun...

                    wenn du in die where anweisung das ... aufnimmst, würde er sofort die gesamte zeile übergehen, sobald er es einmal drin findet, oder halt überall drin findet (je nach syntax..)

                    dir bleibt nix anderes übrig als das array der einzelenn zeile zu durchlaufen und auf inhalt zu prüfen und bei "..." entsprechend keine ausgabe durchzuführen..

                    ja nach deinen bedarf könntes du das array einfach in etwa so.. durchlaufen

                    for($i=0;$i<count($zeile);$i++){
                     if($zeile[$i]!="...") { /* gibs aus */ } /* sonst net */
                    }

                    is natürlich nix halbes un nix ganzes, nur nen bsp :)

                    1. kannst du mir das mal als beispiel anhand meiner abfrage fertigmachen ???

                      MfG
                      Jens

                      1. Hallo,

                        kannst du mir das mal als beispiel anhand meiner abfrage fertigmachen ???

                        Hmm, ich denke auf grund der schon gegebenen COde-Teile sollte es für dich möglich sein, die Lösung in dein Script einzubauen.
                        Nochmals das Rezept im Schnelldurchlauf:

                        • Daten mittels SQL abfragen
                        • Dort, wor die Daten feldweise ausgbibst vorher eine Überprüfung machen, ob im Feld '...' steht, und wenn das der Fall ist, das Feld überspringen.

                        BTW: auch ich halte es nicht für sinnvoll '...' in die Datenbank zu schreiben, wenn eigentlcih nichts im Feld stehen soll.

                        Grüße
                          Klaus

    2. hi,

      eien andere möglichkeit wäre (allerdings kenn ich dein select-syntax nicht, es direkt in die WHERE anweisung zu integrieren.
      WHERE feld_bla!='...'
      dann würde es das feld nur auslesen wenn nicht "..." enthalten ist..

      damit würden alle _zeilen_ nicht im ergebnis auftauchen, bei denen das feld feld_bla nut ... enthält.
      das scheint hier aber nicht der gewünschte effekt zu sein.

      gruss,
      wahsaga

  2. hi,

    was soll das doppelposting?
    diese frage hast du hier [pref:t=59628&m=335154] bereits gestellt.

    bitte lies </faq/#Q-11>, und unterlasse sowas in zukunft.

    gruss,
    wahsaga