Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie mogę zlokalizować błędu
Forum PHP.pl > Forum > PHP
artur81
Witam szanownych forumowiczów. Mam prośbe o zlokalizowanie 2 błędów w poniższym skrypcie.
1. Skrypt nie chce mi edytowac danych
2. Jak kasuję dane i pozniej dodam nowe to dostaja one numer wyzszy o jeden od ostatniej.
Dokladnie tak, ze mam 5 rekordow (o numerach od 1 do 5) , skasuje rekord numer 5 , dodam nowy i on otrzymuje numer 6 ( a powinien 5 bo piąty wczesniej
skasowalem).
Kod php
[php]<?php
mysql_connect ("localhost", "root", "") or
die ("Nie można nawiązać połączenia z MySql");
mysql_select_db ("artur81") or
die ("Nie można nawiązać połącznia z bazą artur81");

if ($akcja == 'dodaj') { // dodawanie wiersza do tabeli
if ($pyt && $odp1 && $odp2 && $odp3 && $odppop) {
$zapytanie = "INSERT INTO pytania (nr, pyt, odp1, odp2, odp3, odppop)";
$zapytanie .= "VALUES ('', '$pyt' , '$odp1', '$odp2', '$odp3', '$odppop');";
$wynik = mysql_query ($zapytanie);
}
} elseif ($akcja == 'popraw') { // poprawianie
if ($pyt && $odp1 && $odp2 && $odp3 && $odppop) {
$zapytanie = "UPDATE pytania SET (pyt='$pyt', odp1='$odp1', odp2='$odp2', odp3='$odp3', odppop='$odppop' WHERE nr='$nr' ;)";
$wynik = mysql_query ($zapytanie);
}
} elseif ($akcja == 'edytuj') {
$zapytanie = "SELECT * FROM pytania WHERE nr='$nr';";
$wynik = mysql_query ($zapytanie);
$rekord = mysql_fetch_array ($wynik);
$nr = $rekord[0];
$pyt= $rekord[1];
$odp1 = $rekord[2];
$odp2 = $rekord[3];
$odp3 = $rekord[4];
$odppop = $rekord[5];
print '<form method = "post"> Poprawa rekordu:';
print '<input type = "hidden" name="akcja" value="popraw">';
print '<input type = "hidden" name="nr" value="'.$nr.'"><table>';
print '<tr><td>Pytanie:</td><td><input type = "text" name="pyt" value="'.$pyt.'"></td></tr>';
print '<tr><td>Odpowiedź pierwsza:</td><td><input type = "text" name="odp1" value="'.$odp1.'"></td></tr>';
print '<tr><td>Odpowiedź druga:</td><td><input type = "text" name="odp2" value="'.$odp2.'"></td></tr>';
print '<tr><td>Odpowiedź trzecia:</td><td><input type = "text" name="odp3" value="'.$odp3.'"></td></tr>';
print '<tr><td>Odpowiedź poprawna:</td><td><input type = "text" name="odppop" value="'.$odppop.'"></td></tr>';
print '</table><input type="submit" value="Popraw dane"></form>';
}
elseif ($akcja == 'skasuj') {
$wynik =mysql_query ("DELETE FROM pytania WHERE nr='$nr';");
}


$wynik = mysql_query ("SELECT * FROM pytania;");
print "<table cellpadding=5 cellspacing=5 border=0>";
print "<tr><td><b>Numer</b></td><td align = center><b>Pytanie</b></td>";
print "<td align = center><b>Odpowiedź 1</b></td><td align = center>
Imperior
Generalnie proponuję Ci się pouczyć SQLa, przeczytać manuala MySQL.
Odpowiedzi są następujące
1. Zła konstrukcja zapytania
2. Nie znajomość MySQL

ad 1.
  1. <?php
  2. $zapytanie = &#092;"UPDATE pytania SET (pyt='$pyt', odp1='$odp1', odp2='$odp2', odp3='$odp3', odppop='$odppop' WHERE nr='$nr';)\";
  3. ?>

Nawias, średnik...

ad 2. Tak właśnie działa AUTO_INCREMENT

Odsyłam do manuala.

PS. Nie na darmo na forum jest opcja kolorowania składni.

--edit--
PPS. Oczywiście nie wykluczam innych błędów znajdujących się w kodzie tongue.gif
hwao
My tez nie mozemy Ci pomuc ponieważ:

Prosze to poprawic a wszystkim bedzie lepiej
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.