inspiron: mit Selectfeld zwei Werte gleichzeitig aus DB abrufen

Hallo,
ich bräuchte bitte mal Hilfe für folgendes Problem.
Ein Selectfeld wird aus einer DB-Tabelle mit den Werten "sendung" gefüllt. Soweit alles i.O.
Nun möchte ich den dazu passenden Wert "senderlogo" in einem $Post_senderlogo haben, soll aber nicht im Selectfeld sichtbar sein.
Für ein Lösungsweg wäre ich dankbar!
Gruß

Tabelle "dropdown_sendung"
--------------------------
id |sendung  |senderlogo|
--------------------------
1  |Sendung_A|logo_a.png|
2  |Sendung_B|logo_b.png|
3  |Sendung_C|logo_c.png|
.  |...
.  |...

  
            <select name="sendung" id="sendung" >  
   			<optgroup label="Sendung">  
   			<?php  
  
           	$sql = "SELECT sendung, senderlogo FROM dropdown_sendung ";  
    		$result = mysql_query($sql);  
        	// für jeden Eintrag ein Option-Tag erstellen  
        	while ($arrsendung = mysql_fetch_array($result, MYSQL_ASSOC)) {  
        	  
            foreach ($arrsendung as $zeile) {  
              $sel = isselected($zeile, $_POST['sendung']);  
  
              if($arrsendung['sendung'] == "*") {  
                echo '<optgroup label="*">';  
              } else {  
  
              echo '<option value="'.$zeile.'"'.$sel .'>'.$zeile.'</option>';  
              }  
              }  
            }  
            ?>  
            </optgroup>  
     	    </select>  
  

  1. Hi,

    ich bräuchte bitte mal Hilfe für folgendes Problem.
    Ein Selectfeld wird aus einer DB-Tabelle mit den Werten "sendung" gefüllt. Soweit alles i.O.

    bis hierher kann ich auch noch folgen.

    Nun möchte ich den dazu passenden Wert "senderlogo" in einem $Post_senderlogo haben, soll aber nicht im Selectfeld sichtbar sein.

    An dieser Stelle steige ich aus.
    Wie jetzt, du willst noch ein Logo anzeigen, das soll aber nicht sichtbar sein? In einem option-Element kannst du sowieso nichts anderes als puren Text anzeigen.
    Oder willst du bloß die URL des Logos mit im value-Attribut unterbringen? Wozu?

    Und hast du überhaupt ein PHP-Problem, oder eigentlich ein HTML-Problem?

    Für ein Lösungsweg wäre ich dankbar!

    Mag sein. Leider stelle ich aber fest, dass ich aus deiner Beschreibung überhaupt nicht schlau werde. Auffällig, dass das bei deinen Problembeschreibungen meistens so ist.

    $sql = "SELECT sendung, senderlogo FROM dropdown_sendung ";
         $result = mysql_query($sql);
             // für jeden Eintrag ein Option-Tag erstellen
             while ($arrsendung = mysql_fetch_array($result, MYSQL_ASSOC)) {
            
                foreach ($arrsendung as $zeile) {
                  $sel = isselected($zeile, $_POST['sendung']);

    if($arrsendung['sendung'] == "*") {
                    echo '<optgroup label="*">';
                  } else {

    echo '<option value="'.$zeile.'"'.$sel .'>'.$zeile.'</option>';
                  }
                  }

    Yo, diese Schleife scheint die option-Elemente zu generieren. Und was ist daran nun nicht okay?

    Ciao,
     Martin

    --
    "Hier steht, deutsche Wissenschaftler hätten es im Experiment geschafft, die Lichtgeschwindigkeit auf wenige Zentimeter pro Sekunde zu verringern." - "Toll. Steht da auch, wie sie es gemacht haben?" - "Sie haben den Lichtstrahl durch eine Behörde geleitet."
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Nun möchte ich den dazu passenden Wert "senderlogo" in einem $Post_senderlogo haben, soll aber nicht im Selectfeld sichtbar sein.

      An dieser Stelle steige ich aus.
      Wie jetzt, du willst noch ein Logo anzeigen, das soll aber nicht sichtbar sein? In einem option-Element kannst du sowieso nichts anderes als puren Text anzeigen.
      Oder willst du bloß die URL des Logos mit im value-Attribut unterbringen? Wozu?

      Der ausgewählte Wert des Selectfeldes "sendung" wird in einer neuen DB-Tabelle "liste" gespeichert. Ich möchte den passenden Logonamen zur Sendung mit dazu speichern (sendung_a + logo_a.png). Der Logoname soll aber im Selectfeld nicht aufgelistet werden.

      Gruß

      1. Hi,

        Der ausgewählte Wert des Selectfeldes "sendung" wird in einer neuen DB-Tabelle "liste" gespeichert. Ich möchte den passenden Logonamen zur Sendung mit dazu speichern (sendung_a + logo_a.png).

        Du willst also einen Wert, den du serverseitig ermittelst, zum Client übertragen, nur um ihn von dort wieder zur Speicherung an den Server zu schicken …?

        Ja warum machst du das denn nicht gleich im zweiten Schritt – selektierst dir den zur gewählten Sendung passenden Wert, und speicherst sie dann zusammen ab?

        (Das ganze klingt übrigens stark so, also ob du nicht vernünftig normalisiert hättest.)

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      2. Hallo,

        Wie jetzt, du willst noch ein Logo anzeigen, das soll aber nicht sichtbar sein? In einem option-Element kannst du sowieso nichts anderes als puren Text anzeigen.
        Oder willst du bloß die URL des Logos mit im value-Attribut unterbringen? Wozu?
        Der ausgewählte Wert des Selectfeldes "sendung" wird in einer neuen DB-Tabelle "liste" gespeichert. Ich möchte den passenden Logonamen zur Sendung mit dazu speichern (sendung_a + logo_a.png). Der Logoname soll aber im Selectfeld nicht aufgelistet werden.

        also ist das Stück Code, das du gezeigt hast, völlig irrelevant, weil es ja nur die Ausgabe _zum Browser_ generiert.

        Du willst aber bei der Antwort _vom Browser_ und _zum Server_ die nötigen Informationen wieder zusammensuchen. Was liegt also näher, als an der Stelle den vom Browser gelieferten Namen der Sendung wieder aus der DB rauszusuchen und das zugehörige Logo von dort zu nehmen? Wenn es nicht im Browser angezeigt werden soll, brauchst du es ihm ja auch nicht anzubieten, nur um es nachher möglicherweise manipuliert wieder zurückzubekommen.

        Ciao,
         Martin

        --
        Vater Staat bringt uns noch alle unter Mutter Erde.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Was liegt also näher, als an der Stelle den vom Browser gelieferten Namen der Sendung wieder aus der DB rauszusuchen und das zugehörige Logo von dort zu nehmen? Wenn es nicht im Browser angezeigt werden soll, brauchst du es ihm ja auch nicht anzubieten, nur um es nachher möglicherweise manipuliert wieder zurückzubekommen.

          Ciao,
          Martin

          mmhh,
          kannst du mir wenigstens ein Ansatz, ein Link ... zeigen.
          Wird das dann gleich mit MySQL gemacht? Nach was muß ich denn da suchen?

          Gruß

          1. Hallo,

            Was liegt also näher, als an der Stelle den vom Browser gelieferten Namen der Sendung wieder aus der DB rauszusuchen und das zugehörige Logo von dort zu nehmen? Wenn es nicht im Browser angezeigt werden soll, brauchst du es ihm ja auch nicht anzubieten, nur um es nachher möglicherweise manipuliert wieder zurückzubekommen.
            kannst du mir wenigstens ein Ansatz, ein Link ... zeigen.
            Wird das dann gleich mit MySQL gemacht? Nach was muß ich denn da suchen?

            was meinst du? Du hast doch schon alles! Anstatt den Sender bzw. das Senderlogo schon beim Generieren des Formulars rauszusuchen, tust du das eben erst bei der Antwort, die aus diesem Formular entsteht.

            Abgesehen davon schließe ich mich Chris an: Willst du wirklich Informationen mehrfach redundant speichern?
            Nicht schön ...

            So long,
             Martin

            --
            Einer aktuellen Erhebung zufolge sind zehn von neun Ehefrauen eifersüchtig auf ihren Mann.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
            1. Anstatt den Sender bzw. das Senderlogo schon beim Generieren des Formulars rauszusuchen, tust du das eben erst bei der Antwort, die aus diesem Formular entsteht.

              Hallo,
              gebe ich einer Variable einen festen Wert $selectId = "7"; , dann wird der passende Logoname in der Fehlerliste gespeichert.
              Wie bekomme ich denn jetzt die id der ausgewählten Zeile im Selectfeld, um diese dann an $selectId zu übergeben?

                
                          <select name="sendung" id="sendung" >  
                 	    <optgroup label="Sendung">  
                 	    <?php  
                
                         	$sql = "SELECT sendung FROM dropdown_sendung ";  
                  		$result = mysql_query($sql);  
                      	// für jeden Eintrag ein Option-Tag erstellen  
                      	while ($arrsendung = mysql_fetch_array($result, MYSQL_ASSOC)) {  
                      	  
                          foreach ($arrsendung as $zeile) {  
                            $sel = isselected($zeile, $_POST['sendung']);  
                
                            if($arrsendung['sendung'] == "*") {  
                              echo '<optgroup label="*">';  
                            } else {  
                
                            echo '<option value="'.$zeile.'"'.$sel .'>'.$zeile.'</option>';  
                            }  
                            }  
                          }  
                          ?>  
                   	    </select>  
                
              
              
                
                
              $selectId = "7";  
                
              $sql = "INSERT INTO `FW_Fehlerbericht`  
                              (`DATUM`, `STEMPEL`, `UHRZEIT`, `DAUER`, `SENDUNG`, `SENDERLOGO`, `FEHLERKATEGORIE`, `ONAIR`, `BESCHREIBUNG`, `MASSNAHME`, `ANMERKUNG`, `M_NAME`, `SCHICHT`, `ORT` )  
                          SELECT  
                              '" .mysql_real_escape_string( date_german2mysql($_POST["datum"])). "',  
                              '" .mysql_real_escape_string( $_POST["stempel"] ). "',  
                          	'" .mysql_real_escape_string( $_POST["uhrzeit"] ). "',  
                          	'" .mysql_real_escape_string( $_POST["dauer"] ). "',  
                          	ds.sendung,  
              		ds.senderlogo,  
                          	'" .mysql_real_escape_string( $_POST["fehlerkategorie"] ). "',  
                          	'" .mysql_real_escape_string( $_POST["radio"] ). "',  
                          	'" .mysql_real_escape_string( $_POST["beschreibung"] ). "',  
                          	'" .mysql_real_escape_string( $_POST["massnahme"] ). "',  
                          	'" .mysql_real_escape_string( $_POST["anmerkung"] ). "',  
                          	'" .mysql_real_escape_string( $_SESSION["m_name"]."',  
                              '" .mysql_real_escape_string( $_SESSION["schicht"] ). "',  
                              '" .mysql_real_escape_string( $_SESSION["ort"] ). "'  
                          FROM  
                  		dropdown_sendung AS ds  
              	    WHERE  
                  		ds.id = {$selectId}";  
              
              

              Abgesehen davon schließe ich mich Chris an: Willst du wirklich Informationen mehrfach redundant speichern?
              Nicht schön ...

              Dazu habe ich dann später noch 'ne Frage!

              1. Hallo,
                ich habe es jetzt so gemacht. Das speichern funktioniert jetzt.
                Nun habe ich ein weiteres Problem und finde dazu keine Lösung.
                Da bräuchte ich bitte noch einmal Hilfe.
                Im Selectfeld werden jetzt auch die ID's mit angezeigt, das sollte aber nicht so sein.
                Gruß

                  
                <div>  
                <select class="select_mac" name="sendung" id="sendung" >  
                <optgroup label="Sendung">  
                <?php  
                  
                $sql = "SELECT id, sendung FROM dropdown_sendung ";  
                $result = mysql_query($sql);  
                  
                while ($arrsendung = mysql_fetch_array($result, MYSQL_ASSOC)) {  
                        	  
                 foreach ($arrsendung as $zeile) {  
                   $sel = isselected($zeile, $_POST['sendung']);  
                  
                   if($arrsendung['sendung'] == "*") {  
                    echo '<optgroup label="*">';  
                   } else {  
                    echo '<option value="'.$arrsendung['id'].'"'.$sel .'>'.$zeile.'</option>';  
                   }  
                 }  
                }						  
                ?>  
                </optgroup>  
                </select>  
                </div>  
                  
                
                
                  
                SELECT  
                     '" .mysql_real_escape_string( date_german2mysql($_POST["datum"])). "',  
                     '" .mysql_real_escape_string( $_POST["stempel"] ). "',  
                     '" .mysql_real_escape_string( $_POST["uhrzeit"] ). "',  
                     '" .mysql_real_escape_string( $_POST["dauer"] ). "',  
                     ds.sendung,  
                     ds.senderlogo,  
                     '" .mysql_real_escape_string( $_POST["fehlerkategorie"] ). "',  
                     '" .mysql_real_escape_string( $_POST["radio"] ). "',  
                     '" .mysql_real_escape_string( $_POST["beschreibung"] ). "',  
                     '" .mysql_real_escape_string( $_POST["massnahme"] ). "',  
                     '" .mysql_real_escape_string( $_POST["anmerkung"] ). "',  
                     '" .mysql_real_escape_string( $_SESSION["m_name"]."',  
                     '" .mysql_real_escape_string( $_SESSION["schicht"] ). "',  
                     '" .mysql_real_escape_string( $_SESSION["ort"] ). "'  
                FROM  
                     dropdown_sendung AS ds  
                WHERE  
                     ds.id = {$_POST['sendung']}";  
                
                
                1. ...hat sich erledigt!

                  Danke

  2. Hi,

    Nun möchte ich den dazu passenden Wert "senderlogo" in einem $Post_senderlogo haben, soll aber nicht im Selectfeld sichtbar sein.

    Na welcher Teil einer Option ist denn „sichtbar“, und welcher nicht?

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?