Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]Funkcja porównująca
Forum PHP.pl > Forum > Przedszkole
mperlam
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
lukaszgolder
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
mperlam
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?
Darti
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;
mperlam
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.
patryk9200
Spróbuj tak:
  1. SELECT * FROM archiwum WHERE mail='$mail' OR ip='$ip' ORDER BY id DESC LIMIT 1
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.