![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.06.2007 Ostrzeżenie: (0%)
|
Witam.
Jestem na tym forum nowa i przejdę do sedna sprawy... Otóż jest Mi potrzebne funkcja która Mi pobierze pierwszy WOLNY numer rekordu z pola typu auto_increment. I w zasadzie to chyba znalazłam co Mnie potrzeba -> http://algorytmy.pl/?id=1064&pp=503 Ale jest małe ale: UWAGA! To tylko fragment strony! Całą zobaczysz po opłaceniu abonamentu! A trochę dużo tam wołają za SMS'a zaś karty nie posiadam... Może ktoś zna inne miejsce gdzie to znajdę albo Sam też wie jak takie coś napisać bo jest Mi bardzo potrzebne. EDIT: Pracuję na php 4/5 oraz mysql 4.1.21-standard Pozdrawiam i czekam na pomoc Ten post edytował Ania-678 15.06.2007, 10:31:00 |
|
|
|
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%)
|
Jeżeli potrzebujesz następnego id z pola auto_increment wystarczy jak zapytasz bazę o maksymalną wartość tego pola MAX(id) i w php dodasz +1 ... otrzymasz wartość najbliższego wpisu w tą kolumnę.
Nie wiem do czego jest Ci to potrzebne ale zakładam, że chcesz to nowe ID wpisać gdzieś do innej tabeli tak, żeby mieć połączenie między tabelami. Jeżeli takie coś chcesz wykonać, możesz odwrócić sytuację i dodać wiersz do tabeli pierwszej po czym za pomocą mysql_insert_id" title="Zobacz w manualu PHP" target="_manual pobrać wygenerowaną wartość pola ID. -------------------- 404
|
|
|
|
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 611 Pomógł: 19 Dołączył: 28.02.2005 Skąd: Wrocław Ostrzeżenie: (0%)
|
pierwszy wolny to znaczy ten który bedzie wstawiony nastepnym razem dobrze rozumiem ?
chyba że chodzi Ci o pierwszy biorąc pod uwage też usunięte rekordy, ale to rozwiązanie ma zbyt wiele wad zeby je wykorzystywac -------------------- |
|
|
|
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%)
|
chyba że chodzi Ci o pierwszy biorąc pod uwage też usunięte rekordy, ale to rozwiązanie ma zbyt wiele wad zeby je wykorzystywac dokladnie o to jej chodzi moze ktorys z was by zajrzal w lik ktory dala jest cos takiego Kod +----+--------+----------+ i jak widac brakuje nr 3| id | imie | nazwisko | +----+--------+----------+ | 1 | Julia | Murek | | 2 | Robert | Kwak | | 5 | Jan | Nowak | | 6 | Jan | Kowal | | 7 | Anna | Maliniak | +----+--------+----------+ mozesz np pobrac max(id) a potem w petli sprawdzac czy takie id istnieje i jak nie to masz odpowiedz Ten post edytował skowron-line 15.06.2007, 12:01:12 -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
|
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%)
|
Cytat mozesz np pobrac max(id) a potem w petli sprawdzac czy takie id istnieje i jak nie to masz odpowiedz Po co? Przeciez mozna max(id) + 1 -------------------- |
|
|
|
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%)
|
-------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.06.2007 Ostrzeżenie: (0%)
|
Więc tak...
Nie chodzi Mnie o zmianę auto_increment tylko o wyszukanie tabelki pustych rekordów. Mam na przykład taką tabelkę: ID | user ---------- 1 | fsdf 2 | bgfgt 3 | bvcfsd 5 | sdfss 6 | teregf i chcę "wyciągnąć" najniższy puste miejsce z niej czyli w tym przypadku id 4. Bo to Mnie potrzebne do skryptu rejestracji przez aktywację via mail i przy jego potwierdzeniu następuje taka akcja:
Oczywiście w tabeka2 jest pierwsze pole ID z auto_increment i zawsze id przy tym INSERTcie jest najwyższe id jakie już w niej jest + 1 Zaś Ja potrzebuję by INSERT "pakował" się do najniższego wolnego id w tabeka2 Ten post edytował Ania-678 15.06.2007, 13:41:24 |
|
|
|
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%)
|
aaaaa
@skowron-line Zle sobie odczytalem chodzilo mi o max Rozwiazaniem jest proste. Chyba sie nie pomylilem bo z palca
-------------------- |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.06.2007 Ostrzeżenie: (0%)
|
aaaaa @skowron-line Zle sobie odczytalem chodzilo mi o max Rozwiazaniem jest proste. Chyba sie nie pomylilem bo z palca
Operuję na jednej tabeli, a jak dobrze rozumiem to powyżej jest na dwie... |
|
|
|
Post
#10
|
|
![]() Admin Techniczny Grupa: Administratorzy Postów: 2 071 Pomógł: 93 Dołączył: 5.07.2005 Skąd: Olsztyn |
źle rozumiesz to jest jedna tabela łączona z sama sobą t1 to "tabela" i tak samo t2 to "tabela" (jedna i ta sama)
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.06.2007 Ostrzeżenie: (0%)
|
To nie wiem czy dobrze podstawiam Swą nazwę tabelki:
bo pokazuje Mi ciągle rekord o id 1 który JEST a najwyższy to mam ponad 14XX... EDIT: po zwiększeniu LIMITu do 10
otrzymałam rekordy o id 1, 5, 9, 12, 15, 22, 25, 31, 34, 36 zaś w bazie pierwsze 10 rekordów to: 1, 2, 3, 5, 9, 10, 12, 15, 16, 17 Więc yyy... coś mnie tu nie pasuje... Ten post edytował Ania-678 15.06.2007, 16:33:44 |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.05.2007 Ostrzeżenie: (0%)
|
Niezbyt dobrze kombinujesz
Dodaj do tabeli userow pole IsConfirmed Przy rejestracji normalnie dodaj usera z polem IsConfirmed ustawionym na false Zrob tabele ConfirmationCodes z IdUser ConfirmationCode Po dodaniu uzytkownika dodaj nowy rekord do tej tabeli z IdUser wzietym z mysql_insert_id() wygenerowanym kodem np. md5(time() + IdUser) Wyslij mu ten kod mailem. Jak user kliknie na linka aktywacyjnego wybierz z tabeli rekord ktory ma taki sam ConfirmationCode masz wtedy IdUser Uaktualniasz rekord w tabeli usera zmieniajac IsConfirmed na true A nastepnie usuwasz rekord z tabeli ConfirmationCodes gdzie IdUser jest rowne temu ktorego wybrales. Tyle. Pozdrawiam |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 1 Dołączył: 6.02.2006 Ostrzeżenie: (0%)
|
@superfrajer Jaki jest związek tego co napisałeś z tematem wątku, gdyż nie zrozumiałem
Odnośnie tematu wątku, to proponuję następujące zapytanie:
Jeżeli otrzymasz w wyniku zero rekordów, to oznacza, że rekordy są po kolei lub tabela jest pusta Ten post edytował Norbas 15.06.2007, 22:54:47 -------------------- |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.06.2007 Ostrzeżenie: (0%)
|
No wynik jest pusty...
Ale... ja to potrzebuję do INSERTa, bo Ja nie wiem jak do Niego określić tym powyżej czy dane pole id jest puste czy też nie |
|
|
|
Post
#15
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%)
|
Myslalem ze po moim poscie poradzisz sobie.
Masz tutaj kompletne zapytanie ktore zwroci Ci doklanie 1 oczekiwana wartosc.
-------------------- |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.06.2007 Ostrzeżenie: (0%)
|
Ten dziad:
ma Mnie gdzieś i ciągle id = auto_increment z db... Ten post edytował Ania-678 16.06.2007, 09:22:04 |
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 0 Dołączył: 27.12.2005 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 15.06.2007 Ostrzeżenie: (0%)
|
Ni jedno, ni drugie egzaminu nie zdaje...
|
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.05.2007 Ostrzeżenie: (0%)
|
Norbas: taki jest zwiazek, ze dziewczyna troche bez sensu kombinuje, przeczytaj caly temat dokladnie to zobaczysz.
Ania-678: jeszcze prostszym sposobem na aktywacje jest po prostu z rejestracji wywalic pole podawania hasla, i wygenerowac samemu haslo userowi i wyslac mu na maila. Odpada wtedy sprawdzanie kodow itd... Pozdrawiam |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 0 Dołączył: 27.12.2005 Ostrzeżenie: (0%)
|
A to:
Jeśli nie zadziała to powiedz co zwraca, bo mam zainstalowane MySQL 5.0.40 Ten post edytował UDAT 16.06.2007, 12:50:59 |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.08.2025 - 03:20 |