[Variablen] Arraywerte auslesen und in Datenbank geben?

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

  • [Variablen] Arraywerte auslesen und in Datenbank geben?

    Hi,

    Ich habe einen Objektdatenbank wo Benutzern/Kunden mehrere Objekte zugewiesen werden können. Genau da liegt auch das Problem. Wenn ich die Array werte (siehe *** Markierung) in die Datenbank speichern will, erfolgt ein Eintrag "Array" im Datenbankfeld.

    In der newobjekt.php kann der Admin ein neues Objekt anlegen und das Objekt meheren Kunden zuweisen:

    PHP-Code:
    <?php
    <form action="newobjekt_erfolgt.php" method="post" name="form1"
      <
    TABLE BORDER="0" WIDTH="770" ALIGN="LEFT" CELLPADDING="1">
        <
    TR>
          <
    TD VALIGN="TOP" ALIGN="left">
    <
    strong>&raquo;</strong> <a href="javascript:history.go(-1);">
    <
    font size="2" face="Arial, Helvetica, sans-serif">
    Zur&uuml;ck</font></a><font size="2" face="Arial, Helvetica, sans-serif">&nbsp; </font>
    <
    A NAME="Ankereins"></A><BR>
          </
    TD>
        </
    TR>
        <
    TR>
          <
    TD ALIGN="CENTER" VALIGN="TOP"><FONT SIZE="+1" FACE="Arial"><U><STRONG>Objekte
                  anlegen
    </STRONG></U></FONT><BR>
            <
    br>
          </
    TD>
        </
    TR>
        <
    TR>
          <
    TD ALIGN="LEFT" valign="top">
            <
    TABLE BORDER="0" WIDTH="770" ALIGN="LEFT">
              <
    TR align="left" valign="top">
                <
    TD height="12"><strong><font size="2" face="Arial, Helvetica, 
    sans-serif"
    >Objektnummer:</font></strong></TD>
                <
    TD><strong><font face="Arial, Helvetica, sans-serif" size="2">
                  <!-- <
    input name="ObjektnummerO" type="text" value="
    <? echo 
    $ObjektnummerO; ?>" disabled>-->
                  <
    input name="ObjektnummerO" type="hidden" value="<? echo $ObjektnummerO; ?>">
                </
    font></strong><font face="Arial, Helvetica, sans-serif" size="1">
    (
    wird automatisch vergeben) </font>            </TD>
              </
    TR>
              <
    TR align="left" valign="top">
                <
    TD WIDTH="173" height="12">
    <
    strong><font size="2" face="Arial, Helvetica, sans-serif"Strasse</font></strong></TD>
                <
    TD width="808"><strong> <font face="Arial, Helvetica,
     sans-serif"
     
    size="2">
                  <
    input name="Strasse" type="text" value="<? echo $Strasse; ?>" size="60">
                  </
    font></strong></TD>
              </
    TR>
              <
    TR align="left" valign="top">
                <
    TD height="13"><strong><font size="2" face="Arial, Helvetica, 
    sans-serif"
    >Postleitzahl</font></strong></TD>
                <
    TD><strong> <font face="Arial, Helvetica, sans-serif" size="2"> <strong>
                  <
    input name="Postleitzahl" type="text" value="<? echo $Postleitzahl; ?>">
                  </
    strong> </font></strong></TD>
              </
    TR>
              <
    TR align="left" valign="top">
                <
    TD WIDTH="173"><strong><font size="2" face="Arial, Helvetica,

     sans-serif"
    >Ort</font></strong></TD>
                <
    TD width="808">
                  <
    p> <font face="Arial, Helvetica, sans-serif" size="2"><strong>
                    <
    input name="Ort" type="text" value="<? echo $Ort; ?>">
                    </
    strong></font></p>
                  <
    p><font face="Arial, Helvetica, sans-serif" size="2">
    <
    strong> </strong></font></p>

                </
    TD>
              </
    TR>
              <
    TR align="left" valign="top">
                <
    TD><font face="Arial, Helvetica, sans-serif" 
    size="2"><strong>Mieter</strong></font></TD>
                <
    TD>
                <? 
                    
    //Datenbankanbindung zu Tabelle "Kundennummer" mit Variabeln
                    
    $verbindung mysql_connect
    ($conf_pass->db_host,$conf_pass->db_user,$conf_pass->db_pass); 
                    
    mysql_select_db($conf_pass->db_name,$verbindung); 
                    
    $befehl1="SELECT Kundennummer FROM fa_pass0_data";  

                    
    //Befehl1 ausführen
                    
    $objekte mysql_query($befehl1,$verbindung);

                    
    //Alle Kundennummern der vorhandenen Kunden auslesen/anzeigen
     
    und dann in Feld Mieter eintragen
                    
    print "<select name=Mieter[] size=4 multiple>";
                    while(
    $eingabe mysql_fetch_array($objekte)) {
    print 
    "<option>$eingabe[Kundennummer]</option>";
                                                                    }
                    print 
    "</select>"
                
    ?>
                </TD>
              </TR>
            </TABLE>
          </TD>
        <TR>
          <TD ALIGN="CENTER" VALIGN="MIDDLE">
            <p>
              <input type="submit" name="Submit" value="Objekt anlegen">
            </p>
          </TD>
        </TR>
      </TABLE>
    </form>
    ?>

    Die newobjekt_erfolgt.php fügt die Daten in die Datenbank ein. Alles ausser den Kundennummern im Feld Mieter funktioniert:

    PHP-Code:
    <?php
    // *** Datenbankanbindung zu Tabelle "Objekte" mit Variabeln unter FAPass

    $verbindung mysql_connect($conf_pass->db_host,$conf_pass->db_user,$conf_pass->db_pass);  
    mysql_select_db($conf_pass->db_name,$verbindung) or die(mysql_error()); 

    //Wenn Benutzer auf admin.newobjekt.php den Submitbutton geklickt hat und die Daten mittels
     
    Post (Formularkorrekt übergeben wurdentrage die Werte in Datenbank ein
    if (isset($_POST['Submit'])) { 
                                  
    mysql_query("INSERT INTO Objekte (ObjektnummerO,Strasse,
    Postleitzahl,Ort,Eigentuemer,Mieter)
     VALUES ('
    $ObjektnummerO','$Strasse','$Postleitzahl','$Ort','$Eigentuemer','$Mieter')")
     or die(
    mysql_error());
                                 }
                            
    ?>

    Wie bekomme ich die Arraywerte mit den Kundennummern richtig in die Datenbank? Normalerweise sollten dann im Feld Mieter mehere Kundenummern mit Komma getrennt oder so gespeichert sein.

    Vielen Dank schon ein mal im Vorraus.
    Zuletzt geändert von c-bass; 08.08.2005, 12:28.
    http://www.4webworking.de
    Das Resourcenarchiv für Webworker

  • #2
    lesen: http://www.php-resource.de/forum/sho...threadid=50454 und dein Post sofort editieren. Wenn es sich in 2 Std. nicht ändern, wird der Thread geschlossen

    Kommentar


    • #3
      ein tip


      PHP-Code:
      "<select name=Mieter[] size=4 multiple>"
      was ist damit [] ???
      Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

      Kommentar


      • #4
        ich dachte, dass muss darein für die array werte? meinst du nicht?
        http://www.4webworking.de
        Das Resourcenarchiv für Webworker

        Kommentar


        • #5
          PHP-Code:
          echo '<pre>'.print_r($_POSTtrue).'</pre>'
          und du siehst alles selbst.

          Kommentar


          • #6
            also die übergabe funktioniert schonmal.

            nun meckert er rum, dass ich mehr werte als spalten übergebe, aber genau dass soll doch auch passieren. er soll doch die Kundennummern imploden und als einen einzigen Wert in die DB geben:

            Column count doesn't match value count at row 1

            PHP-Code:
                                          mysql_query("INSERT INTO Objekte (ObjektnummerO,Strasse,Postleitzahl,Ort,Eigentuemer,Mieter)
             VALUES ('
            $ObjektnummerO','$Strasse','$Postleitzahl','$Ort',
            '
            $Eigentuemer', 'implode(', ', $Mieter)' )") or die(mysql_error()); 
            http://www.4webworking.de
            Das Resourcenarchiv für Webworker

            Kommentar


            • #7
              es wäre rücksichtsvoller deinerseits, die php-funktion auch vom php-interpreter ausführen zu lassen, anstatt sie als string in das sql-statement zu packen.

              Kommentar


              • #8
                Lass dir mal deine INSERT-Anweisung mit echo ausgeben und poste sie
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar

                Lädt...
                X