Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]
b_chmura
post
Post #1





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


Witam
w końcu zacząłem przygodę z MySQL i już mam jedno pytanie (pewnie to początek całej serii)
Jeśli chcę edytować rekord czy musem jest wcześniejsze wyciągnięcie i podanie danych do edycji?

dotychczas robie to tak:
mam bazę
Kod
+-------+-----------+
|   a   |     b     |
+-------+-----------+
| Józef | Psikuta   |
+-------+-----------+


edytuję tak:
  1. UPDATE `tabela` SET `b` = 'nowy_psikuta' WHERE `a` = 'Józef' AND `b` = 'Psikuta' LIMIT 1 ;


czyli muszę wyciągnąć poprzednie dane...

a nie można tego zrobić np tak:
do tabeli dodaję kolumnę ID
Kod
+-----+-------+-----------+
| ID  |   a   |     b     |
+-----+-------+-----------+
|  0  | Józef |  Psikuta  |
+-----+-------+-----------+


i teraz podając ID i nazwę kolumny edytować dany element?


możliwe ze możecie nie zrozumieć mojej idei...
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




No przecież własnie po to się tworzy identyfikatory oraz klucze główne :|
  1. UPDATE tabela SET b='nowy_psikuta' WHERE id=1 LIMIT 1;

Dodaj sobie więcej rekordów do tabeli i odpal zapytanie bez warunku i bez limitu:
  1. UPDATE tabela SET b='nowy_psikuta';

to się stanie jeśli nie zidentyfikujesz rekordu, który chcesz edytować.
Twój dotychczasowy sposób:
  1. UPDATE `tabela` SET `b` = 'nowy_psikuta' WHERE `a` = 'Józef' AND `b` = 'Psikuta' LIMIT 1 ;

jest o tyle niebezpieczny, że w przypadku występowania kilku Józefów Psikutów, zostanie zmodyfikowany pierwszy z brzegu (ograniczenie do 1 rekordu z powodu LIMITu).
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 17:49