Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kilka update rekordow przez formularz
JarekG
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 21.11.2006

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


Witam.
Mam taka sytuacje. Formularz do edytowania rekordow w bazie. Zgodnie z roznymi parametrami wyswietlone jest od 1 wzwyz rekordow w formie formularza <input type='text'...>. Skrypt wyciaga sobie odpowiednie dane i wprowadza w value wartosci zmiennych. Wszystko ladnie pieknie.
Teraz tylko potrzebuje zrobic cos takiego. Mam powiedzmy taka sytuacje (tabela zawierajaca elementy nazwa, miasto, wiek):


Kod
NAZWA | MIASTO | WIEK
Jasiu | 123    | 1234
Asia  | 555    | 56
Tomek | 12     | 23

Chce zmienic sobie przykladowo Jasiu na Jasiu1, Wiek Asi z 56 na 12, miasto Tomka z 12 na Poznan. Problem pojawia sie w tym, gdyz nie mam za bardzo pomyslu, jak rozwiazac problem kilkukrotnego update-u. Zgodnie z tym w jaki sposob skrypt wyciaga dane do edycji z bazy danych, oznacza ze w $_POST['id']; ma zapisane identyfikatory Jasia, Asi i Tomka. Jednak przy wywolaniu skryptu juz po wyedytowaniu pol, w logach bazy widze ze zapytanie wychodzi... oczywiscie... ale w momencie where id="$_POST['id']; wstawia tylko 1 numer identyfikujacy (dla Jasia np. jest to numer id=8).
Pytanie jest takie. W jaki sposob rozwiazac tego typu problem ? Zeby wywolal 3 zapytania do bazy update zmieniajac za kazdym razem identyfikatory lub inne zmienne. Musialbym jakos w petle wsadzic mysql_query. Nie mam jednak zadnego pomyslu.
Prosze Was o pomoc w tej sprawie.
Pozdrawiam
JarekG
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
wipo
post
Post #2





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


A takie coś:
if ($_POST['zmien']){
$id=$_POST['id'];
$imie=$_POST['imie'];
$wiek=$_POST['wiek'];
$miasto=$_POST['miasto'];
for($x=0;$x<count($id);$x++){
mysql_query("update tabela set imie='".$imie[$x]."', miasto='".$miasto[$x]."', wiek='".$wiek[$x]."' where id=".$id[$x]);
}

<form action="" method="post">
$a1=mysql_query("select * from tabela where co_chce_wyciagnac");
while($a2=mysql_fetch_array($a1)){
?><input type="hidden" name="id[]" value="<?=$a2['id'];?>">
<input type="text" name="imie[]" value="<?=$a2['imie'];?>">
<input type="text" name="wiek[]" value="<?=$a2['wiek'];?>">
<input type="text" name="miasto[]" value="<?=$a2['miasto'];?>">

...itd
<input type="submit" name="zmien" value="Zmien"></form>
Go to the top of the page
+Quote Post
JarekG
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 21.11.2006

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


Cytat(wipo @ 29.11.2006, 17:08:17 ) *
for($x=0;$x<count($id);$x++){
mysql_query("update tabela set imie='".$imie[$x]."', miasto='".$miasto[$x]."', wiek='".$wiek[$x]."' where id=".$id[$x]);

Nie sprawdzalem w praktyce, ale oceniam, ze bedzie chodzic, pod jednym warunkiem... jak id bedziesz mial pokolei poukladane. Jesli Jasiu bedzie mial id=8, Ania id=22, Tomek id=1023 to jest wielka kupa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Powiedzmy, ze id nie jest tutaj najwazniejsze... tzn. po czesci jest, ale procz ID wszsycy maja jeszcze dodatkowe parametry identyfikujace, ktore wskazuja wlasnie na te osoby. Tyle, ze po wykonaniu submita formularza, dziwnym trafem moge zmieniac tylko i wylacznie ostatni wiersz (ostatnie hierarchicznie ID). Poprzednie pokazuje, ze zmienil, a w logu mysql pokazuje ze wypelnia zmiennymi ostatni wpis w formularzu.
Jeszcze musze sie z tym przespac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Mimo wszystko dziekuje za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

p.s. myslalem jeszcze zeby w formularzu odpowiednio wyselectowac sobie identyfikatory do zmiennej tablicowej i jechac przez tablice... tylko rodzi mi sie w glowie pytanie... czy aby na pewno bedzie to dzialac automatycznie, czy bede musial siedziec w bazie i przeklepywac potem polowe rzeczy recznie. A co do zmiennej tablicowej... to tez za bardzo nie mam pomyslu jak to wyciagnac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ... ale to szczegol.

Ten post edytował JarekG 29.11.2006, 22:41:39
Go to the top of the page
+Quote Post
wipo
post
Post #4





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

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


Widzę że nie oglądałeś dokładnie
W formularzu jak masz nazwę id[] to określa to iż są one numerowane kolejno (nie ważne jakie id ma w bazie)
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: 24.08.2025 - 07:15