Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 26.09.2006 Ostrzeżenie: (0%)
|
Witam, pisze właśnie skrypt który autmoatycznie doda klientów z pliku XML, plik już ropzpracowałem i wyciągnałem sobie w pętli wszystkie rekordy, funkcja zapisu danych już działa ale mój problem kryje się w podwójnych loginach, dla przykładu dodając jakiegoś klienta moze się zdarzyć ze w bazie mam już login 'ania' więc sprawdzam zapytaniem
$query="SELECT login FROM users where login='$login'"; $result=mysql_query($query); ...itd Jeżeli użytwkonik o loginie ania istnieje chciałbym aby dodał on login do bazy o nazwie ania1. Jednak chodzi mi o taką pętle która bedzie sprawdzac czy ania istnieje jezeli istnieje to sprawdza czy ania1 istnieje jezeli ania1 istnieje sprawdza czy ania2 istnieje jezeli tak to sparwdzania ania3, jezeli wreszcie napotka ze np. ania4 nie ma w bazie dopiero go zapisuje... Z góry wielkie dzięki |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 5 Dołączył: 14.09.2003 Skąd: Wrocław Ostrzeżenie: (0%)
|
A może zamiast pętli zarzucisz sobie na klucz unikalny na pole login + num (AUTOINCREMENT) i login będzie stanowił połączenie tych dwóch pól - dzięki temu nie będziesz muisał żadnej pętli robić, a kolejne numerki będą się "same" dodawały.
Przykładowy kod:
Co nam daje: Kod mysql> select * from buu; +----------------+---------------+-----+ | costam | name | num | +----------------+---------------+-----+ | costam1 | costam | 1 | | costam1 | costam | 2 | | costam3 | costam | 3 | | costamjeszcze1 | costamjeszcze | 1 | | costamjeszcze2 | costamjeszcze | 2 | | costamjeszcze3 | costamjeszcze | 3 | +----------------+---------------+-----+ 6 rows in set (0.00 sec) Później logowanie może wyglądać tak:
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 26.09.2006 Ostrzeżenie: (0%)
|
Dzięki Bendi za pomoc, to co mi napisaleś działa OK ale ja nie chce zmieniać struktury logowania ani bazy danych, czy wie ktoś moze jak napisać to w pętli? Tak jak opisałem na początku?
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%)
|
pisane z palca i slabo przemyslane Ten post edytował skowron-line 15.10.2006, 21:30:02 |
|
|
|
Post
#5
|
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%)
|
Petla ma zlozonosc O(n)
Zeby uzyskac O(1) to doloz dodatkowa tabele w ktorej bedziesz zapisywal nastepna wartosc nicka: nick (PRIMARY) | next_value i wykorzystaj ja |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.10.2026 - 12:28 |