Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Dodawanie wpisów - ID
desavil
post 27.11.2011, 17:35:30
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.


--------------------
"Nie ma głupich pytań, są tylko głupie odpowiedzi."
Pomogłem?? Kliknij "Pomógł" :) Dzięki!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Kshyhoo
post 27.11.2011, 17:39:28
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 27.11.2011, 17:40:21
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


--------------------
"Nie ma głupich pytań, są tylko głupie odpowiedzi."
Pomogłem?? Kliknij "Pomógł" :) Dzięki!
Go to the top of the page
+Quote Post
Dominis
post 28.11.2011, 00:00:01
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.


--------------------
www.maxcode.pl
Go to the top of the page
+Quote Post
szmerak
post 28.11.2011, 02:17:02
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 28.11.2011, 08:11:57
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


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:21