Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] nawigacja
Forum PHP.pl > Forum > Przedszkole
Chemiq
mam kod nawigacji. jest już niby zrobiony ale nie działa tak jak trzeba. mogę sięporuszać tylko w prawo i w dół. nie działają przyciski w lewo i do góry a nie mam pojęcia dlaczego. może przeoczyłem jakiś znak? sprawdzałem kod kilka razy czy wszystko się zgadza i nie znalazłem. może ktoś inny znajdzie błąd.

jeszcze jedno co do kodu. zmienne: $gora, $dol, $prawa i $lewa są odczytywane co sprawdzałem poleceniami echo na końcu kodu.

oto on:
  1. <? // "las.php"
  2. include ("sprawdzdostep.php");
  3.  
  4. $zapytanie = "SELECT * FROM `uzytkownik` WHERE login = '$login' AND haslo = '$haslo'";
  5. $wykonaj = mysql_query($zapytanie);
  6. while ($wiersz = mysql_fetch_array($wykonaj)) {
  7. $x = $wiersz[x];
  8. $y = $wiersz[y];
  9. }
  10.  
  11. echo ("<font class='tekst'>Witaj w lesie. Mozesz wykonac tu questy oraz znalezc rózne cenne rzeczy.</font>");
  12.  
  13. include ("las/chodz.php");
  14.  
  15. echo ("
  16. <table style='width: 70px; height: 50px; margin: 0px 12px 0px auto'>
  17. <tr style='height: 11px'><td style='text-align: center' colspan='3'>
  18.  <form method='post' action='index.php?id=20'>
  19. <input type='hidden' value='1' name='nawigacja_gora' />
  20. <input type='image' src='img/nawigacja/strz_gora.gif' />
  21. </form><br />
  22. </td></tr>
  23. <tr style='height: 25px; vertical-align: center'><td style='width: 11px; text-align: left'>
  24.  <form method='post' action='index.php?id=20'>
  25. <input type='hidden' value='1' name='nawigacja_lewa' />
  26. <input type='image' src='img/nawigacja/strz_lewo.gif' />
  27. </form><br />
  28. </td><td><font class='tekst'><b>"
  29.  . $x . "/" . $y . "</b></font><br />
  30. </td><td style='width: 11px; text-align: left'>
  31.  <form method='post' action='index.php?id=20'>
  32. <input type='hidden' value='1' name='nawigacja_prawa' />
  33. <input type='image' src='img/nawigacja/strz_prawo.gif' />
  34. </form><br />
  35. </td></tr>
  36. <tr style='height: 11px'><td style='width: 50px; text-align: center' colspan='3'>
  37.  <form method='post' action='index.php?id=20'>
  38. <input type='hidden' value='1' name='nawigacja_dol' />
  39. <input type='image' src='img/nawigacja/strz_dol.gif' />
  40. </form><br />
  41. </td></tr>
  42. </table>");
  43.  
  44. $nawigacja_gora = $_POST['nawigacja_gora'];
  45. $gora = $y + $nawigacja_gora;
  46. $up_gora = "UPDATE `uzytkownik` SET y = '$gora' WHERE login = '$login' AND haslo = '$haslo'";
  47. $wyk_gora = mysql_query($up_gora);
  48.  
  49. $nawigacja_lewa = $_POST['nawigacja_lewa'];
  50. $lewa = $x - $nawigacja_lewa;
  51. $up_lewa = "UPDATE `uzytkownik` SET x = '$lewa' WHERE login = '$login' AND haslo = '$haslo'";
  52. $wyk_lewa = mysql_query($up_lewa);
  53.  
  54. $nawigacja_prawa = $_POST['nawigacja_prawa'];
  55. $prawa = $x + $nawigacja_prawa;
  56. $up_prawa = "UPDATE `uzytkownik` SET x = '$prawa' WHERE login = '$login' AND haslo = '$haslo'";
  57. $wyk_prawa = mysql_query($up_prawa);
  58.  
  59. $nawigacja_dol = $_POST['nawigacja_dol'];
  60. $dol = $y - $nawigacja_dol;
  61. $up_dol = "UPDATE `uzytkownik` SET y = '$dol' WHERE login = '$login' AND haslo = '$haslo'";
  62. $wyk_dol = mysql_query($up_dol);
  63.  
  64. // polecenia echo (wszystkie zmienne są poprawnie odczytywane również po kliknięciu na przycis
    kach poruszania)
  65. echo ("Gora: ".$gora);
  66. echo ("<br>Dol: ".$dol);
  67. echo ("<br>Lewo: ".$lewa);
  68. echo ("<br>Prawo: ".$prawa);
  69. ?>
Ja_Szczur
czy mi się wydaje, czy Ty za każdym razem robisz 4 UPDATE'y?
nie lepiej zrobić to switch'em ?

  1. <form ...>
  2. <input type="hidden" name="nawigacja" value="gora" />
  3. <input type="hidden" name="x" value="$x" />
  4. <input type="hidden" name="y" value="$y" />
  5. <input type="image" ...>
  6. </form>
  7.  
  8. <form ...>
  9. <input type="hidden" name="nawigacja" value="dol" />
  10. <input type="hidden" name="x" value="$x" />
  11. <input type="hidden" name="y" value="$y" />
  12. <input type="image" ...>
  13. </form>


  1. <?php
  2. switch( $_POST['nawigacja'] )
  3. {
  4.  case 'gora':
  5. $x = $_POST['x'];
  6. $y = $_POST['y'] - 1;
  7. // zapis w sql'u
  8.  
  9.  case 'dol':
  10. $x = $_POST['x'];
  11. $y = $_POST['y'] + 1;
  12. // zapis w sql'u
  13.  
  14. ...
  15. }
  16. ?>


gdyby dodać JavaScript, byłoby jeszcze lepiej...

----
fakt, być może nie działa, bo nie dałem brake'ów
Chemiq
dobry pomysł. zaraz sprawdzę czy działa


tak jak mi podałeś to nie działa. ale co do switcha to był dobry pomysł. zastosowałem go inaczej niż pokazałeś i działa jak należy.

oto aktualny kod:
  1. <? // "las.php"
  2. include ("sprawdzdostep.php");
  3.  
  4. $zapytanie = "SELECT * FROM `uzytkownik` WHERE login = '$login' AND haslo = '$haslo'";
  5. $wykonaj = mysql_query($zapytanie);
  6. while ($wiersz = mysql_fetch_array($wykonaj)) {
  7. $x = $wiersz[x];
  8. $y = $wiersz[y];
  9. }
  10.  
  11. echo ("<font class='tekst'>Witaj w lesie. Mozesz wykonac tu questy oraz znalezc rózne cenne rzeczy.");
  12. include ("las/chodz.php");
  13. echo ("
  14. <table border='1' style='width: 70px; height: 20px;'>
  15. <tr style='height: 10px'><td style='text-align: center' colspan='3'>
  16.  <form method='post' action='index.php?id=20'>
  17. <input type='hidden' value='1' name='nawigacja' />
  18. <input type='image' src='img/nawigacja/strz_gora.gif' />
  19. </form>
  20. </td></tr>
  21. <tr style='height: 10px; vertical-align: center'><td style='width: 11px; text-align: left'>
  22.  <form method='post' action='index.php?id=20'>
  23.  <input type='hidden' value='2' name='nawigacja' />
  24. <input type='image' src='img/nawigacja/strz_lewo.gif' />
  25. </form>
  26. </td><td><font class='tekst'><b>"
  27.  . $x . "/" . $y . "</b></font>
  28. </td><td style='width: 10px; text-align: left'>
  29.  <form method='post' action='index.php?id=20'>
  30.  <input type='hidden' value='3' name='nawigacja' />
  31. <input type='image' src='img/nawigacja/strz_prawo.gif' />
  32. </form>
  33. </td></tr>
  34. <tr style='height: 10px'><td style='text-align: center' colspan='3'>
  35.  <form method='post' action='index.php?id=20'>  
  36. <input type='hidden' value='4' name='nawigacja' />
  37. <input type='image' src='img/nawigacja/strz_dol.gif' />
  38. </form>
  39. </td></tr>
  40. </table>");
  41.  
  42. switch ($_POST['nawigacja']) {
  43.  
  44. case 1:
  45. $gora = $y + 1;
  46. $up_gora = "UPDATE `uzytkownik` SET y = '$gora' WHERE login = '$login' AND haslo = '$haslo'";
  47. $wyk_gora = mysql_query($up_gora);
  48. break;
  49.  
  50. case 2:
  51. $lewa = $x - 1;
  52. $up_lewa = "UPDATE `uzytkownik` SET x = '$lewa' WHERE login = '$login' AND haslo = '$haslo'";
  53. $wyk_lewa = mysql_query($up_lewa);
  54. break;
  55.  
  56. case 3:
  57. $prawa = $x + 1;
  58. $up_prawa = "UPDATE `uzytkownik` SET x = '$prawa' WHERE login = '$login' AND haslo = '$haslo'";
  59. $wyk_prawa = mysql_query($up_prawa);
  60. break;
  61.  
  62. case 4:
  63. $dol = $y - 1;
  64. $up_dol = "UPDATE `uzytkownik` SET y = '$dol' WHERE login = '$login' AND haslo = '$haslo'";
  65. $wyk_dol = mysql_query($up_dol);
  66. break;
  67.  
  68. }
  69. ?>


dzięki za pomysł
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.