Ok, es gibt doch dumme fragen, ich möcht meine gern zurückziehen.
Ich nehm alles zurück und behaupte das Gegenteil!
danke für die Hilfe!
(aber inzwischen ist schon das nächste Problem eingeschlagen -.- Es ist einfach zu lange her, das ich das gemacht habe)
Ok damit ich nicht gleich noch ein Thema aufmachen muss, und es ja direkt das aktuelle betrifft hier die nächste Hürde.
Da die Fragen bei der Umfrage recht komplex sind UND über einen Datenbankeintrag erstellt werden soll habe ich folgende Funktionen geschrieben:
PHP-Code:
function show_question($daten)
{
if ($daten['type'] == 'radio' or $daten['type'] == 'checkbox') {
echo '<label for="'.$daten['id'].'">Frage '.$daten['lfdNr'].': '.$daten['title'].'</label><br />';
echo '<div class="werte">';
for ($i = 1; $i <= $daten['anzval'] ; $i++) {
$val = 'val'.$i;
echo '<input type="'.$daten['type'].'" name="'.$daten['id'].'" value="'.$i.'"> '.$daten[$val].'<br />';
}
echo '</div>';
} elseif ($daten['type'] == 'range_single') {
echo '<label for="'.$daten ['id'].'">Frage '.$daten['lfdNr'].': '.$daten['title'].'</label><br />';
echo '<div class="werte">';
echo $daten['max_1'];
for ($i = 1; $i <= $daten['range']; $i++) {
$val = 'val'.$i;
echo '<input type="radio" name="'.$daten['id'].'" value="'.$i.'">';
}
echo $daten['min_1'];
echo '</div>';
} elseif ($daten['type'] == 'range_multi') {
echo '<label for="'.$daten['id'].'">Frage '.$daten['lfdNr'].': '.$daten['title'].'</label><br />';
echo '<div class="werte">';
for ($i = 0; $i < $daten['anzval']; $i++) {
$c_val = $i +1;
$min = 'min_'.$c_val;
$max = 'max_'.$c_val;
$capt = 'capt'.$c_val;
echo $daten[$capt].' - ';
echo $daten[$max];
for ($j=0; $j < $daten['range']; $j++) {
echo '<input type="radio" name="'.$daten['id'].'_'.$i.'" id="'.$j.'"> ';
}
echo $daten[$min];
echo '<br />';
}
}
}
Diese Funktion generiert aus einem Array ein Formular, eigentlich ganz simpel. Mein Problem jedoch ist die dazugehörige Datenbank: Ich habe 2 Tabellen, die direkt das Formular betreffen:
p_frage
Code:
|----------------------------------------
|Feld |Typ |Null|Standard
|------
|//**id**//|int(10)|Ja |NULL
|cat_id |int(10)|Ja |NULL
|nr |int(10)|Ja |NULL
|name |char(240)|Ja |NULL
|typ |char(100)|Ja |NULL
|anzval |int(2)|Ja |NULL
|pos |int(5)|Ja |NULL
== Daten für Tabelle p_frage
|1|1|1|Was machst du am Wochenende|checkbox|3|1
|2|1|2|Was ist das?|radio|3|2
|3|1|3|An welchen Wochentagen bleibst du lange auf?|checkbox|7|3
|4|1|4|Wie oft zockst du im Internet?|range_single|0|4
|8|1|5|Was zockst du am meisten?|range_multi|3|5
p_wert
Code:
===Datenbank usr_web1_7
== Tabellenstruktur für Tabelle p_werte
|------
|Feld|Typ|Null|Standard
|------
|//**id**//|int(10)|Ja|NULL
|frage_id|int(10)|Ja|NULL
|title|char(200)|Ja|NULL
|max|char(20)|Ja|NULL
|min|char(20)|Ja|NULL
|range|int(2)|Ja|NULL
== Daten für Tabelle p_werte
|1|1|Saufen| | |NULL
|2|1|Zocken| | |NULL
|3|1|Schlafen| | |NULL
|4|2|Brot|NULL|NULL|NULL
|5|2|Wurst|NULL|NULL|NULL
|6|2|Käse|NULL|NULL|NULL
|8|3|Montag|NULL|NULL|NULL
|9|3|Dienstag|NULL|NULL|NULL
|10|3|Mittwoch|NULL|NULL|NULL
|11|3|Donnerstag|NULL|NULL|NULL
|12|3|Freitag|NULL|NULL|NULL
|13|3|Samstag|NULL|NULL|NULL
|14|3|Sonntag|NULL|NULL|NULL
|15|4| |täglich|nie|6
|16|5|CoD4|täglich|nie|4
|17|5|BF2142|täglich|nie|4
|18|5|Aion|täglich|nie|4
(BTW, das sind nur Platzhalterfragen =) )
Soweit, so gut. Oder nicht? Aufgrund der großen Menge an möglichen Antworten und der starken variabilität der Fragen habe ich diese Struktur gewählt. Jedoch bekomme ich es nicht zurande, diese beiden in der Art auszulesen, dass ich sie in ein Array prügeln kann, das die Fehlerfreie Generierung des Formulars ermöglicht.
Ich weiss nicht ob ich inzwischen einen überdurchschnittlichen Tunnelblick entwickelt habe, weil ich schon seit Montag morgen daran arbeite, oder was ich falsch mach, aber weiter komme ich nicht, da es schon irgendwo klemmt:
PHP-Code:
function show_poll($umfrage)
{
$db = new my_database();
$sel_questions = 'SELECT p_frage.id FROM p_cat,p_frage WHERE p_cat.umfrage_id='.$umfrage.' AND p_frage.cat_id = p_cat.id';
echo $sel_questions.'<br />';
$res = $db->query($sel_questions);
$num = $db->num_rows($res,0);
while ($fragen = $db->fetch_array($res,0)) {
$get_question = 'SELECT * FROM p_frage WHERE p_frage.id='.$fragen['id'];
$question = $db->fetch_array($get_question);
$get_wert = 'SELECT * FROM p_werte WHERE frage_id='.$fragen['id'];
while ($values = $db->fetch_rows($get_wert)) {
echo 'blubb!'; // hier habe ich irgendwo eine endlos schleife produziert weil die ganze Seite voll-"geblubbt" wird!
}
}
}