Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Dodawanie w wartości kolumny [sql]
charlie-cherry
post 23.02.2008, 11:55:08
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?
Go to the top of the page
+Quote Post
-Wieviór-
post 23.02.2008, 12:03:25
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 ;]
Go to the top of the page
+Quote Post
Hazel
post 23.02.2008, 13:24:51
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


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post 23.02.2008, 13:27:23
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.
Go to the top of the page
+Quote Post
charlie-cherry
post 23.02.2008, 23:08:45
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ł?
Go to the top of the page
+Quote Post
Kicok
post 23.02.2008, 23:51:20
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."
Go to the top of the page
+Quote Post
charlie-cherry
post 25.02.2008, 15:40:53
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.
Go to the top of the page
+Quote Post
nospor
post 25.02.2008, 15:44:33
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

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: 18.06.2025 - 04:47