CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
17.09.2009, 14:12:43
|
Anfänger
|
|
Registriert seit: Sep 2009
Alter: 37
Beiträge: 11
|
|
While Schleifen-Fehler
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.
PHP-Code:
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!
Code:
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"
}
}
|
17.09.2009, 14:21:35
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: While Schleifen-Fehler
Es wird keine Werte für Deine 2. Schleife geben bzw. stehst Du am Ende der Datensätze.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
17.09.2009, 14:43:52
|
Anfänger
|
|
Registriert seit: Sep 2009
Alter: 37
Beiträge: 11
|
|
AW: While Schleifen-Fehler
sry, aber ich verstehe nicht ganz.
Der soll das fetch_array in while #2 einfach nochmal ausführen, das tut er aber nicht und ich versteh leider nicht ganz. Ich habe schon probiert $werte durch ein 2d-array $werte[$j] zu ersetzen, das bei jeder while schleife ein neues array gebildet wird, aber das gab den exakt gleichen Effekt.
|
17.09.2009, 15:07:26
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: While Schleifen-Fehler
Zitat:
Zitat von fil3s
[...]
Der soll das fetch_array in while #2 einfach nochmal ausführen, das tut er aber nicht..
|
Dazu muß man sich aber am Anfang des Arrays befinden und nicht wie bei Dir am Ende (nach dem ersten Durchlauf) - verstanden?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
17.09.2009, 16:25:01
|
Anfänger
|
|
Registriert seit: Sep 2009
Alter: 37
Beiträge: 11
|
|
AW: While Schleifen-Fehler
Ah, ja jetzt hats geklickt!
Und dieses Problem kann ich umgehen indem ich einfach den query in die erste while-schleife setze, und somit bei jedem durchlauf einen neuen aufruf zu starten, dann wäre der zähler ja wieder auf null, oder?
|
17.09.2009, 17:04:32
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: While Schleifen-Fehler
Ja.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:20:21 Uhr.
|