Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Alle Einträge aus einzelnen foreach in DB schreiben

  1. #1
    Gast

    Standard Alle Einträge aus einzelnen foreach in DB schreiben

    Hallo!
    Ich weiss gerade nicht weiter...
    Und zwar habe ich folgendes Skript mit dem ich aus dynamisch erzeugten Formularen DB Einträge mache. Das Problem ist dass ich (logischerweise) immer nur den letzten Eintrag INSERTe. Könnte ich prinzipiell alles nochmal in eine Schleife schmeissen oder was tätet ihr vorschlagen um alle Einträge zu übernehmen?

    Code:
    $array['Frage1'] = $_POST['Frage1'];
    $array['Frage2'] = $_POST['Frage2'];
    
    	  foreach ($array['Frage1'] as $key => $element1) {
            echo "In '".$key."' steht '".$element1."'
    \n";
     
    }
        foreach ($array['Frage2'] as $key => $element2) {
            echo "In '".$key."' steht '".$element2."'
    \n";
    }
        
    	$Lehrender = $key; 
    	$Frage1 = $element1;
    	$Frage2 = $element2;   
        $query = "INSERT INTO bewertung (id, Lehrender, Frage1, Frage2) VALUES ('', '$key', '$element1', '$element2')";    
        
    	  echo "<pre>\n";
        print_r&#40;$array&#41;;
        echo "</pre>\n";
    
    	$result = mysql_query&#40;$query&#41; or die&#40;'Query failed&#58; ' . mysql_error&#40;&#41;&#41;;
        mysql_close&#40;&#41;;
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ich raff grade gar nicht was das alles soll
    wozu die foreach ?
    wozu überhaupt array ? wieso auch nochh gleich 2 ???
    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  3. #3
    Gast

    Standard

    Ok...
    Das ganze deswegen weil mein Formular folgendermaßen aufgebaut ist:


    Code:
    while&#40;$row = mysql_fetch_array&#40;$ergebnis&#41;&#41;
      &#123;           
         $rname = $row&#91;0&#93;;
         echo "$rname
      <table>
       <tr><td>Frage1</td>
       <td><input type=\"radio\" name=\"Frage1&#91;&#123;$rname&#125;&#93;\" value=\"1\"></td>
       <td><input type=\"radio\" name=\"Frage1&#91;&#123;$rname&#125;&#93;\" value=\"2\"></td>
       <td><input type=\"radio\" name=\"Frage1&#91;&#123;$rname&#125;&#93;\" value=\"3\"></td>
        </tr>
       
       <tr><td>Frage2</td>
       <td><input type=\"radio\" name=\"Frage2&#91;&#123;$rname&#125;&#93;\" value=\"1\"></td>
       <td><input type=\"radio\" name=\"Frage2&#91;&#123;$rname&#125;&#93;\" value=\"2\"></td>
       <td><input type=\"radio\" name=\"Frage2&#91;&#123;$rname&#125;&#93;\" value=\"3\"></td>
    </table>
    Ich lese also Frage1, Frage2 als Array aus um die jeweiligen Werte zu bekommen. Diese werden dem jeweiligen Namen zugeordnet und entsprechend in die DB geschrieben. Ich poste mal print_r($array);, vielleicht wird's dann klarer.

    Array
    (
    [Frage1] => Array
    (
    [Name1] => 1
    [Name2] => 2
    [Name3] => 1
    )

    [Frage2] => Array
    (
    [Name1] => 2
    [Name2] => 1
    [Name3] => 2
    )

    )
    Aber du kannst recht haben, jede einzelne "Frage" mittels foreach auszulesen ist wohl nicht wirklich elegant. Mmh... wie könnte ich das den anders machen?

  4. #4
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ok, ja jetze versteh ichs
    ich seh im moment gar keine andere möglichkeit, als das mit noch einer foreach zu lösen. vll liegts auch daran, dass ich noch viel zu müde bin
    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  5. #5
    Gast

    Standard

    Auwei, dass hatte ich mir schon gedacht.
    Nur wie könnte ich das anstellen *grübel*.

  6. #6
    Gast

    Standard

    Ok, ich würd' es grundsätzlich so machen. Ich scheiter' allerdings an einem etwas peinlichem Problem.
    Nämlich bin ich zu blöd um herauszufinden wie ich das $i aus der Schleife richtig hinzufügen kann...

    Code:
    for &#40;$i=0; $i<3; $i++ &#41; &#123;
    
    $array&#91;'Frage'&#93;&#91;$i&#93; = $_POST&#91;'Frage'&#93;&#91;$i&#93;;
    
    
    	 foreach &#40;$array&#91;'Frage'&#93;&#91;$i&#93; as $key => $element&#91;$i&#93;&#41; &#123;
            echo "In '".$key."' steht '".$element&#91;$i&#93;."'
    \n";
       
    	
    &#125;
    &#125;

  7. #7
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    also da soll dann auch Frage1 etc stehen ?

    dann machs mal so:

    $f = "Frage".$i;
    $array[$f] = $_POST[$f];
    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  8. #8
    Gast

    Standard

    So...
    Mal vielen Dank! Stehe jetzt vor der letzten großen Hürde:

    Code:
    for &#40;$i=0; $i<3; $i++ &#41; &#123;
    $s = $i;	
    $f = "Frage".$i; 
    $array&#91;$f&#93; = $_POST&#91;$f&#93;;
    
    
    foreach &#40;$array&#91;$f&#93; as $key => $element&#41; &#123;
            echo "In '".$key."' steht '".$element."'
    \n";
    
    if &#40;$i==1&#41;&#123;
            
    	$Lehrender = $key; 
    	$f = $element;   
        $query = "INSERT INTO bewertung &#40;Lehrender&#41; VALUES &#40;'$key'&#41;";
        $result = mysql_query&#40;$query&#41; or die&#40;'Query failed&#58; ' . mysql_error&#40;&#41;&#41;;
       
    &#125;
    // select und erneutes INSERT
    &#125;
    &#125;
     mysql_close&#40;&#41;;
    Ich würde jetzt gerne zum Lehrenden-Eintrag (dieser wird nur einmal durchgeführt)
    die jeweiligen Werte einsetzen.

    So hätt' ich mir zumindest das Auslesen mal vorgestellt:

    Code:
    $result1 = mysql_query&#40;"SELECT $key FROM bewertung"&#41;;
    if &#40;!$result1&#41; &#123;
        echo 'Abfrage konnte nicht ausgeführt werden&#58; ' . mysql_error&#40;&#41;;
        exit;
    &#125;
    $ergebnis = mysql_fetch_array&#40;$result1&#41;;
    echo $ergebnis;
    &#125;
    
    Allerdings funzt das nicht so richtig weil mir mittels $key nur der Vorname selected wird.
    Aber der Gedankengang ist schon richtig, oder?
    PS&#58; Hoffe dass du übrigens schon munter bist
    .

  9. #9
    HTML Newbie
    Registriert seit
    25.04.2007
    Beiträge
    9
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Irgendwie will's mir nicht gelingen.
    Könnte mir vielleicht jemand einen Tipp geben wie ich das lösen könnte?

  10. #10
    Kaiser(in)
    Registriert seit
    09.12.2005
    Alter
    29
    Beiträge
    2.496
    Danke
    1
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    also
    was genau holst du aus der datenbank ? (für das formular)
    was soll der user da eigentlich angeben und zu welchem zweck ?
    vll kann mans anders ja einfacher / besser lösen
    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

Ähnliche Themen

  1. Warum wurden alle meine Einträge im Gästebuch gelöscht.
    Von Runei im Forum Forum-Hilfe.de intern
    Antworten: 4
    Letzter Beitrag: 25.02.2007, 11:35
  2. name der einzelnen fenster
    Von taess im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 18.01.2007, 12:18
  3. Foreach problem
    Von JDF1976 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 17.01.2007, 20:19
  4. Foreach will nicht ganz wie ich.
    Von Barret im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 11.01.2007, 15:15
  5. foreach varialbe extrahiren
    Von pindakaas im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 14.01.2006, 16:17

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •