Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> php] [MySQL] Dwa różne zapytania a identyczny wynik- dlaczego?[rozwiązane], Proszę o pomoc w kodzie
miccom
post 26.03.2009, 08:49:58
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Witam serdecznie.

Mam następujący problem.


I chcę wydobyć z bazy danych nacje jednostek atakującej o broniącej się.
Stosując zapytanie:

  1. <?php
  2. include("config.php");
  3. //sprawdzamy czy na danych koordach jest jakas jednostka!
  4. $zapytanie="SELECT * FROM jednostki WHERE koord='$koordfin'";//pobieramy dane obrońcy
  5. $wynik=mysql_query($zapytanie);
  6. while($wiersz=mysql_fetch_array($zapytanie))
  7. {
  8. $nacja_obro&#324;cy=$wiersz['nacja'];
  9. }
  10. $cnt = mysql_num_rows(mysql_query($zapytanie));
  11. if($cnt!=0){
  12. //oznacza że pole jest zajęte.
  13. //sprawdzam czy dana jednostka jest jednostka wroga, czy swoją
  14. $query1="SELECT * FROM jednostki WHERE id='$num'";//pobieramy dane atakującego
  15. $resultat=mysql_query($query1);
  16. $linia=mysql_fetch_array($resultat);
  17. $nacja_atakujacego=$linia['nacja'];
  18.  
  19. if($nacja_atakujacego==$nacja_obro&#324;cy){
  20.  echo "Nie możesz atakować jednostek przyjaciela!";
  21. }else{..... //tu instrukcje jeśli jednostki są różnych nacji
  22. ?>


I z obu zapytań otrzymuję identyczny wynik, choć w bazie danych mam różnice.
Jeśli zaatakuję aliantem niemca- otrzymuję komunikat że są to jednostki sprzymierzone i nie mogę ich atakować.
Jak zaatakuję niemcem alianta- otrzymuję ten sam komunikat.
Proszę o wskazanie- gdzie mam błąd.

Ten post edytował miccom 26.03.2009, 12:24:03


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
nospor
post 26.03.2009, 08:52:14
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2. echo "atakujacy: $nacja_atakujacego --- obronca:  $nacja_obrońcy";
  3. ?>

Co ci zwrocilo?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miccom
post 26.03.2009, 11:18:10
Post #3





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Jeśli dokonam akcji atakuj aliantem na niemca to otrzymuję:
  1. <?php
  2. echo "atakujacy: alianci --- obronca:  alianci";
  3. ?>


A jak dokonam akcji atakuj niemcem na alianta to otrzymuję:
  1. <?php
  2. echo "atakujacy: niemcy --- obronca:  niemcy";
  3. ?>


Tak jakby jakoś dziedziczyło zmienne... ale nie pasuje mi to bo przecież zapytania odwołują się do tej samej tabeli w bazie- i do tych samych rekordów(nacja) ale przez inne zapytania.
Stąd nawet zrobiłem jedno w pętli, a drugie jako $rows. Ale nawet to nie pomogło.


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
nospor
post 26.03.2009, 11:22:51
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




oj....
ewidentnie koord='$koordfin'" i id='$num' wskazują na ten sam rekord.
musisz zobaczyc co masz pod $koordfin i $num i skonfrontowac to z bazą


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
miccom
post 26.03.2009, 12:22:47
Post #5





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Doszedłem do tego!

Zmienna $num jest id jednostki atakującej.
Błąd polegał na tym, że przesyłałem id jednostki atakującej metodą GET, i ten sam ID pobierałem z bazy danych ale jako id jednostki broniącej się.
Obie zmienne pod tą samą nazwą. I może dlatego skrypt nie wiedział jaka daną pobrać do przeliczeń.
Dziękuję za zainteresowanie i pomoc. Pozdrawiam.
Dziękuję nospor.


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 13:13