Also...
ich glaube, es ist simpler einfach das Script zu zeigen. Vielleicht hat ja auch jemand ne andere Idee...
Die Tabelle für die Umfragen (max. 10 Anworten):
// Die Tabelle
/*
CREATE TABLE Umfragen
(
id
int(3) NOT NULL auto_increment,
question
text NOT NULL,
answer1
varchar(255) NOT NULL default '',
count1
int(7) NOT NULL default '0',
answer2
varchar(255) NOT NULL default '',
count2
int(7) NOT NULL default '0',
answer3
varchar(255) NOT NULL default '',
count3
int(7) NOT NULL default '0',
answer4
varchar(255) NOT NULL default '',
count4
int(7) NOT NULL default '0',
answer5
varchar(255) NOT NULL default '',
count5
int(7) NOT NULL default '0',
answer6
varchar(255) NOT NULL default '',
count6
int(7) NOT NULL default '0',
answer7
varchar(255) NOT NULL default '',
count7
int(7) NOT NULL default '0',
answer8
varchar(255) NOT NULL default '',
count8
int(7) NOT NULL default '0',
answer9
varchar(255) NOT NULL default '',
count9
int(7) NOT NULL default '0',
answer10
varchar(255) NOT NULL default '',
count10
int(7) NOT NULL default '0',
begin
varchar(10) NOT NULL default '',
end
varchar(10) NOT NULL default '',
status
tinyint(1) NOT NULL default '1',
PRIMARY KEY (id
)
) TYPE=MyISAM;
*/
<?php
$counter = 0;
$sql = "SELECT * FROM Umfragen WHERE begin <= '". strtotime("now") ."' && end > '". strtotime("now") ."' && status = '1' LIMIT 1";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
print $row['question'];
if (!empty($row['answer1'])) $counter++;
if (!empty($row['answer2'])) $counter++;
if (!empty($row['answer3'])) $counter++;
if (!empty($row['answer4'])) $counter++;
if (!empty($row['answer5'])) $counter++;
if (!empty($row['answer6'])) $counter++;
if (!empty($row['answer7'])) $counter++;
if (!empty($row['answer8'])) $counter++;
if (!empty($row['answer9'])) $counter++;
if (!empty($row['answer10'])) $counter++;
if ($_POST['vote_umfrage']) {
print $_POST['hersteller'];
$sql = "UPDATE Umfragen SET [". $_POST['hersteller'] ."] = ([". $_POST['hersteller'] ."] + 1) WHERE id = '". $_POST['umfrageid'] ."'";
$query = mysql_query($sql);
}
?>
<form action="<?= $PHP_SELF; ?>" method="post">
<input type="hidden" name="umfrageid" value="<?= $row['id']; ?>" />
<ul class="umfrage">
<?php
// Inhalte anhand Index der Spalte ansprechen, jede zweite Spalte ist Antwort, beginnend bei Index 2
for ($i = 2; $i < (($counter * 2) + 1); ($i = $i + 2)) {
print "<li><input type="radio" name="hersteller" value="". $i ."" /> ". $row[$i] ."</li>\n";
}
unset($i);
unset($counter);
?>
</ul>
<div style="margin-top: 8px; text-align: right; margin-right: 6px;">
<input type="image" src="/buttons/vote.gif" name="vote_umfrage" value="Login" />
</div>
</form>
Hier habe ich durch die Schleife und vorher unbekannt Anzahl der Antworten keine andere Variante gefunden die Daten zu übertragen. Ich denke zu wissen, dass es auch die Möglichkeit gibt die Spalten answer1 im Ergebnis dann $row['answer1'] auszulesen, aber wie ich in dem Namen in einer Schleife die 1 da hochzählen kann, hab ich keine Ahnung...
Alles nachvollziehbar oder hab ich nun noch mehr Verwirrung gestiftet?
Gruß Patrick