Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2006-12-23 14:33:09

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

php modyfikacja danych na formularzu

Witam

Znów mam problem z PHP-em ...

Mianowicie:

mam pliczek który jest formularzem danych osobowych wygląda mniej wiecej tak (na dole opisałem problem):

<?php

polaczenie do bazy itp.

{
if (!($dane=="zapisane"))

{
echo '

<form action="tabela.php?akcja=formularz" method=POST>
<br>
Dane osobowo/adresowe: <br>
<br>
Imie: <input type=text name=imie size=50> <br>
Nazwisko: <input type=text name=nazwisko><br>
Adres: <input type=text name=adres><br>
Gadu-Gadu: <input type=text name=gadu><br>
E-mail:<input type=text name=mail><br>
<br>
<br>
Dane dotyczące sieci:<br>
<br>
Adres IP:<input type=text name=ip_pc><br>
Adres mac:<input type=text name=mac><br>
Nazwa hosta:<input type=text name=hostname><br>
Blokada:<input type=text name=blokada><br>
Minimalne pasmo dla www (kB/s):<input type=text name=min_www><br>
Minimalne pasmo dla p2p (kB/s):<input type=text name=min_p2p><br>
Maxymalne pasmo dla www (kB/s):<input type=text name=max_www><br>
Maxymalne pasmo dla p2p (kB/s):<input type=text name=max_p2p><br>
<input type=hidden name=dane value=zapisane>

<input type=submit value=Zapisz>


</form>
';
}

...............

no i jest tam w nim wywoływane polecenie SQL-owe, które po wciśnięciu przycisku "Zapisz" dodaje rekord do bazy. To samo zrobiłem dla usunięcia. Ale nie mam w ogóle pomysłu jak przygotować "akcje" modyfikacji rekordu.
WIadomo gdybym się machnął w którymś polu (lub polach) i chciałbym poprawić to na ten czas musze usuwać rekord i dodawać go ponownie a jak wiadomo jest to bez sensu.
Proszę o pomoc, tylko jakbym mógł to o dość szczegółową bo dopiero zaczynam

pozdrawiam


apt-get remove windows ....
apt-get install debian :)

Offline

 

#2  2006-12-23 14:46:51

  KARQL - Członek DUG

KARQL
Członek DUG
Zarejestrowany: 2006-03-06

Re: php modyfikacja danych na formularzu

Nic prostszego. Robisz sobie np przywyswietlaniu przycisk edytuj w ktorym jest wartosc ide rekordu w bazie. Mozesz go wyslac getem np.
tabela?mode=edit&id=id_rekordu

oczywiscie nie zapomnij o zabezpieczeniach typu intval itp. ale o tym chyba nie musze mowic.

Po id rekordu wyciagasz dane z bazy selectem. Przesylasz je do formularza dodajac poprostu do value w formularzu.

No i przesylasz dane do nastepnej akcji i tam juz masz polecenie update.


[img]http://img254.imageshack.us/img254/1225/gentoobar1rs9.png[/img]

Offline

 

#3  2006-12-23 16:33:07

  maryaan - Użytkownik

maryaan
Użytkownik
Skąd: bieszczadzka wioska :)
Zarejestrowany: 2006-12-02

Re: php modyfikacja danych na formularzu

jak juz kolega napisal, przy kazdej pozycji wytstarczy przycisk lub zwyklly link do edit.php?id=id_rekordu_w_aktualnym_wierszu

teraz plik edit.php

<?
polaczenie z baza
select z id ktore przesylasz getem za pomoca powyzszego linka/przycisku
sprawdzenie czy jest ustawiona jakas zmienna $_POST['blablabla'] jesli nie jest to wyswietlasz formularz:
wyswietlanie identycznego formularza jak przy dodaj, z tym ze kazde pole ma atrybut value do ktorego wpisujesz dana wyciagnieta z bazy selectem, dodajesz pole hidden o nazwie blablabla zeby wyczaic czy aktualnie dostales dane do zapisu czy dopiero wyswietlasz formularz

jesli $_POST['blablabla'] jest ustawiona to wykonujesz "update uzytkownicy set imie = $costam, nazwisko = $costam2 ..."
?>
$costam, $costam2 itd... to juz zmienne $_POST['imie'], $_POST['nazwisko'] itd... po sprawdzeniu czy np nie sa puste (o ile jest taki warunek), czy odpowiednie pola zawierajace liczby faktycznie nimi sa itp itd

Offline

 

#4  2006-12-23 18:34:38

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: php modyfikacja danych na formularzu

Wartości właściwości htmlowych zamykaj w cudzysłowiach, bo inaczej może być nie cacy.

Offline

 

#5  2006-12-24 00:58:24

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: php modyfikacja danych na formularzu

dzieki za szybką pomoc.. spróbuje

pozdrawiam


apt-get remove windows ....
apt-get install debian :)

Offline

 

#6  2006-12-24 01:56:02

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: php modyfikacja danych na formularzu

a jednak poległem ..;(

Na sam początek chciałem zmusić formularz do wyświetlenia chociaż jednej zmiennej (imienia), bez podejmowania akcji update, ale w polu z imieniem wstawiła mi się nazwa zmiennej a nie jej wartość.

oto kod mojego pliku edycja.php

?php

POŁACZENIE DO BAZY

if (!($dane=="zapisane"))

{

$zapytanie_1=mysql_query("SELECT * FROM data_personal where id='$id' ");

while($rekord_1=mysql_fetch_array($zapytanie_1))

{




echo '


<form action="tabela.php?akcja=formularz" method=POST>
<br>
Dane osobowo/adresowe: <br>
<br>
Imie: <input type=text name=imie value=$rekord_1[imie]> <br>

<input type=hidden name=dane text=zapisane>

<input type=submit value=Zapisz>


</form>
';
}
}

?>

proszę o pomoc


apt-get remove windows ....
apt-get install debian :)

Offline

 

#7  2006-12-24 02:23:25

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: php modyfikacja danych na formularzu

juz znalazlem antidutum chcialem pomieszac html z php w nie umiejetny sposob... dodalem wszedzie : print i cudysłow zamiast : echo ' ...' i działa

jeszcze raz wielkie dzięki za pomoc ;)

pozdrawiam


apt-get remove windows ....
apt-get install debian :)

Offline

 

#8  2006-12-24 02:44:30

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: php modyfikacja danych na formularzu

"Echo" mogło zostać. Po prostu tekst objąłeś apostrofami, a wtedy zmienne nie są interpretowane. W takich sytuacjach używa się cydzysłowów.

Offline

 

#9  2006-12-25 23:12:21

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: php modyfikacja danych na formularzu

aha dzieki za rade

pzdr


apt-get remove windows ....
apt-get install debian :)

Offline

 

#10  2006-12-25 23:46:07

  cim - Użytkownik

cim
Użytkownik
Skąd: Stargard
Zarejestrowany: 2005-07-31
Serwis

Re: php modyfikacja danych na formularzu

Jeszcze w ramach kosmetyki radze wychodzić z tagów PHP jeżeli masz duży kawałek HTML`a (nie ma wtedy problemów z cudzysłowami etc.)

Jest też składania zmiennych HEREDOC

Kod:

$zmienna =<<<COS

#cokolwiek, z różnymi cudzysłowami etc

COS;

po szczegóły tej składni odsyłam do manuala (PL): http://pl2.php.net/manual/pl/language.types.string.php#language.types.string.syntax.heredoc

Offline

 

#11  2006-12-26 00:18:04

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

Re: php modyfikacja danych na formularzu

A ja proponuje

Kod:

print (" 
<form action="tabela.php?akcja=formularz" method=POST> 
<br> 
Dane osobowo/adresowe: <br> 
<br> 
Imie: <input type=text name=imie value="".$rekord_1[imie].""> <br> 
<input type=hidden name=dane text=zapisane> 
<input type=submit value=Zapisz> 
 </form> "); 

[url=http://dug.net.pl][b]DUG[/b][/url]

Offline

 

#12  2006-12-26 19:25:50

  zyga - Użytkownik

zyga
Użytkownik
Zarejestrowany: 2005-08-25

Re: php modyfikacja danych na formularzu

i temat jeszcze powrócił (mówiłem że zaczynam) ...

a więc po wielu próbach przybywam w drugi dzień świąt by zgłosić mój błąd a raczej problem ...

Doszedłem już do tego że wchodząc w edycje wypełnia i odpowiednie pola, lecz mam problem tego typu że nie aktualizuje pól, a może inaczej aktualizuje ale robi je puste. Zapytanie SQL-owe jest raczej prawidłowe, ponieważ jak wpisze wartość na sztywno w pliku edycja.php to wstawia mi  tą wartość w formularz. Przesyłam kod, i proszę o cierpliwość i ewentualną pomoc .. pozdrawiam

<?php

polaczenie do bazy

if (!($dane=="zmienione"))

{

$zapytanie_1=mysql_query("SELECT * FROM data_personal where id='$id'");

while($rekord_1=mysql_fetch_array($zapytanie_1))

{


echo "

<form action='tabela.php?akcja=edycja' method=POST>
Dane osobowo/adresowe: <br>
NIP: <input type=text name=nip size=50 value=$rekord_1[nip]> <br>
Imie: <input type=text name=imie value=$rekord_1[imie]> <br>
Nazwisko: <input type=text name=nazwisko value=$rekord_1[nazwisko]> <br>
Ulica: <input type=text name=ulica value=$rekord_1[ulica]> <br>
Miejscowość: <input type=text name=miejscowosc value=$rekord_1[miejscowosc]> <br>
Gadu-Gadu: <input type=text name=gadu value=$rekord_1[gg]> <br>
E-mail:<input type=text name=mail value=$rekord_1[email]> <br>
<input type=hidden name=dane text=zmienione>
<input type=submit value=Zmień>
</form>
";



mysql_query("UPDATE `data_personal` SET `nip` = 'text_na_sztywno_i_jego_widac',`imie` = '$imie',`nazwisko` = '$nazwisko',`ulica` = '$ulica',`miejscowosc` = '$miejscowosc',`gg` = '$g
g',`email` = '$mail' WHERE `data_personal`.`id` = '$id'");
echo mysql_error();

}
}

?>


apt-get remove windows ....
apt-get install debian :)

Offline

 

#13  2006-12-27 00:54:11

  cim - Użytkownik

cim
Użytkownik
Skąd: Stargard
Zarejestrowany: 2005-07-31
Serwis

Re: php modyfikacja danych na formularzu

Nie sprawdzałem czy w praktyce działa, ale na 'oko' chyba będzie ok.
[ btw. na przyszłość używaj znacznika 'code' do kodu źródłowego ]

Kod:

<?php

# polaczenie do bazy

if (!($dane=="zmienione")){

$zapytanie_1=mysql_query("SELECT * FROM data_personal where id='$id'");

while($rekord_1=mysql_fetch_array($zapytanie_1)){


echo "

<form action='tabela.php?akcja=edycja' method=POST>
Dane osobowo/adresowe: <br>
NIP: <input type=text name=nip size=50 value=$rekord_1[nip]> <br>
Imie: <input type=text name=imie value=$rekord_1[imie]> <br>
Nazwisko: <input type=text name=nazwisko value=$rekord_1[nazwisko]> <br>
Ulica: <input type=text name=ulica value=$rekord_1[ulica]> <br>
Miejscowość: <input type=text name=miejscowosc value=$rekord_1[miejscowosc]> <br>
Gadu-Gadu: <input type=text name=gadu value=$rekord_1[gg]> <br>
E-mail:<input type=text name=mail value=$rekord_1[email]> <br>
<input type=hidden name=id value=$id>
<input type=hidden name=dane value=zmienione>
<input type=submit value=Zmień>
</form>
";
}

}else{

mysql_query("UPDATE `data_personal` SET `nip` = 'text_na_sztywno_i_jego_widac',`imie` = '$imie',`nazwisko` = '$nazwisko',`ulica` = '$ulica',`miejscowosc` = '$miejscowosc',`gg` = '$g
g',`email` = '$mail' WHERE `data_personal`.`id` = '$id'");
echo mysql_error();

}

?>

Offline

 

#14  2006-12-27 08:54:17

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: php modyfikacja danych na formularzu

Ja bym jeszcze zmienił to (bo dziwnie wygląda ;) no i mamy przecież != do dyspozycji):

Kod:

if (!($dane=="zmienione"))

na to:

Kod:

if( $dane!="zmienione" )

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.009 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00012 SET CHARSET latin2
0.00006 SET NAMES latin2
0.00107 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.117.75.53' WHERE u.id=1
0.00066 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.117.75.53', 1732268198)
0.00044 SELECT * FROM punbb_online WHERE logged<1732267898
0.00135 SELECT topic_id FROM punbb_posts WHERE id=47923
0.00005 SELECT id FROM punbb_posts WHERE topic_id=6242 ORDER BY posted
0.00053 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=6242 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00191 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=6242 ORDER BY p.id LIMIT 0,25
0.00085 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=6242
Total query time: 0.0071 s