Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ostatnie id + 1 ? nie wiem jak
Forum PHP.pl > Forum > Przedszkole
damianm2007
Witam.
Chce zrobić tak.. aby wyświetlało

index.php?id=12

czyli ostatnie + 1 = to co u góry ^

Ja myślę aby to zrobić tak że przy pobieraniu id ma dodać 1 ale jak zrobić aby pobierało tylko ostatni id ?

Jak ktoś ma pomysł to będę wdzięczny smile.gif
maryaan
Jeśli chcesz sprawdzić zaraz po wstawieniu rekordu do bazy to możesz użyć np funkcji mysql_insert_id() , albo - zakładając, że pole jest autoincrement i najwyższa wartość jest najnowsza - możesz użyć zapytania
  1. SELECT MAX(id) FROM costam
. Do otrzymanej wartości dodajesz 1 i masz zamierzony efekt. Chociaż do końca nie rozumiem do czego Ci to potrzebne :]
damianm2007
Cytat(maryaan @ 20.06.2010, 13:10:00 ) *
Jeśli chcesz sprawdzić zaraz po wstawieniu rekordu do bazy to możesz użyć np funkcji mysql_insert_id() , albo - zakładając, że pole jest autoincrement i najwyższa wartość jest najnowsza - możesz użyć zapytania
  1. SELECT MAX(id) FROM costam
. Do otrzymanej wartości dodajesz 1 i masz zamierzony efekt. Chociaż do końca nie rozumiem do czego Ci to potrzebne :]


Niebawem będę to pisał więc dam znać czy pomogłeśsmile.gif ale raczej tak.. a potrzebne mi to do skryptu ekartki smile.gif po zapisaniu ekartki tworzy link z id i wysyła go na email ktoś klika i widzi daną ekartkę od znajomego smile.gif

Działa smile.gif tylko teraz jak zrobić aby po wejściu w link z id były dane które są w tym id hmm... smile.gif
Lars_18
Wystarczy, że pobierzesz te dane zapytaniem SELECT...
QoooQ
a nie lepiej ustawić pole na auto_increment questionmark.gif przy dodawaniu nowego rekordu będzie automatycznie dodawać +1
yevaud
on juz ma auto_increment, ale po dodaniu nowego rekordu do bazy chce wiedziec jaka jest wartosc pola id
damianm2007
Cytat(Lars_18 @ 20.06.2010, 19:50:14 ) *
Wystarczy, że pobierzesz te dane zapytaniem SELECT...


hmmm

czyli np tak ?

  1.  
  2.  
  3. $query = mysql_query ("SELECT id FROM tabela") or die (mysql_error());
  4. $wynik = mysql_fetch_assoc($query);
  5.  
  6.  


i dalej... wyświetlenie ? czy coś jeszcze ?

Cytat(QoooQ @ 20.06.2010, 19:53:09 ) *
a nie lepiej ustawić pole na auto_increment questionmark.gif przy dodawaniu nowego rekordu będzie automatycznie dodawać +1



tak zrobione sprawa z linkiem juz załatwiona link ma sie po to generować aby ktos po zapisaniu mogl dac wyslij wlasnie ten link z max id to jest zrobione
lepmajster
A co sie stanie jesli w tym samym czasie kilku uzytkownikow zrobi swoje kartki, a ty pobierzesz wczesniejszy id i wygenerujesz link nie do e-kartki autora.
pomysl nad tym, musisz pobierac id kartki juz po jej dodaniu!
damianm2007
Cytat(lepmajster @ 20.06.2010, 20:35:13 ) *
A co sie stanie jesli w tym samym czasie kilku uzytkownikow zrobi swoje kartki, a ty pobierzesz wczesniejszy id i wygenerujesz link nie do e-kartki autora.
pomysl nad tym, musisz pobierac id kartki juz po jej dodaniu!


Jeżeli np janek robi ekartkę i daje zapisz to w tym samym momencie dostaje wynik linku z id kartki którą zrobił smile.gif

pozostało to aby po kliknięciu w ten link były pokazane dane hmmm nie wiem jak ten SELECT napisać...
lepmajster
Cytat(damianm2007 @ 20.06.2010, 20:38:59 ) *
Jeżeli np janek robi ekartkę i daje zapisz to w tym samym momencie dostaje wynik linku z id kartki którą zrobił smile.gif

pozostało to aby po kliknięciu w ten link były pokazane dane hmmm nie wiem jak ten SELECT napisać...

Wydawalo mi sie, ze pisales pierw o pobieraniu id przed stworzeniem kartki, i dodaniu do niego 1, zeby zasymulowac nowa kartke - TAKI SPOSOB TO ZUO, chyba ze z gory wiesz ze bedziesz mial 1 uzytkownika na dzien winksmiley.jpg
Ja bym poprostu pierw zapisal e-kartke i zaraz po tym pobieral jej id (choc to tez nie daje 100% pewnosci).
Pozdro

EDIT:
Ja bym proponowal link typu ID=bdhcskj (losowe 8 znakow, albo data bez myslnikow, przecinkow etc), i ten "kod" zapisywal w bazie danych jako pole UNIQUE.
I po tym kodzie mozna by bylo przegladac kartki.
Bo ID=4 daje latwa mozliwosc podgladania kartek innych (ktos moze sobie tego nie zyczyc).
damianm2007
  1. $query = mysql_query("SELECT * FROM `ekartka` WHERE `id` = '$id' ORDER BY `id`");


taki select rozwiązał sprawe.
maryaan
"ORDER BY" jest zbędne, bo jeśli nic nie namieszałeś to wynikiem zawsze będzie tylko jeden rekord...
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.