[DRINGEND] Script zum editieren von Polls

Mh, ok, ich hab den Fehler... er liegt schon eine Datei davor:

PHP:
     $sum = mysql_query("SELECT COUNT(Antwort) AS Antwort FROM poll_antworten WHERE ID = '".$ID."'");
     $get_sum = mysql_fetch_array($sum);
     $a_sum = $get_sum['Antwort'];
     echo "<input type=\"hidden\" name=\"a_sum\" value=\"$a_sum\">";

...echo $a_sum; ergibt 0, warum auch immer :/

ich versuche grade, die Anzahl der Antworten etwas anders zu ermitteln, aber wenn jemand eine Idee hat, warum das so nicht funktioniert, darf er sie natürlich gerne posten

OK, erster fataler Fehler: WHERE ID = '".$ID."' <--- völliger Schwachsinn, muss natürlich PollID heißen... jetzt bin ich ja schon mal nen Schritt weiter

mfg
unlord
 
Zuletzt bearbeitet:
Ich glaube der zweite Fehler liegt bei

PHP:
for($i=$sum;$i>0;$i--) { 
                $sql = "UPDATE 
                              poll_antworten 
                        SET 
                              Antwort = '$an[$i]' 
                        WHERE 
                              PollID = '$ID' "; 
                mysql_query($sql) OR die(mysql_error()); 
}

Antwort = '$an[$i]' kann ja gar nicht gehen, da die Arrays bei 0 anfangen... angenommen $sum = 2, dann ist $i auch 2... wenn $sum aber 2 ist dann heißen die Arrays nur $an['0'] und $an['1'], also gibt die for Schleife beim ersten Durchlauf einen Fehler aus!

mfg
unlord
 
Ich hab jetzt ganz simpel einfach mal $sum--; gemacht, funktioniert aber nicht...

es gibt keine Notice, aber irgendwie werden beide Antworten dann in die zweite Angabe verändert bzw. in das, was im zweiten Durchlauf $an['$i'] ist

mfg
unlord
 
Ok habs... man muss anstatt $sum > 0 $sum > -1 schreiben... ist ja auch irgendwie logisch, da der Array bei 0 anfängt zu zählen :)

mfg
unlord
 
Zuletzt bearbeitet:
?

Ich habe jetzt mein Script so geschrieben:

PHP:
  for($i=$new_sum;$i>-1;$i--) {
      $sql = "UPDATE
                    poll_antworten
              SET
                    Antwort = '".$an[$i]."'
              WHERE
                    PollID = '$ID'";
      mysql_query($sql) OR die(mysql_error());
  }

...doch es geht nicht! Es wird wieder nur $an['0'] für beide Antworten eingesetzt... wenn ich aber echo $an[$i]; in das Script schreibe, funktioniert es genau richtig, es werden also beide Antworten ausgegeben... woher kommt dieser Fehler?

mfg
unlord
 
ok mir ist jetzt auch klar warum... eigentlich ganz simpel, da ja alle Antwort-Spalten beim letzten Durchlauf geändert werden die die gleiche PollID haben... hat einer eine Idee wie man das umgehen könnte? Gibt es vielleicht eine Möglichkeit die INT Werte der Spalte ID für alle Antworten zu bekommen die eine PollID von X haben?

mfg
unlord

EIDT: Hab jetzt einfach versucht, immer die PollID der Spalten zu ändern, die schon geupdatet wurden, so findet die for Schleife dann keine Spalte mehr mit der PollID X und überschreibt nicht alles:

PHP:
<?php
  include "connect.php";
  $PollID = $_POST['pollid'];
  $count = $_POST['counted'];
  $count_news = $count - 1;
  $count_new = $count - $count_news;
  $new_id = $PollID + 1;
  echo $new_id;
  for($i=$count_new;$i<$count;$i++) {
      $sql = "UPDATE
                    poll
              SET
                    Antwort = '".$_POST["$i"]."'
              WHERE
                    PollID = '".$PollID."'";
      mysql_query($sql) OR die(mysql_error());
      $set_new_id = "UPDATE
                           poll
                     SET
                           PollID = '".$new_id."'
                     WHERE
                           Antwort = '".$_POST["$i"]."'";
      mysql_query($set_new_id) OR die(mysql_error());
  }
?>

...aber irgendwie nimmt er jetzt für alle Spalten den Wert von der ersten angabe, also von $_POST['1'] !
 
Zuletzt bearbeitet:
Zurück