Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] nie aktualizuje danych
Forum PHP.pl > Forum > Przedszkole
somebodynonbody
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>
Adi32
  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.
somebodynonbody
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.
nospor
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
somebodynonbody
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?
nospor
Baze wybiera się osobnym poleceniem a nie razem z update
http://pl.php.net/manual/en/function.mysql-select-db.php

somebodynonbody
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?
nospor
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ę.
somebodynonbody
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.