Problem z modyfikacją danych telefonów w bazie MYSQL

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
woznica
Posty: 3
Rejestracja: sob mar 24, 2007 10:56 pm
Lokalizacja: Radom
Kontakt:

Problem z modyfikacją danych telefonów w bazie MYSQL

Post autor: woznica »

Witam.
Mam problem z modyfikacją danych numerów telefonów w mojej bazie z poziomu przeglądarki. W phpmyadmin nie mam problemu ale chcę żeby moi klienci mogli sobie sami modyfikować nr telefonów z poziomu php. Problem jest taki że po wyciągnięciu danych i zapisie kasują sie w bazie a nie modyfikują
Więc do rzeczy pierwsze zapytanie wyciągające telefony z bazy do modyfikacji

Kod: Zaznacz cały


$query  = "SELECT * FROM telefon where Uzytkownik='user55' ";

$result = mysql_query($query,$link)
    or die("<tr><td class=inside><h5>Zapytanie nie powiodło się</h5>");

print "<tr>
	<td class=white> <h6>Wybrano telefony do edycji</h6> ";

if ($result){
while ($row = mysql_fetch_array($result)) {
$Nazwa = $row['Nazwa'];
$Praca = $row['Praca'];
$Komorka = $row['Komorka'];
$Dom = $row['Dom'];
$Uzytkownik = $row['Uzytkownik'];

         $wyswietl = "<TABLE border=0 >

<TD class=motto>Imię i Nazwisko <input type=text name=Nazwa value=\"$Nazwa\" size=30>

<TD class=motto>Telefon praca <input type=text name=Praca value=\"$Praca\" size=30>

<TD class=motto>Telefon komórkowy <input type=text name=Komorka value=\"$Komorka\" size=30>

<TD class=motto>Telefon domowy <input type=text name=Dom value=\"$Dom\" size=30>
<TD class=motto>Użytkownik <input type=text name=Uzytkownik value=\"$Uzytkownik\" size=30><BR></TD> 

";

echo "<a href='index.php?id=zmodyfikowano_user55'>zapisz $wyswietl</a>";
}
}

else { echo "<tr><td class=inside><h5>Nie udało się wybrać danych do modyfikacji</h5>";}

mysql_close();
?>
teraz kod modyfikujący

Kod: Zaznacz cały

$query  = "UPDATE `telefon` SET Nazwa = \"$Nazwa\",Praca = \"$Praca\",Komorka = \"$Komorka\",Dom = \"$Dom\"  WHERE uzytkownik='user55' ";




if  (!mysql_query($query, $link))
print " Nie udało się  zaktualizować telefonów z tabeli.
       Numer błędu: ".mysql_ernno()." Opis błędu:".mysql_error();

else
print "<tr>
	<td class=inside><h4>Poprawionych zostało: ".mysql_affected_rows($link)."  rekordów!</h4>";

mysql_close();
?>

        
Oczywiście już nie pisałem kodu łączenia się z bazą, czy jest tu ktoś co może mi podesłać jakąś cenna wskazówkę?
123456
Zaczyna działać
Zaczyna działać
Posty: 514
Rejestracja: sob paź 28, 2006 1:19 pm

Re: Problem z modyfikacją danych telefonów w bazie MYSQL

Post autor: 123456 »

Poza jedną literówką w nazwie funkcji mysql_ernno to wydaje się być wszystko ok...
Problem jest taki że po wyciągnięciu danych i zapisie kasują sie w bazie a nie modyfikują
Mógłbyś trochę sprecyzować: czy rekordy są w ogóle usuwane czy może są zamieniane nie tylko te które powinny być zmienione?Bo to spora różnica, a z tego co napisałeś wynika, że są usuwane...

Trochę niepokojące jest to, że tabela (z tego co widać) nie ma żadnego klucza (no chyba, że jest robiony po nazwie użytkownika w co wątpię bo nie widziałem jeszcze, żeby ktoś robił klucz po tekście), przez co w klauzuli WHERE podstawiasz tekst a nie liczbę, a to może być powodem zmiany większej ilości rekordów niż ktoś by sobie życzył.
ODPOWIEDZ