Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][PHP]Funkcja porównująca
mperlam
post
Post #1





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 24.04.2009

Ostrzeżenie: (30%)
XX---


Cześć. Mam mały problem. Mam dwie listy różnych wartości wczytywane z bazy danych. Jedna z list to kody do rozdania, druga to listy maili i kodów im przypisanych (tak aby ktoś nie dostał takiego samego kodu). Chciałbym aby skrypt pomijal kody do rozdania porównując z rozdanymi tak długo aż znajdzie taki, którego określony mail nie otrzymał. Proszę o pomoc


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
lukaszgolder
post
Post #2





Grupa: Zarejestrowani
Postów: 141
Pomógł: 17
Dołączył: 2.04.2008
Skąd: z Zabrza

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


Nie wiem czy na pewno wszystko dobrze zrozumiałem no ale zrobiłbym to jakoś w tym stylu:
  1. SELECT `Kody1`.`kod` FROM `Kody1` WHERE `Kody1`.`kod` NOT IN (SELECT `Kody2`.`kod` FROM `Kody2` WHERE `Kody2`.`email`='jakis_tam_email') ORDER BY `Kody1`.`kod` DESC LIMIT 1
Go to the top of the page
+Quote Post
mperlam
post
Post #3





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 24.04.2009

Ostrzeżenie: (30%)
XX---


Myślałem raczej o kodzie php i np. while. Nie umiem jeszcze dobrze baz danych, dziś zaczalem tongue.gif. Z tego co widzę, "Kody1 i 2" to poszczególne tabele, "kod" to rekordy. Mam racje? To może oczywiste ale na serio nie wiem dokładnie jak to zastosować tongue.gif

W porządku. Poradziłem sobie. Mam jednak inny dość irytujący problem.

Otóż każdy wpis w bazie numerowany jest polem ID (każdy to zna). Po usunięciu ID załóżmy "2" i po stworzeniu kolejnego (np. 40), nie wskakuje on na ostatnie miejsce tak, jak powinien to zrobić a pojawia się w miejscu, gdzie dawniej była dwójka (pomiędzy 1 a 3) z numerkiem 40. Po sortowaniu (w "Operacje") wszystko wraca do normy. Czy jest jakieś rozwiązanie problemu?


--------------------
Go to the top of the page
+Quote Post
Darti
post
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Id masz auto_increment - zrób sobie dodatkową kolumnę trzymającą porządek i ją przenumeruj przy każdej operacji (usuwając pole wszystkie wieksze zrób -1).
  1. $query = "UPDATE TABLE `jakas_tabela` SET `kolejnosc` = `kolejnosc`-1 WHERE `kolejnosc` > ". $kolejnosc_wiersza_skasowanego;


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
mperlam
post
Post #5





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 24.04.2009

Ostrzeżenie: (30%)
XX---


Ok, znów sobie poradziłem. Mam jednak problem z poleceniem

Kod
SELECT * FROM archiwum WHERE mail='$mail' ORDER BY id DESC LIMIT 1


Działa ono jak należy ale chciałbym aby warunek "mail='$mail'" został zmieniony na warunek "mail='$mail'" LUB "ip='$ip'"
Czy jest taka możliwość? Próbowałem miedzy to dawać kropkę itd. ale nie działa.


--------------------
Go to the top of the page
+Quote Post
patryk9200
post
Post #6





Grupa: Zarejestrowani
Postów: 319
Pomógł: 4
Dołączył: 7.02.2009
Skąd: pless

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


Spróbuj tak:
  1. SELECT * FROM archiwum WHERE mail='$mail' OR ip='$ip' ORDER BY id DESC LIMIT 1
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 - 11:12