kostenloser Webspace werbefrei: lima-city


Finde den Fehler nicht^^

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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>\";
    }
  4. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.


    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
  5. Wo gibt denn dein Programm \"Fehler!\" aus, ich finde kein passendes echo....
  6. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.


    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
  7. oki, Fehler gefunden...(glaubich)

    im Moment:
    if(isset($_GET[\'to\']) && ($_GET[\'to2\']))

    sollte:
    if(isset($_GET[\'to\']) && isset($_GET[\'to2\']))
  8. Autor dieses Themas

    yazurah

    Kostenloser Webspace von yazurah, auf Homepage erstellen warten

    yazurah hat kostenlosen Webspace.


    oki, Fehler gefunden...(glaubich)

    im Moment:
    if(isset($_GET[\'to\']) && ($_GET[\'to2\']))

    sollte:
    if(isset($_GET[\'to\']) && isset($_GET[\'to2\']))


    Ich hasse solche Kleinigkeiten:mad:^^

    Danke!


  9. 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...?!
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!