Ne, da ändert sich nichts... Das gibts doch gar nicht^^
Ankündigung
Einklappen
Keine Ankündigung bisher.
Tabellenfelder ansprechen
Einklappen
Neue Werbung 2019
Einklappen
X
-
Choba
-
PHP-Code:echo " <td><input type=\"image\" name=\"$i%$j\" src=$icons[$i][$j]></td>\n";
PHP-Code:echo ' <td><input type="image" name="'.$i.'%'.$j.'" src='.$icons[$i][$j].'></td>\n';
Gib einfach mal $lab[$i][$j] in jedem Schleifendurchlauf aus. Wenn der Wert nicht dem erwarteten entspricht, kannst du so deinen Fehler eingrenzen.
Zusätzlich noch der Standardhinweis an dieser Stelle:
Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL); und ini_set("display_errors", true);
3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
Kommentar
-
Choba
Also... Der Fehler ist anscheinend, dass ich die Werte aus dem Array falsch auslese...
Wenn ich $lab[$i][$j] so ausgebe, erhalte ich nur eine Tabelle mit [0][1][2]...[15] und das dann in 12 Spalten... also immer [$j].
Wie muss ich die Arraywerte denn dann richtig auslesen? Eigentlich müsste das doch funktionieren, oder nicht? Oder hab ich das Array falsch erzeugt? (Code s. oben)
Ich sehe da irgendwie keinen Fehler drin...
Edit: Mittlerweile glaube ich doch eher, dass ich das Array falsch erzeuge, da ich, wenn ich z.B.
echo "test:".$lab[$i][$j];
ausgebe nur das "test:" erhalte, dahinter nichts mehr... Also ist das Array anscheinend leer, aber warum? Ich hab es auch ganz am Anfang schon ohne die Zuweisung 0 => array(), 1 => array() gemacht, also direkt array(), array(), aber das hat gar nichts geändert... Sieht jemand irgendwas?
Edit2: So, ich hab den Fehler jetzt zwar gefunden, aber noch nicht so ganz verstanden
Ich hatte diese ganzen if-Verzweigungen und die tabelle in eine Funktion gepackt und dann am Ende aufgerufen. Das hat nicht funktioniert... Jetzt habe ich das alles einfach mal ohne Funktion gemacht und es funktioniert^^
Ist die Funktionsdefinition mit
"function name(){ ... }"
falsch?
Kommentar
-
Choba
Und schon wieder eine Frage, die ich mir selber leider nicht beantworten konnte...
Und zwar möchte ich die Variablen nicht wie im Beispiel von md5() per GET-Methode übergeben, sondern üebr POST, weil man sich nicht einfach auf irgendwelche Felder beamen können soll, in dem man die URL ändert...
Leider krieg ich das nicht so wirklcih hin...
Ich hab das jetzt so versucht:
Code:for ($i = 0; $i < 12; $i++) { echo " <tr>\n"; for($j = 0; $j < 16; $j++) { $a = ($j + 1) + ($i * 16); if($lab[$i][$j] == 0){ echo " <td><img src=\"Icons/Mauer.jpg\"></td>\n"; }elseif($lab[$i][$j] == 1){ echo " <td><input type=\"image\" name=\"{$a}\" src=\"Icons/Weg.jpg\"></td>\n"; }elseif($lab[$i][$j] == 2){ echo " <td><input type=\"image\" name=\"{$a}\" src=\"Icons/Indy.jpg\"></td>\n"; $c = $a; } } echo " </tr>\n"; } echo "</table>\n";
Code:for($i = 1; $i < 193; $i++){ if(isset($_POST['$i_x'])) $lab[floor($i / 17)][$i % 17] = 2; }
Kommentar
-
Zitat von Choba Beitrag anzeigenOder hab ich das Array falsch erzeugt?
Und stelle bitte, wenn es nicht bereits passiert ist, das error_reporting auf E_ALL und display_errors auf 1. Dann hat PHP die Chance, dich auf Fehler wie nicht definierte Variablen/Array-Elemente etc. selber hinzuweisen.
Ich hatte diese ganzen if-Verzweigungen und die tabelle in eine Funktion gepackt und dann am Ende aufgerufen. Das hat nicht funktioniert... Jetzt habe ich das alles einfach mal ohne Funktion gemacht und es funktioniert^^
(Auf diesen Fehler hätte dich das erwähnte error_reporting auch hingewiesen.)
Zitat von Choba Beitrag anzeigenUnd schon wieder eine Frage, die ich mir selber leider nicht beantworten konnte...
http://www.php.de/php-einsteiger/489...nsammlung.html
Leider krieg ich das nicht so wirklcih hin...
[...]
Nur geht das anscheinend nicht so einfach...
Schau dir als erstes an, ob dein Script auch wirklich den HTML-Code erzeugt, den du beabsichtigt hast.
Und validiere deinen HTML-Code, um auszuschließen, dass darin von dir gemachte Fehler clientseitig dafür sorgen, dass das ganz nicht wie gewünscht verarbeitet wird.
Danach kann man weitersehen.
Und noch generell: http://www.php.de/wiki-php/index.php...ging:Leitfaden - bitte unbedingt mal durcharbeiten.[SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]
Kommentar
-
Choba
Zitat von ChrisB Beitrag anzeigenDann hast du dir vermutlich keine Gedanken über den Geltungsbereich von Variablen gemacht - siehe http://www.php.net/manual/en/languag...bles.scope.php
(Auf diesen Fehler hätte dich das erwähnte error_reporting auch hingewiesen.)
Vielleicht solltest du dich erst noch mal ein bisschen mit den Grundlagen beschäftigen ... du scheinst von vielem wenig bis gar keine Ahnung zu haben, also übernehme dich nicht gleich mit so einem Spiel.
Das taugt als Problembeschreibung gar nichts.
Kommentar
-
Zitat von Choba Beitrag anzeigenIch hab ja nur die for-Schleifen und if-Abfragen in ne Funktion gepackt, das Array natürlich nicht... In der Funktion hab ich keine Variablen erzeugt...
Also es passiert überhaupt gar nichts...
Die Fähigkeit zum Debugging/Fehlersuche ist eine ganz wesentliche Eigenschaft eines Programmierers.[SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]
Kommentar
Kommentar