Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [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
 
Start new topic
Odpowiedzi (1 - 5)
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'


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
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.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
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 Aktualny czas: 21.08.2025 - 12:19