![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 5 Dołączył: 15.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Chciałbym, aby w nowo utworzonej tabeli można było zwiększać numer kolumny `numer_planszy` o jeden, wraz z każdym nowym dodanym rekordem. Dodam, że na początku kolumna ta jest pusta. Kod $query = "INSERT INTO `mf`.`sk1` ( `id`, `numer_planszy`, `adres`, `adresmini`, `komentarz`) VALUES ('$id_null', `numer_planszy` = `numer_planszy` + 1, '$adres', '$adresmini', '$komentarz');"; Niestety, `numer_planszy` uzyskuje w ten sposób wartość "0", czyli ewidentnie robię coś źle. Czy da się to zrobić w ten sposób? |
|
|
-Wieviór- |
![]()
Post
#2
|
Goście ![]() |
No to jest źle ;]
Możesz robić zapytanie do bazy, wyciągać numer_planszy z największą wartością, zapisać liczbę jako zmienną, a potem przy dodawaniu rekordu po prostu dodawać do tej zmiennej jedynki. To na pewno nie jest optymalne rozwiązanie, ale zadziała ;] |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zamiast tego inserta użyj od razu UPDATE.
W takich wypadkach przydatna jest funkcjonalność UPDATE'a, pozwalająca na tworzenie danych jeśli ich nie ma. Od początku dostaniesz wartość 1. Ten post edytował Hazel 23.02.2008, 13:25:12 -------------------- ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Zamiast
`numer_planszy` = `numer_planszy` + 1 Spróbuj numer_planszy + 1 Pozdrawiam, -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 5 Dołączył: 15.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cysiaczek - twój pomysł owszem, wprowadza wartość "1", ale jej wcale nie zwiększa. Przy dodawaniu następnych rekordów dalej pojawia się wyłącznie "1"
Hazel - próbowałem, ale wtedy (mimo braku komunikatu o błędzie) nic nie zostaje dodane do tabeli. Nie dziwię się, gdyż trudno zrobić UPDATE jeśli w tabeli jescze nic nie ma. Poza tym nie za bardzo wiem, jak miałoby to się odnieść do dodawania następnych rekordów. Dzięki za próbę pomocy! Niestety, na tę chwilę konieczne chyba będzie odpytywanie bazy o największą wartość w kolumnie vide Wieviór. Chyba, że ktoś ma jeszcze jakiś pomysł? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
A nie możesz ustawić AUTO INCREMENT i NOT NULL kolumnie numer_planszy? Wtedy w ogóle będziesz mógł ją pominąć w tym insercie a wartości same się będą dodawały.
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 93 Pomógł: 5 Dołączył: 15.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zwykle to by wystarczało, ale niestety, już mam kolumnę z Auto Increment, a w przypadku tej kolumny (UNIQUE) zależy mi na niepowtarzalnych, zwiększanych co jeden numerach.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To moze napisz konkretnie co ma ta kolumna robic, do czego sluzyc, bo trzymanie drugiej kolumny co bedzie miala identyczne wartosci jak kolumna z auto_increment jest ciut bezsensu
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 04:47 |