Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Dodawanie wpisów - ID
desavil
post
Post #1





Grupa: Zarejestrowani
Postów: 339
Pomógł: 3
Dołączył: 15.10.2008
Skąd: Internet

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




auto_increment, inne możliwości nie ma...

Ten post edytował Kshyhoo 27.11.2011, 17:39:59
Go to the top of the page
+Quote Post
desavil
post
Post #3





Grupa: Zarejestrowani
Postów: 339
Pomógł: 3
Dołączył: 15.10.2008
Skąd: Internet

Ostrzeżenie: (0%)
-----


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.

Ten post edytował desavil 27.11.2011, 17:51:37
Go to the top of the page
+Quote Post
Dominis
post
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 19
Dołączył: 13.02.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
szmerak
post
Post #5





Grupa: Zarejestrowani
Postów: 286
Pomógł: 12
Dołączył: 23.11.2006
Skąd: WL

Ostrzeżenie: (0%)
-----


id <- unique,
rok <- unique
I w czym problem?

ID I ROK nigdy nie będą mogły być takie same...
Go to the top of the page
+Quote Post
toaspzoo
post
Post #6





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 21:27