Witam serdecznie. Mam do zrobienia mały skrypt z obsługą MySQL, która ma imitować książkę telefoniczną. Udało mi się wyświetlić rekordy z basy, dodać opcję usunięcia rekordów oraz dodanie nowego. Mam jednak problemy z opcją, która by edytowała istniejące już rekordy w tabeli. Skrypt nie chce ich w żaden sposób poprawiać, jak również nie pokazuje danych w wybranym polu edycji… Kombinowałem trochę z tym, ale niestety nie mogę sobie poradzić i bardzo bym prosił kogoś o pomoc. Oto to, co napisałem:
<?php
mysql_connect ( "localhost", "root", "xxxx") or
die ("Nie mozna polaczyc sie z MySQL");
mysql_select_db ("zal") or
die("Nie mozna polaczyc sie z baza ZAL");
if($_POST['oper']=='add')
{
if($_POST['Imie'] && $_POST['Nazwisko'] && $_POST['Numer'])
{
$query="INSERT INTO ksiazka (Imie, Nazwisko, Numer) VALUES";
$query.=" ('".$_POST['Imie']."', '".$_POST['Nazwisko']."', '".$_POST['Numer']."');";
$wynik=mysql_query($query);
}
}
elseif($_POST['oper']=='change')
{
if($_POST['Imie'] && $_POST['Nazwisko'] && $_POST['Numer'])
{
$query="UPDATE ksiazka SET Imie='".$_POST['Imie']."', Nazwisko=";
$query.="'".$_POST['Nazwisko']."', Numer='".$_POST['Numer']."' WHERE Id='".$_POST['Id']."';";
$wynik=mysql_query($query);
}
}
elseif($_GET['oper']=='edit')
{
$query="SELECT * FROM ksiazka WHERE Id='".$_GET['Id']."';";
$wynik=mysql_query($query);
$rekord=mysql_fetch_assoc($wynik);
$Id=$rekord['Id'];
$Imie=$rekord['Imie'];
$Nazwisko=$rekord['Nazwisko'];
$Adres=$rekord['Adres'];
$Numer=$rekord['Numer'];
print("id=$Id, imie=$Imie, nazwisko=$Nazwisko
");
print 'Poprawa rekordu:';
print '';
print '';
print '
| Imie: | |
| Nazwisko: | |
| Numer: | |
‘; } elseif($_GET[‘oper’]==‘del’) { $wynik=mysql_query("DELETE FROM ksiazka WHERE id=’".$_GET[‘id’]."’;"); } print(" “); print(“Ksiazka Telefoniczna”); print(” “); $res=mysql_query(“SELECT * FROM ksiazka;”) or die (“blad w pytaniu”); print( " print( " Imie** Nazwisko**”); print( “Numer\n” ); while($rekord=mysql_fetch_assoc ($res)) { $Id=$rekord[‘Id’]; $Imie=$rekord[‘Imie’]; $Nazwisko=$rekord[‘Nazwisko’]; $Numer=$rekord[‘Numer’]; print( “$Imie$Nazwisko$Numer”); print(" skasuj"); print(" edytuj\n"); } print(""); print(" "); print 'Nowy rekord: '; print ‘’; print ’
Sprawdź czy przy link, w który klikasz by zacząć edycję ma w sobie ID. Jeśli go nie ma to nic niepobierze się z bazy i nic sie nie zapisze, bo nie wiadomo którego ID ma dotyczyć edycja.
Link zawiera niestety Id w linku, to była również jedna z moich pierwszych myśli. Niestety obawiam się, że problemem jest jakiś drobny błąd… a męczę się ze skurczybykiem już dwa dni
EDIT: W końcu udało mi się odczytać dane z bazy! Problem leżał w tym, że napisałem Id zaczynając od wielkiej litery… Natomiast ze zmianą danych nadal jest problem. Tak czy siak, nowy kod:
EDIT2: Udało się! ;D Dziękuję za osobie, która się odezwała w temacie, udało się Końcowy kod:
<?php
mysql_connect ( "localhost", "root", "xxxx") or
die ("Nie mozna polaczyc sie z MySQL");
mysql_select_db ("zal") or
die("Nie mozna polaczyc sie z baza ZAL");
$x="a34534 ";
if($_POST['oper']=='add')
{
if($_POST['Imie'] && $_POST['Nazwisko'] && $_POST['Numer'])
{
$query="INSERT INTO ksiazka (Imie, Nazwisko, Numer) VALUES";
$query.=" ('".$_POST['Imie']."', '".$_POST['Nazwisko']."', '".$_POST['Numer']."');";
$x=$query;
$wynik=mysql_query($query);
}
}
elseif($_POST['oper']=='change')
{
if($_POST['Imie'] && $_POST['Nazwisko'] && $_POST['Numer'])
{
$query="UPDATE ksiazka SET Imie='".$_POST['Imie']."', Nazwisko=";
$query.="'".$_POST['Nazwisko']."', Numer='".$_POST['Numer']."' WHERE id='".$_POST['id']."';";
$wynik=mysql_query($query);
}
}
elseif($_GET['oper']=='edit')
{
$query="SELECT * FROM ksiazka WHERE id='".$_GET['id']."';";
$wynik=mysql_query($query);
$rekord=mysql_fetch_assoc($wynik);
$Id=$rekord['Id'];
$Imie=$rekord['Imie'];
$Nazwisko=$rekord['Nazwisko'];
$Numer=$rekord['Numer'];
print("id=$Id, imie=$Imie, nazwisko=$Nazwisko
");
print 'Poprawa rekordu:';
print '';
print '';
print '
| Imie: | |
| Nazwisko: | |
| Numer: | |
‘; } elseif($_GET[‘oper’]==‘del’) { $wynik=mysql_query("DELETE FROM ksiazka WHERE id=’".$_GET[‘id’]."’;"); } print(" “); print(“Ksiazka Telefoniczna”); print(” “); $res=mysql_query(“SELECT * FROM ksiazka;”) or die (“blad w pytaniu”); print( " print( " Imie** Nazwisko**”); print( “Numer\n” ); while($rekord=mysql_fetch_assoc ($res)) { $Id=$rekord[‘Id’]; $Imie=$rekord[‘Imie’]; $Nazwisko=$rekord[‘Nazwisko’]; $Numer=$rekord[‘Numer’]; print( “$Imie$Nazwisko$Numer”); print(" skasuj"); print(" edytuj\n"); } print(""); print(" "); print 'Nowy rekord: '; print ‘’; print ’