Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Problem logiczny.
jam09
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


Napisałem skrypt wyświetlający mapę do gry.
  1. <?php
  2. $sql = mysql_query("select * from mapa");
  3. $pole = mysql_fetch_array($sql);
  4. echo "<table>";
  5. for ($i=1; $i<=8; $i++){ //pętla pozioma
  6. echo "<tr><td>$i</td>";
  7. for ($p=1; $p<=8; $p++){ //pętla pozioma pól
  8. if($i == $pole['y'] AND $p == $pole['x']){
  9. echo "<td>Wiocha !</td>";
  10. }else{
  11. echo "<td>Pustkowia</td>";
  12. }
  13. }
  14. echo "</tr>";
  15. }
  16. echo "<tr>";
  17. for ($i=NULL; $i<=8; $i++){ //pętla pozioma
  18. echo "<td>$i</td>";
  19. }
  20. echo "</tr></table>";
  21. ?>

I wszystko działa dobrze ale gdy mam np. 3 rekordy w bazie to porównuje tylko pierwszy rekord i wyświetla info wiocha!. Wiadomo dlaczego. I teraz moje pytanie jak mogę dostosować ten skrypt by porównywało więcej niż 1 rekord ?
Stworzyłem jeszcze jedną wersję tego skryptu.
  1. <?php
  2. $sql = mysql_query("select * from mapa");
  3.  
  4. echo "<table>";
  5. for ($i=1; $i<=8; $i++){ //pętla pozioma
  6. echo "<tr><td>$i</td>";
  7. for ($p=1; $p<=8; $p++){ //pętla pozioma pól
  8. while($pole = mysql_fetch_array($sql)){
  9. if($i == $pole['y'] AND $p == $pole['x']){
  10. echo "<td>Wiocha !</td>";
  11. }else{
  12. echo "<td>Pustkowia</td>";
  13. }
  14. }
  15. }
  16. echo "</tr>";
  17. }
  18. echo "<tr>";
  19. for ($i=NULL; $i<=8; $i++){ //pętla pozioma
  20. echo "<td>$i</td>";
  21. }
  22. echo "</tr></table>";
  23. ?>

Ale i ona mnie nie zadowala. Ponieważ wyświetla tyle pól odpowiednio wiocha/pustkowia ile jest rekordów w bazie , a rekordy w bazie chcę tylko stworzyć dla wiosek aby nie obciążać bazy. Z góry dziękuję wszystkim za pomoc.
PS : Ten temat był w dziale przedszkole i nikt nie odpowiedział więc daję tu.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


pokaż przykładowe dane z tabeli ? Ty trzymasz tam współrzędne x i y wiosek tak? skrypt porównuje CI jeden rekord ponieważ nie wyciągasz danych w pętli , wydaje mi się, że powinieneś najpierw w pętli pobrać wszystkie dane z bazy i zapisać je w tablicy(array) i potem sprawdzasz czy takie współrzędne znajdują się w tablicy jak tak to stawiasz wiocha
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 18:57