Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] nie aktualizuje danych
somebodynonbody
post 9.01.2012, 20:11:32
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.01.2012

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


witam.
na podstawie tutoriala zamieszczonego na stronie php.pl napisałem skrypt do dodawania danych do bazy danych. postanowiłem dodać opcję aktualizacji danych i usuwania, ale napotkałem problem przy aktualizacji a mianowicie. Mam dwa pliki aktualizujosoba i aktualizujosoba2, w pliku pliku aktualizujosobe pokazują mi się poprawne dane dla konkretnego id, ale po ich zmianie w formularzu otrzymuje komunikat że wpis dodano tylko że on się nie aktualizuje.

plik aktualizujosoba
CODE
<?
$o_idosoby=$_GET['o_idosoby'];
$username="root";
$password="123";
$database="testowa";

mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die ("Nie mogę połączyć się z serwerem SQL.");


$query=" SELECT * FROM osoby WHERE o_idosoby='$o_idosoby'";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();

$i=0;
while ($i < $num) {
$o_imie=mysql_result($result,$i,"o_imie");
$o_nazwisko=mysql_result($result,$i,"o_nazwisko");


++$i;
}
?>

<form action=aktualizujosoba2.php method=post>
<input type=hidden name=ud_id value="<? echo $o_idosoby; ?>">
Imię: <input type=text name=ud_imie value="<? echo $o_imie; ?>"><br>
Nazwisko: <input type=text name=ud_nazwisko value="<? echo $o_nazwisko; ?>"><br>
<input type=Submit value=Aktualizuj>
</form>


plik aktualizujosoba2
CODE
<?
$ud_id=$_POST['ud_id'];
$ud_imie=$_POST['ud_imie'];
$ud_nazwisko=$_POST['ud_nazwisko'];


$username="root";
$password="123";
$database="testowa";
mysql_connect('localhost',$username,$password);

$query="UPDATE osoby SET o_imie=$ud_imie, o_nazwisko=$ud_nazwisko WHERE o_idosoby=$ud_id";
mysql_query($query);
echo "Rekord zaktualizowany";
mysql_close();
?>

<br><a href=dodajosoba.php>Powrót do listy osób</a>
Go to the top of the page
+Quote Post
Adi32
post 9.01.2012, 21:45:21
Post #2





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


  1. $query="UPDATE osoby SET o_imie='$ud_imie', o_nazwisko='$ud_nazwisko' WHERE o_idosoby='$ud_id'";

Wszystko poza INTem w SQLu zawsze bierzemy w apostrofy.


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
somebodynonbody
post 10.01.2012, 08:46:51
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.01.2012

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


Cytat(Adi32 @ 9.01.2012, 21:45:21 ) *
  1. $query="UPDATE osoby SET o_imie='$ud_imie', o_nazwisko='$ud_nazwisko' WHERE o_idosoby='$ud_id'";

Wszystko poza INTem w SQLu zawsze bierzemy w apostrofy.


Już też tak próbowałem.

Wywołałem sobie też wartość zmiennych z pliku apltualizujosoba2 i są poprawne, funkcja mysql_errno() pokazuje kod 0461. Ma ktoś jeszcze jakieś pomysły, dodam że polecenie update dodane przez phpmyadmin wykonuje się poprawnie.
Go to the top of the page
+Quote Post
nospor
post 10.01.2012, 08:58:45
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
funkcja mysql_errno() pokazuje kod 0461
No to masz błąd.... wyświetl sobie jeszcze mysql_error() a zobaczysz tekst tego błędu.
A na przyszłość
Temat: Jak poprawnie zada pytanie


--------------------

"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
somebodynonbody
post 10.01.2012, 09:28:18
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.01.2012

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


Dzięki, otrzymałem komunikat że nie wybrałem bazy danych. ale gdy w poleceniu sql wpisuje use i nazwe bazy danych otrzymuje komuinikat o błędnej składni.
CODE
USE 'testowa' UPDATE osoby SET o_imie='$ud_imie', o_nazwisko='$ud_nazwisko' WHERE o_idosoby='$ud_id'
komunikat błędu:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE"
jak mogę poprawnie wybrać bazę danych?
Go to the top of the page
+Quote Post
nospor
post 10.01.2012, 09:29:19
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Baze wybiera się osobnym poleceniem a nie razem z update
http://pl.php.net/manual/en/function.mysql-select-db.php



--------------------

"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
somebodynonbody
post 10.01.2012, 09:40:25
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.01.2012

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


nospor, dzięki teraz poszło. W mssql można napisać po prostu use i nazwe z tąd moje pytanie. Możesz mi wytłumaczyć dlaczego polecenia insert i delete w mysql działały mi bez wybierania bazy?
Go to the top of the page
+Quote Post
nospor
post 10.01.2012, 09:41:38
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Możesz mi wytłumaczyć dlaczego polecenia insert i delete w mysql działały mi bez wybierania bazy?
Nie ma takiej opcji, musiałeś wybrać bazę.


--------------------

"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
somebodynonbody
post 10.01.2012, 09:46:04
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 9.01.2012

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


Cytat(nospor @ 10.01.2012, 09:41:38 ) *
Nie ma takiej opcji, musiałeś wybrać bazę.

Tak własnie teraz zobaczyłem w innych plikach że to przeoczyłem. Dzięki za pomoc i pozdrawiam.
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: 19.07.2025 - 10:01