Ergebnis 1 bis 5 von 5

Thema: Beurteilungsscript

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

    Standard Beurteilungsscript

    Hallo!
    Bin PHP-Newbie und stehe gerade ein bisschen an ;-(.
    Und zwar erstelle ich dynamisch einen Fragebogen (eine Beurteilung eigentlich).

    Code:
    if (mysql_num_rows($ergebnis)) {
      while($row = mysql_fetch_array($ergebnis))
      {           
         $person= $row[0];
         echo "$person
    <input type=\"radio\" name=\"Frage1&#91;&#123;$person&#125;&#93;\" value=\"1\">
     <input type=\"radio\" name=\"Frage1&#91;&#123;$person&#125;&#93;\" value=\"2\">
    
    <input type=\"radio\" name=\"Frage2&#91;&#123;$person&#125;&#93;\" value=\"1\">
       <input type=\"radio\" name=\"Frage2&#91;&#123;$person&#125;&#93;\" value=\"2\">
    &#125;
    Das ganze wird folgendermaßen weiterverarbeitet:
    Code:
    $s = $i;    
    $f = "Frage".$i; 
    $array&#91;$f&#93; = $_POST&#91;$f&#93;;
    for &#40;$i=1; $i<3; $i++ &#41; &#123;
    foreach &#40;$array&#91;$f&#93; as $key => $element&#41; &#123;
            echo "In '".$key."' steht '".$element."'
    \n";
    
            $Testperson = $key;
            $f = $element;         
          
            $query = "INSERT INTO bewertung &#40;Testperson, Frage1&#41; VALUES &#40;'$key', '$element'&#41;";
            $result = mysql_query&#40;$query&#41; or die&#40;'Query failed&#58; ' . mysql_error&#40;&#41;&#41;;
    &#125;
    Wie ihr seht werden zu jeder Person (die aus der Datenbank geholt werden) jeweils 2 Fragen erstellt. Wenn ich mir alle POST ausgeben lasse schaut das folgendermaßen aus:

    array(1) {
    ["Frage1"]=>
    array(3) {
    ["Name1"]=>
    string(1) "1"
    ["Name2"]=>
    string(1) "2"
    ["Name3"]=>
    string(1) "1"
    }
    }
    Also eigentlich genauso wie ich es möchte. Doch wie kann ich das jetzt in die DB schreiben? Also dass bsp. Name1 nur einmal erstellt wird und zu diesem Eintrag dann die jeweiligen Werte aus dem Formular hinzugefügt werden:

    Name Frage1 Frage2 Frage3
    Name1 1 2 0
    Name2 3 1 2
    Name3 2 2 3

    Und so weiter...
    Hoffe das ist halbwegs verständlich, falls nicht könnte ich den ganze Code posten.
    Danke!
    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
    Azubi(ne)
    Registriert seit
    16.06.2007
    Beiträge
    70
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo!
    Ich bin mir zwar nicht ganz sicher, ob es das ist, was du suchst, aber wie wäre es mit:
    Code:
    $query = "UPDATE
        bewertung
    SET
        Frage1 = '$element'
    WHERE
        Testperson = '$key' ";
    $result = mysql_query&#40;$query&#41; or die&#40;'Query failed&#58;'.mysql_error&#40;&#41;&#41;;
    Die Tabellenwerte (Frage1) werden hier überall da, wo in der Spalte "Testperson" der Name $key steht, mit $element neu belegt.
    LG
    nif7

  3. #3
    HTML Newbie
    Themenstarter

    Registriert seit
    25.04.2007
    Beiträge
    9
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hm, nicht so ganz. Hier würde er mir ja nur jeweils in die Frage1 schreiben. Diese müsste ich dann mit $f ersetzen, oder?
    also:
    Code:
    SET
        $f = '$element'
    Weil ich brauche ja Frage1, Frage2 etc. (plus die dazuhgehörigen Werte).
    Wäre es grundsätzlicher nicht geschickter 2 Tables zu erstellen?

    1. Table - Personen
    Feld 0: ID
    Feld 1: Namen

    2. Table - Bewertungen
    Feld 0: ID
    Feld 1: ID von 'Personen'
    Feld2: Frage
    Feld3: Bewertung

    Dann könnte ich die Bewertungen den jeweiligen Personen zuordnen. Also theoretisch - praktisch wüsst ich grad nicht wie ich das umsetzen könnte .

    Danke auf jeden Fall mal!

  4. #4
    HTML Newbie
    Themenstarter

    Registriert seit
    25.04.2007
    Beiträge
    9
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Habs schon fast geschafft...

    Code:
    for &#40;$i=1; $i<3; $i++ &#41; &#123;
        
    $zahl = "Frage".$i; 
    $array&#91;$zahl&#93; = $_POST&#91;$zahl&#93;;
    
    
    
    foreach &#40;$array&#91;$zahl&#93; as $key => $wert&#41; &#123;
            echo "In '".$key."' steht bei '".$zahl."' '".$wert."'
    \n";
    
            $Name = $key;
            $zahl = $wert;         
    if &#40;$i==1&#41;&#123;
    
            $query = "INSERT INTO personen &#40;Name&#41; VALUES &#40;'$key'&#41;";
            $result = mysql_query&#40;$query&#41; or die&#40;'Query failed&#58; ' . mysql_error&#40;&#41;&#41;;
    &#125;
    
    
    $aendern = "UPDATE personen SET Frage$zahl = '$wert' WHERE Name = '$key' "; 
            $ergebnis = mysql_query&#40;$aendern&#41; or die&#40;'Query failed&#58; ' . mysql_error&#40;&#41;&#41;;
       &#125;
    &#125;
    Funktioniert auch schon beinahe:
    Name Frage1 Frage2
    Name3 2
    Name2 1
    Name1 1 2

    Beim ersten Eintrag funktioniert alles korrekt, also die korrekten Werte sowohl in Frage1 als auch Frage2. Könnt ihr mir sagen woran das liegt dass bei Name2 nur die Frage1, bei Name3 nur die Frage2 geschrieben wird?

  5. #5
    HTML Newbie
    Themenstarter

    Registriert seit
    25.04.2007
    Beiträge
    9
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Mittlerweile funktionierts, ein Problem hab ich allerdings noch.

    Code:
    $y = $_POST&#91;'name'&#93;;
    
    echo $y;
    
    for &#40;$i=1; $i<3; $i++ &#41; &#123;
        
    $zahl = "Frage".$i; 
    $array&#91;$zahl&#93; = $_POST&#91;$zahl&#93;;
    
    
    foreach &#40;$array&#91;$zahl&#93; as $key => $wert&#41; &#123;
            echo "In '".$key."' steht bei '".$zahl."' der Wert '".$wert."'
    \n";
    
    
            $Name = $key;
            $Abteilung = $y;
            $Wert = $wert;         
    
        if &#40;$i == 1&#41;&#123;
    
            $query = "INSERT INTO personen &#40;ID, Name, Abteilung&#41; VALUES &#40;NULL, '$key', '$y'&#41;";
            $result = mysql_query&#40;$query&#41; or die&#40;'Query failed&#58; ' . mysql_error&#40;&#41;&#41;;
    &#125;
    
    
    $aendern = "UPDATE personen SET $zahl = '$wert' WHERE ID = LAST_INSERT_ID&#40;&#41;"; 
            $ergebnis = mysql_query&#40;$aendern&#41; or die&#40;'Query failed&#58; ' . mysql_error&#40;&#41;&#41;;
    Spreche ich statt der ID den jeweiligen Namen an, werden IMMER logischerweise die Werte beim Namen überschrieben. Mit der ID ist das Problem dass die Personen nur bei $i == 1 INSERTED werden, was auch nicht ideal ist...
    Wüsste jemand vielleicht einen alternativen Lösungsansatz?

Stichworte

Berechtigungen

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