Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z zapytanie MySQL
Forum PHP.pl > Forum > Przedszkole
Owghard
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?
Turson
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
Owghard
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.
kpt_lucek
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
Owghard
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.
kpt_lucek
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 }'
jahonen
$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"]

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.