Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Położenie
Forum PHP.pl > Forum > Przedszkole
kill15
Witam, mam dość banalne pytanie.


id 1 - 1,1
id 2 - 3,1
id 3 - 1,3
id 4 - 6,1
id 5 - 1,3
id 6 - 1,6
itd
pokazałem tutaj pare id w bazie danych i chciałbym żeby przy tworzeniu nowego id automatycznie było przyporzadkowane położenie(x, y) - nie może sie powtarzać.
no i żeby to sie układało tak jak to pokazałem. Myślę że oczywistością jest fakt że nie mogę automatycznie zrobić tam ileś id, one będą się musiały tworzyć na bieżąco.
IceManSpy
A jako co masz zapisane to położenie? Jako znaki (char / varchar)? Jeśli tak, to nałóż na kolumnę atrybut unikalny (unique). To spowoduje, że będziesz mieć unikalność.
Co do losowania. Jeśli są to znaki to zrób tak:
zmienna1 = losuj liczbę w jakimś zakresie
zmienna2 = losuj liczbę w jakimś zakresie
polaczenie_zm = zmienna1 + , + zmienna2
Zapisz do bazy polaczenie_zm.

Nie napisałeś co to jest za położenie, więc losuje tutaj jakiekolwiek liczby.
kill15
mam kolumny id, osx i osy(mają one int wszystkie i oczywiście AUTO_INCREMENT) - to jest akurat mało ważne.

czyli muszę Rand losować liczbę questionmark.gif to się znowu by wiązało z warunkami dodatkowymi żeby za daleko od siebie liczby nie były.
no i musiał bym zrobić tak jak mówisz łączyć to w varchar a nie int.
Czy nie ma jakiegoś sposobu w którym nie musiałbym robić tych warunków /?
IceManSpy
osx i osy też jest autoincrement?Jak tak, no to chyba źle to jest zrobione. ID może być autoincrement.
No niestety musisz jakoś losować liczby. Możesz zostawić inty, ale wtedy losujesz dla X i dla Y, a potem sprawdzasz, czy nie ma rekordu o takiej parze. Jak nie, to wrzucasz do bazy, jak jest to losujesz od nowa.
kill15
nie. tam miałem napisać że id jest oczywiście AUTO_INCREMENT
IceManSpy
To podałem CI możliwości, jak to zrobić. Co wybierzesz i jak to zoptymalizujesz, to już Twoja decyzja smile.gif
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.