Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Dodawanie wpisów - ID
Forum PHP.pl > Forum > Przedszkole
desavil
Witajcie.

Tworzę pewną numerację i mam z tym mały problem.
W bazie danych są numery, dodawane z poziomu PHP, po kolei od ostatniego, czyli pobiera najwyższy numer oraz dodaje do niego +1.
Ma to pewną wadę i nie wiem jak ją rozwiązać - jeżeli wielu użytkowników na raz będzie dodawało to może się zdarzyć iż numery będą dublowane i stąd moje pytanie jak temu zapobiec, aby w momencie dodania jeżeli ktoś już nas wyprzedził to jest dodawany kolejny numer.

Od razu mówię, iż nie mogę tego ustawić na automatyczną wartość.

Pozdrawiam.
Kshyhoo
auto_increment, inne możliwości nie ma...
desavil
Cytat(Kshyhoo @ 27.11.2011, 17:39:28 ) *
auto_increment, inne możliwości nie ma...

Cytat(desavil @ 27.11.2011, 17:35:30 ) *
Od razu mówię, iż nie mogę tego ustawić na automatyczną wartość.

Chcę to wykorzystać do systemu rachunków, które w bazie danych mają swoje numery, co roku zaczynają one się od 1.
Dominis
Możesz ustawić kolumne jako unikalny (UNIQUE), wtedy będziesz pewny że nie doda Ci drugiej takiej samej warości.
Tylko jak dasz pole UNIQUE to jeśli wpis id rachunku będzie w roku 2011 - 1, a w 2012 tez 1 to nie dodasz go już bo UNIQUE Ci nie pozwoli,
Wiec musiałbyś dodać jakiś przedrostek, np rok: 20111 a w 2012 wygladalby 20121, przy czym, przy wyświetlaniu w php-pie mozesz usunąc poniewaz przedrostek jest staly.
szmerak
id <- unique,
rok <- unique
I w czym problem?

ID I ROK nigdy nie będą mogły być takie same...
toaspzoo
możesz przy każdym dodawaniu rekordu sprawdzać phpem, czy istnieje rekord o takim id.

sądzę, że masz to tak zrobione (inne nazwy zmiennych)
  1. $w = mysql_fetch_array($zapytanie);


lub

  1. while($row= mysl_fetch_array($zapytanie))
  2. {
  3.  
  4.  
  5. }
  6.  


więc sprawdź, czy rekord istnieje (id)

[php]

if($w['id'] == $nowe_id)
{
echo 'Rekord zdublowany!';

}
else
{
//zapytanie dodające rekord

}

Zmienna $nowe_id to twoje nowe id, czy tam jakiś nr
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.