Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie w wartości kolumny [sql]
Forum PHP.pl > Forum > Przedszkole
charlie-cherry
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
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 ;]
Hazel
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.
Cysiaczek
Zamiast
`numer_planszy` = `numer_planszy` + 1

Spróbuj
numer_planszy + 1

Pozdrawiam,
charlie-cherry
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ł?
Kicok
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.
charlie-cherry
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.
nospor
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
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.