Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php+MySql]Wyszukiwanie miejsca w tabeli.
Amorph
post
Post #1





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


mam zapytanie do bazy:
  1. <?php
  2. $x="Jakies_Imie";
  3.  
  4. $zapytanie = "SELECT COUNT(id) FROM tabela WHERE Punkty >= (SELECT Punkty FROM baza WHERE Imie LIKE "".$x."" )";
  5. ?>


I wszystko ladnie smiga do czasu kiedy w bazie sa 2 identyczne imiona.... chce aby zapytanie wskazywalo mi osobe o najwyzszym id z Danym imieniem, czyli teoretycznie ostatnio dopisana....
Jestescie w stanie pomoc mi zlokalizowac blad ?
Z gory wielkie dzieki.

Ten post edytował Amorph 23.06.2006, 23:23:38
Go to the top of the page
+Quote Post
suck
post
Post #2





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 7.03.2006

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


jesli nie masz pola w ktorym bylaby data dopisania rekordu to zakladam, ze pole id jest auto incrementowane wiec mozesz zrobic do wyswietlenia if, ktory jesli imiona sie powtorza to wyswietlasz te, ktore ma wieksze id bo tak z logiki wynika.
Go to the top of the page
+Quote Post
Amorph
post
Post #3





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


Pole id ma autoinkementacje.
Jak zrobic zalozenie if ?
moze jakis przyklad ?
tu wybieram najwyzszy id
  1. <?php
  2. SELECT COUNT(id) FROM tabela WHERE Punkty
  3. ?>


Ten post edytował Amorph 23.06.2006, 23:23:21
Go to the top of the page
+Quote Post
batman
post
Post #4





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Najwyższy id wybieraj przez max a nie count.

A jeśli chcesz wyświetlić największy id przy pomocy SQL(sprawdzone na postgresie):

  1. SELECT * FROM tabela WHERE name='imie' AND id = (SELECT max(id) FROM tabtest)

Możesz też napisać:

  1. SELECT * FROM tabela WHERE name='imie' ORDER BY id DESC LIMIT 1

lub:

  1. SELECT max(id) FROM tabela WHERE name='imie'
Go to the top of the page
+Quote Post
Amorph
post
Post #5





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


Tyle ze przy zapytaniu count(id) rowniez licze ktora pozycje w tabeli po posortowaniu wg. punktow zajmuje dane imie. Przez max juz to nie wyjdzie

edit:
Wyszlo mi:
  1. <?php
  2. $zapytanie = "SELECT COUNT(id) FROM baza WHERE Punkty >= (SELECT Punkty FROM tabela WHERE Imie LIKE "".$x.""ORDER BY id DESC LIMIT 1 )";
  3. ?>

Bardzo dziekuje za pomoc....

Ten post edytował Amorph 24.06.2006, 08:38:53
Go to the top of the page
+Quote Post
batman
post
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Przecież count nie zwraca pozycji danego wiersza lecz ich ilość. Zapytanie, które napisałeś zwróci Ci ilość id w tabeli baza, gdzie punkty są równe lub większe od tego co zwróci podzapytanie.
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: 24.08.2025 - 01:30