Finde den Fehler nicht^^
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
bewegen
code
denkfehler
entschuldigung
fehler
feld
jemand
liegen
moment
part
passendes echo
pos
programm
re
schleife
schleifen
test
type
unterschied
variablen code
-
Hi,
ich hab einmal diesen ref="/tag/code">Code:
class grid { var $x=16; var $y=16; var $type; function initiate() { echo \"<table><tr>\"; for($i=1;$i<$this->x;$i++) { echo \"<tr><td id=\\\"spalte\\\" title=\\\"Feld: $i,0\\\"><a href=\\\"walk.php?to=$i&to2=0\\\">\"; $this->get_type($i,0); echo \"<img src=\\\"$this->type.bmp\\\" border=\\\"0\\\"></a>\"; $this->reset_type(); for($j=1;$j<$this->y;$j++) { echo \"<td id=\\\"zeile\\\" title=\\\"Feld: $i,$j\\\"><a href=\\\"walk.php?to=$i&to2=$j\\\">\"; $this->get_type($i,$j); echo \"<img src=\\\"$this->type.bmp\\\" border=\\\"0\\\"></a></td>\"; $this->reset_type(); } echo \"</td></tr>\"; } echo \"</table>\"; } function get_type($i,$j) { mysql_connect(\"localhost\",\"root\",\"\"); mysql_select_db(\"test\"); $res = mysql_query(\"SELECT type FROM field WHERE field=\'$i,$j\'\"); while ($erg=mysql_fetch_assoc($res)) { $this->type = $erg[\'type\']; } } function reset_type(){ $this->type=\"\"; } }
Und diesen:
if(isset($_GET[\'to\']) && ($_GET[\'to2\'])) { $i=$_GET[\'to\']; $j=$_GET[\'to2\']; mysql_connect(\"localhost\",\"root\",\"\") or die(mysql_error()); mysql_select_db(\"test\") or die(mysql_error()); $res = mysql_query(\"SELECT pos FROM user WHERE id=\'1\'\") or die(mysql_error()); while ($erg=mysql_fetch_assoc($res)) { $part = explode(\",\",$erg[\'pos\']); if($i>$part[0]) { $x = $i-$part[0]; } else { $x = $part[0]-$i; } if($j>$part[1]) { $y = $j-$part[1]; } else { $y = $part[1]-$j; } $unterschied = $x+$y; echo $unterschied; }
Ja, der Code ist noch nicht wirklich sauber, es ist im Moment zu Test-Zwecken.
Jetzt meine Frage: Ich habe ein Gitternetzfeld von einigen Feldern erstellt, auf dem man sich bewegen kann. Der Code erzeugt ein Anklickbares Gitternetzfeld, wo jedes Feld als Bild dargestellt wird und man die Bilder anklickt, um sich zu bewegen. Wenn ich z.B. auf 1,1 stehe und auf 2,5 klicke bewegt man sich nun nach 2,5 und es wird in die DB eingetragen. Der 2te Codeteil generiert mir dabei die Anzahl der Felder, die der Spieler zugehen hat. Daraus will ich später berechnen, wie lange er geht. Von 1,1 nach 2,5 wären das 5 Felder (1 nach Rechts und 4 nach Unten).
Dieser Code funktioniert wunderbar, solange ich nicht die Linke Spalte benutze, also das was in der ersten for Schleife des ersten Codes produziert wird. Wenn ich dort einen Link anklicke kommt nur: \"Fehler!\" (s. 2ter Code).
Warum und wie kann ich das ändern?
Und: Ist mein Code zur Berechnung der Laufweite richtig?
Danke!
Yazurah -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hm.... entweder hab ich nen denkfehler, oder du...oder beide :D
also deine schleife um dein feld zu generieren würde ich, etwas anders lösen
evtl liegt es schon daran... denn so, wie du es hast, kommt´s mir ganz schön komisch vor...
also... nur ma grob, und ohne deine variablen...
for($i=0;$i<[längey];$i++) { echo \"<tr>\"; for($j=0;$j<[längex];$j++) { echo \"<td>Feld $x:$y </td>\"; } echo \"</tr>\"; }
-
hm.... entweder hab ich nen denkfehler, oder du...oder beide :D
also deine schleife um dein feld zu generieren würde ich, etwas anders lösen
evtl liegt es schon daran... denn so, wie du es hast, kommt´s mir ganz schön komisch vor...
also... nur ma grob, und ohne deine variablen...
for($i=0;$i<[längey];$i++) { echo \"<tr>\"; for($j=0;$j<[längex];$j++) { echo \"<td>Feld $x:$y </td>\"; } echo \"</tr>\"; }
Ähmm Entschuldigung, aber genauso habe ich meine beiden Schleifen! Erst die erste for Schleife und dadrinnen die zweite. Zusammen wird dann so das Gitternetzfeld erstellt. Genauso habe ich das...
Der Code, den ich da benutze ist eigentlich schon richtig, bloß wird leider auf der Linken Spalte also dem hier:
function initiate() { echo \"<table><tr>\"; for($i=1;$i<$this->x;$i++) { echo \"<tr><td id=\\\"spalte\\\" title=\\\"Feld: $i,0\\\"><a href=\\\"walk.php?to=$i&to2=0\\\">\"; $this->get_type($i,0); echo \"<img src=\\\"$this->type.bmp\\\" border=\\\"0\\\"></a>\"; $this->reset_type();
Angezeigt, wenn man auf den Link klickt: Fehler!
Der Fehler muss irgendwo in walk.php?to=$i&to2=0 liegen, aber ich weiß nicht, was daran falsch sein soll.
Kann mir das jemand erklären?
Yazurah -
Wo gibt denn dein Programm \"Fehler!\" aus, ich finde kein passendes echo....
Man manchmal bin ich echt blöd^^ Hier das habe ich vergessen einzufügen:
if(isset($_GET[\'to\']) && ($_GET[\'to2\'])) { $i=$_GET[\'to\']; $j=$_GET[\'to2\']; mysql_connect(\"localhost\",\"root\",\"\") or die(mysql_error()); mysql_select_db(\"test\") or die(mysql_error()); $res = mysql_query(\"SELECT pos FROM user WHERE id=\'1\'\") or die(mysql_error()); while ($erg=mysql_fetch_assoc($res)) { $part = explode(\",\",$erg[\'pos\']); if($i>$part[0]) { $x = $i-$part[0]; } else { $x = $part[0]-$i; } if($j>$part[1]) { $y = $j-$part[1]; } else { $y = $part[1]-$j; } $unterschied = $x+$y; echo $unterschied; } else { echo \"Fehler!\"; }
Yazurah
Beitrag geändert: 29.7.2008 11:11:07 von yazurah -
oki, Fehler gefunden...(glaubich)
im Moment:
if(isset($_GET[\'to\']) && ($_GET[\'to2\']))
sollte:
if(isset($_GET[\'to\']) && isset($_GET[\'to2\'])) -
oki, Fehler gefunden...(glaubich)
im Moment:
if(isset($_GET[\'to\']) && ($_GET[\'to2\']))
sollte:
if(isset($_GET[\'to\']) && isset($_GET[\'to2\']))
Ich hasse solche Kleinigkeiten^^
Danke! -
hm.... entweder hab ich nen denkfehler, oder du...oder beide :D
also deine schleife um dein feld zu generieren würde ich, etwas anders lösen
evtl liegt es schon daran... denn so, wie du es hast, kommt´s mir ganz schön komisch vor...
also... nur ma grob, und ohne deine variablen...
for($i=0;$i<[längey];$i++) { echo \"<tr>\"; for($j=0;$j<[längex];$j++) { echo \"<td>Feld $x:$y </td>\"; } echo \"</tr>\"; }
Ähmm Entschuldigung, aber genauso habe ich meine beiden Schleifen! Erst die erste for Schleife und dadrinnen die zweite. Zusammen wird dann so das Gitternetzfeld erstellt. Genauso habe ich das...
Der Code, den ich da benutze ist eigentlich schon richtig, bloß wird leider auf der Linken Spalte also dem hier:
function initiate() { echo \"<table><tr>\"; for($i=1;$i<$this->x;$i++) { echo \"<tr><td id=\\\"spalte\\\" title=\\\"Feld: $i,0\\\"><a href=\\\"walk.php?to=$i&to2=0\\\">\"; $this->get_type($i,0); echo \"<img src=\\\"$this->type.bmp\\\" border=\\\"0\\\"></a>\"; $this->reset_type();
Angezeigt, wenn man auf den Link klickt: Fehler!
Der Fehler muss irgendwo in walk.php?to=$i&to2=0 liegen, aber ich weiß nicht, was daran falsch sein soll.
Kann mir das jemand erklären?
Yazurah
ja, entschuldigung... auch wenn du nun schon den fehler hast... aber meine lösung is zwar ansich die selbe wie deine, aber kürzer!
naja... man kann auch von münchen nach berlin über rom fahren... ne... :D
erklärung: bei mir wir die ausgabe nur in der zweiten schleife gemacht, und nix extra in der ersten.... eine änderung, sagen wir am link, brauch somit nur einmal gemacht werden. gut, bei 2 mal ändern is auhc noch nich so wild...aber irgendwann mekrst du es schon.... hoffe du verstehst nun, wan an meiner anders is, als an deiner...?!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage