Datenbankeintrag interpretieren

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

  • Datenbankeintrag interpretieren

    Wie kann ich erreichen, dass ein in einer Datenbank stehender Wert in einem php-Formular richtig interpretiert wird. Habe folgenden Code:

    <tr><td>Rubrik:</td><td>
    <select name="rubrik">
    <option value="001" <?php if($current['rubrik'] == 001) {print"selected";} ?>>Wohnzimmer</option>
    <option value="002" <?php if($current['rubrik'] == 002) {print"selected";} ?>>Schlafzimmer</option>
    </select></td></tr>

    wenn nun in der Datenbank im Feld anz-rubrik 002 steht, wird dennoch in der Darstellung der ausgelesenen Daten als Auswahlfeld Wohnzimmer, also 001 angezeigt.

    Gibt es eine Lösung für dieses Problem????

    Danke

    Martin

  • #2
    Schick' mal das SQL-Statement ...
    Wenn das Feld 'anz-rubrik' heißt solltest du's in $current['anz-rubrik'] auch entsprechend verwenden.
    Wenn der Wert in $current['rubrik'] mit führenden Nullen ist ... solltest Du's mit 'nen String vergleichen: "001" und "002".

    warum gibst Du dir nicht einfach mal aus was in $current['rubrik'] drinsteht ... bzw was der Vergleich ergibt:

    echo $current['rubrik']." ".( $current['rubrik'=="001" ? "WAHR" : "FALSCH" );

    usw.
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Antwort

      In der MySQL Datenbank heisst das Feld anz_rubrik, als Wert steht momentan in diesem Feld 002

      habe den Code dahingehend abgeändert, jedoch ohne gewünschten Erfolg

      <tr><td>Rubrik:</td><td>
      <select name="rubrik">
      <option value="001" <?php if($current['anz_rubrik'] == 001) {print"selected";} ?>>Wohnzimmer</option>
      <option value="002" <?php if($current['anz_rubrik'] == 002) {print"selected";} ?>>Schlafzimmer</option>
      </select></td></tr>

      Kommentar


      • #4
        <option value="001" <?php if($current['anz_rubrik'] == "001") {print "selected";} ?>>Wohnzimmer</option>
        <option value="002" <?php if($current['anz_rubrik'] == "002") {print "selected";} ?>>Schlafzimmer</option>


        Hochkommas nicht vergessen, ist sicher ein Character-Feld

        Kommentar


        • #5
          keine Änderung

          habe das Script nach Euren Vorstellungen abgeändert, es wird aber weiterhin der erste Eintrag bei der Auswertung angezeigt und nicht der Wert der in der db steht.

          Kommentar


          • #6
            Lautet das Feld jetzt $current['anz_rubrik'] oder $current['rubrik']?
            Mach mal vorher ein
            print " anz_rubrik:$current['anz_rubrik']<br>\n";
            print " rubrik:$current['rubrik']<br>\n";
            und poste das Ergebnis

            Kommentar


            • #7
              Kann es sein, dass in der Datenbank die führenden Nullen abgeschnitten werden? Also 1 statt 001 eingetragen wird? Im UPDATE steht es richtig nur beim SELECT kommt was anderes wohl raus. Schreibe mal
              <?php echo $row['anz_rubrik']; ?>
              <select name="rubrik">
              <option value="001" <?php if($row['anz_rubrik'] == "001") {print "selected";} ?>>Wohnzimmer</option>
              <option value="002" <?php if($row['anz_rubrik'] == "002") {print "selected";} ?>>Schlafzimmer</option>
              </select>
              Tock (,tock,tock)

              Kommentar


              • #8
                Oder müssen die Hochkomma beim arrayindex weg?
                Also nicht $row['anz_rubrik'] sondern $row[anz_rubrik]
                Das hat bei mir auch schon mal zu Problemen geführt. Vielleicht kann mir auch jemand erklären, wann da Hochkomma hin müssen/dürfen und wann nicht.
                cu tj99de
                Of all things I've lost
                I miss my mind the most

                Kommentar


                • #9
                  Die hochkommas müssen da immer hin es sei denn es handelt sich um 'nen Numerische Wert.

                  Auf manch einem Server mag das auch ohne Hochkommas funktionieren, je nach Konfiguration von PHP wird dann allerdings 'ne Warning ausgegeben das die Konstante BLABLABLA nicht gefunden wurde und deshalb als String interpretiert wird.

                  Anyway der Saubere Weg ist der mit Hochkommas!
                  carpe noctem

                  [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                  [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                  Kommentar


                  • #10
                    Hmm...
                    Ich hatte da aber auch eine Zeichenkette als array-index drin stehen und es ging nicht mit den Hochkommas
                    Merkwürdig ...
                    Aber trotzdem danke. Jetzt weiß ich wenigstens wie es in der Theorie am besten ist.

                    cu tj99de
                    Of all things I've lost
                    I miss my mind the most

                    Kommentar


                    • #11
                      Re: Datenbankeintrag interpretieren

                      Original geschrieben von Martin5000

                      <option value="001" <?php if($current['rubrik'] == 001) {print"selected";} ?>>Wohnzimmer</option>
                      <option value="002" <?php if($current['rubrik'] == 002) {print"selected";} ?>>Schlafzimmer</option>
                      versuch doch mal ...{print" selected"}...
                      achte auf das leerzeichen nach dem 1. " !!!
                      ansonsten steht da nämlich z.b.:

                      <option value="001"selected>

                      und mit leerzeichen

                      <option value="001" selected>

                      im oberen fall kann das selected nicht interpretiert werden, weil es direkt am "" klebt und nicht als eigener "befehl"

                      das ist nur ein vorschlag, bitte nicht hauen, wenns das nicht war

                      Kommentar


                      • #12
                        es funktioniert

                        das mit

                        <?php echo $row['anz_rubrik']; ?>
                        <select name="rubrik">
                        <option value="001" <?php if($row['anz_rubrik'] == "001") {print "selected";} ?>>Wohnzimmer</option>
                        <option value="002" <?php if($row['anz_rubrik'] == "002") {print "selected";} ?>>Schlafzimmer</option>
                        </select>

                        war des Rätsels Lösung. Vielen Dank für Eure Hilfe

                        Gruss

                        Martin

                        Kommentar


                        • #13
                          Scherzkeks - Du ziehst auf einmal ein $row aus dem Ärmel

                          Da wird ja helfen zum Lotteriespiel

                          @Tock
                          Gratulation zu denen hellseherischen Fähigkeiten

                          Kommentar

                          Lädt...
                          X