fil3s
17.09.2009, 15:12:43
Hallo Community,
ich habe mal hier ein Problem mit einer eigentlich relativ simplen Abfrage aus einem Poll-Script. Diese Abfrage soll folgendes Bewerkstelligen:
1. Speichern der Frage und der Hauptattribute (z.B. Fragetyp(Checkbox, radio)) aus der Tabelle p_frage in ein array.
2. Speichern aller, der Frage zugehörigen, Auswahlmöglichkeiten mit Zusatzoptionen in das array von 1. aus der Tabelle p_werte.
function show_poll($umfrage)
{
$db = new my_database(); // Datenbankverbindung
$sel_questions = 'SELECT * FROM p_frage';
$sel_werte = 'SELECT * FROM p_werte';
$res = $db->query($sel_questions);
$get_werte = $db->query($sel_werte);
while ($namen = $db->fetch_array($res,0)) { //while #1 zum erfassen der frage mit hauptattributen
$frage[$namen['pos']]['title'] = $namen['name'];
$frage[$namen['pos']]['type'] = $namen['typ'];
$frage[$namen['pos']]['anzval'] = $namen['anzval'];
$frage[$namen['pos']]['id'] = $namen['id'];
if ($namen['typ'] == 'range_single' or $namen['typ'] == 'range_multi' ) {
$frage[$namen['pos']]['range'] = $namen['range'];
}
$i=0;
echo 'id:' .$namen['pos']. '<-- <br />';
while ($werte = $db->fetch_array($get_werte, 0)) { // while #2 Zur Erfassung der Auswahloptionen
// echo 'ping!<br />';
$i++;
$min = 'min_' .$i;
$max = 'max_' .$i;
echo '---'. $werte['frage_id'].'<br />';
if ($namen['pos'] == $werte['frage_id'] ) {
// echo '----möp!<br />';
echo $frage[$namen['pos']]['type'];
if ($frage[$namen['pos']]['type'] == 'range_single') {
// echo '--------blubb<br />';
$frage[$namen['pos']][$min] = $werte['min'];
$frage[$namen['pos']][$max] = $werte['max'];
$frage[$namen['pos']]['capt'] = $werte['title'];
} else {
// echo '--------bla<br />';
$val = 'val' .$i;
$frage[$namen['pos']][$val] = $werte['title'];
}
}
}
}
echo '<pre>';
var_dump($frage);
echo '<br />';
echo '</pre>';
}
Ich habe jetzt ein Problem: für die erste Frage, also den ersten Datensatz läuft das Script einwandfrei durch. Für alle folgenden Datensätze von p_frage speichert er nur noch die Werte aus p_frage und geht nicht mehr in die 2. While Schleife rein, also er übernimmt keine Auswahlmöglichkeiten mehr in das Array! Weiss jemand warum? Das Script muss ja in so weit in Ordnung sein, als das er den Ersten Datensatz komplett ausliest.
Ich hab hier nochmal ein var_dump angehängt!
array(5) {
[1]=>
array(7) {
["title"]=>
string(27) "Was machst du am Wochenende"
["type"]=>
string(8) "checkbox"
["anzval"]=>
string(1) "3"
["id"]=>
string(1) "1"
["val1"]=>
string(6) "Saufen"
["val2"]=>
string(6) "Zocken"
["val3"]=>
string(8) "Schlafen"
}
[2]=>
array(4) {
["title"]=>
string(12) "Was ist das?"
["type"]=>
string(5) "radio"
["anzval"]=>
string(1) "3"
["id"]=>
string(1) "2"
}
[3]=>
array(4) {
["title"]=>
string(44) "An welchen Wochentagen bleibst du lange auf?"
["type"]=>
string(8) "checkbox"
["anzval"]=>
string(1) "7"
["id"]=>
string(1) "3"
}
[4]=>
array(5) {
["title"]=>
string(30) "Wie oft zockst du im Internet?"
["type"]=>
string(12) "range_single"
["anzval"]=>
NULL
["id"]=>
string(1) "4"
["range"]=>
string(1) "6"
}
[5]=>
array(5) {
["title"]=>
string(25) "Was zockst du am meisten?"
["type"]=>
string(11) "range_multi"
["anzval"]=>
string(1) "3"
["id"]=>
string(1) "8"
["range"]=>
string(1) "4"
}
}
ich habe mal hier ein Problem mit einer eigentlich relativ simplen Abfrage aus einem Poll-Script. Diese Abfrage soll folgendes Bewerkstelligen:
1. Speichern der Frage und der Hauptattribute (z.B. Fragetyp(Checkbox, radio)) aus der Tabelle p_frage in ein array.
2. Speichern aller, der Frage zugehörigen, Auswahlmöglichkeiten mit Zusatzoptionen in das array von 1. aus der Tabelle p_werte.
function show_poll($umfrage)
{
$db = new my_database(); // Datenbankverbindung
$sel_questions = 'SELECT * FROM p_frage';
$sel_werte = 'SELECT * FROM p_werte';
$res = $db->query($sel_questions);
$get_werte = $db->query($sel_werte);
while ($namen = $db->fetch_array($res,0)) { //while #1 zum erfassen der frage mit hauptattributen
$frage[$namen['pos']]['title'] = $namen['name'];
$frage[$namen['pos']]['type'] = $namen['typ'];
$frage[$namen['pos']]['anzval'] = $namen['anzval'];
$frage[$namen['pos']]['id'] = $namen['id'];
if ($namen['typ'] == 'range_single' or $namen['typ'] == 'range_multi' ) {
$frage[$namen['pos']]['range'] = $namen['range'];
}
$i=0;
echo 'id:' .$namen['pos']. '<-- <br />';
while ($werte = $db->fetch_array($get_werte, 0)) { // while #2 Zur Erfassung der Auswahloptionen
// echo 'ping!<br />';
$i++;
$min = 'min_' .$i;
$max = 'max_' .$i;
echo '---'. $werte['frage_id'].'<br />';
if ($namen['pos'] == $werte['frage_id'] ) {
// echo '----möp!<br />';
echo $frage[$namen['pos']]['type'];
if ($frage[$namen['pos']]['type'] == 'range_single') {
// echo '--------blubb<br />';
$frage[$namen['pos']][$min] = $werte['min'];
$frage[$namen['pos']][$max] = $werte['max'];
$frage[$namen['pos']]['capt'] = $werte['title'];
} else {
// echo '--------bla<br />';
$val = 'val' .$i;
$frage[$namen['pos']][$val] = $werte['title'];
}
}
}
}
echo '<pre>';
var_dump($frage);
echo '<br />';
echo '</pre>';
}
Ich habe jetzt ein Problem: für die erste Frage, also den ersten Datensatz läuft das Script einwandfrei durch. Für alle folgenden Datensätze von p_frage speichert er nur noch die Werte aus p_frage und geht nicht mehr in die 2. While Schleife rein, also er übernimmt keine Auswahlmöglichkeiten mehr in das Array! Weiss jemand warum? Das Script muss ja in so weit in Ordnung sein, als das er den Ersten Datensatz komplett ausliest.
Ich hab hier nochmal ein var_dump angehängt!
array(5) {
[1]=>
array(7) {
["title"]=>
string(27) "Was machst du am Wochenende"
["type"]=>
string(8) "checkbox"
["anzval"]=>
string(1) "3"
["id"]=>
string(1) "1"
["val1"]=>
string(6) "Saufen"
["val2"]=>
string(6) "Zocken"
["val3"]=>
string(8) "Schlafen"
}
[2]=>
array(4) {
["title"]=>
string(12) "Was ist das?"
["type"]=>
string(5) "radio"
["anzval"]=>
string(1) "3"
["id"]=>
string(1) "2"
}
[3]=>
array(4) {
["title"]=>
string(44) "An welchen Wochentagen bleibst du lange auf?"
["type"]=>
string(8) "checkbox"
["anzval"]=>
string(1) "7"
["id"]=>
string(1) "3"
}
[4]=>
array(5) {
["title"]=>
string(30) "Wie oft zockst du im Internet?"
["type"]=>
string(12) "range_single"
["anzval"]=>
NULL
["id"]=>
string(1) "4"
["range"]=>
string(1) "6"
}
[5]=>
array(5) {
["title"]=>
string(25) "Was zockst du am meisten?"
["type"]=>
string(11) "range_multi"
["anzval"]=>
string(1) "3"
["id"]=>
string(1) "8"
["range"]=>
string(1) "4"
}
}