Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Problem z zapytanie MySQL
Owghard
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.05.2014

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


Witam. Może mi ktoś wytłumaczyć czemu mam errora?
To działa dobrze:
  1. "SELECT nick,count(zabijajacyID) AS how FROM zgony LEFT JOIN gracze ON graczID = zabijajacyID WHERE zabijajacyID>0 GROUP BY zabijajacyID ORDER BY how DESC LIMIT 3";

A to nie:
  1. "SELECT avg(ranking),gildiaID FROM 'gracze' LEFT JOIN gildie ON gildiaID = gildia ID WHERE gildiaID>0 GROUP BY gildiaID";

Error:
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in D:\XAMPP\htdocs\index.php on line 101
W tym kodzie gdzie nie działa bez LEFT JOIN działa.
Aha. I jeszcze takie pytanko czy da się jakoś skrócić wynik otrzymywany z avg do liczby całkowitej?
Go to the top of the page
+Quote Post
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Wklej zapytanie do np. PhpMyAdmin to zobaczysz co za błąd.

Temat: Jak poprawnie zadac pytanie -> Wykonywanie zapytań do bazy
Masz tam opisane jak wyświetlić błąd zapytania.

Drugie zapytanie też powinno nie działać, bo stosujesz ' zamiast ` przy nazwie tabeli
Go to the top of the page
+Quote Post
Owghard
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.05.2014

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


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE gildiaID>0 GROUP BY gildiaID' at line 1
Mam taki błąd.


Ten post edytował Owghard 15.06.2014, 09:39:51
Go to the top of the page
+Quote Post
kpt_lucek
post
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

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


Nie wiem jak koledzy z forum, ale ja przyzwyczaiłem się do tworzenia aliasów tabel, omijasz w ten sposób problem z szukaniem nie istniejącej kolumny w tabeli.

  1. #oryginał
  2. "SELECT avg(ranking),gildiaID FROM 'gracze' LEFT JOIN gildie ON gildiaID = gildia ID WHERE gildiaID>0 GROUP BY gildiaID";
  3.  
  4. #wersja poprawiona
  5. "SELECT avg(s0_.ranking),s0_.gildiaID FROM 'gracze' s0_ LEFT JOIN gildie s1_ ON s0_.gildiaID = s1_.ID WHERE s0_.gildiaID>0 GROUP BY s0_.gildiaID";


Poza tym, podklej strukture tabelek, bo bez tego można się tylko domyślać czy poprawnie łączymy pola.

~kptLucek
Go to the top of the page
+Quote Post
Owghard
post
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 30.05.2014

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


Edit. Ok, to już mi działa, ale mam jeszcze jedno pytanie.
Mam taki kod:
  1. <?php
  2. $gracz = $_GET['gracz'];
  3. ?>

I mam taką tabelkę.
  1. INSERT INTO `gracze` (`graczID`,`nick`, `ranking`) VALUES
  2. (1, 'Endymion', 191),
  3. (2, 'Marselo', 53),
  4. (3, 'Sergyfu', 66),
  5. (4, 'Xanter', 33),
  6. (5, 'Brzys', 71);

I chciałbym aby otrzymany wynik z get porównać z tabelką i jeżeli w kolumnie nick znajduje się taki sam wynik jak w zmiennej $gracz to wyświetla mogę wyświetlić cały jego rekord tzn. dla Brzysia graczID-5, nick-Brzys i ranking-71.

Ten post edytował Owghard 15.06.2014, 13:55:59
Go to the top of the page
+Quote Post
kpt_lucek
post
Post #6





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

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


Nie bardzo rozumiem, przetrzymujesz parametr w $_GET, na jego podstawie chcesz wyciągnąć coś z bazy.

Wnioskując na podstawie Twojej ostatniej wypowiedzi:
  1. SELECT * FROM `baza`.`tabela` `alias` WHERE `alias`.`nick` = '{ loginZeZmiennejPhp }'


Ten post edytował kpt_lucek 15.06.2014, 14:32:11
Go to the top of the page
+Quote Post
jahonen
post
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 21.04.2014

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


$row =mysql_query("SELECT * FROM gracze WHERE id='$_GET[gracz]'")
$array = mysql_fetch_array($row);

w zmiennej array masz już wszystkie dane, które chciałeś. Wywołujesz je wpisując $array["nazwa_kolumny"]

Go to the top of the page
+Quote Post

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: 28.08.2025 - 00:41