[PHP][MySQL] Problem z usuwaniem rekordów - MateuszRyaN - 13-11-2010
Witam. Mam taki problem. Otóż w moim skrypcie po naciśnięciu klawisza isset($_POST['all']) Tworzy się tabela, w której wyświetla mi wszystkie rekordy. Dodatkowo w ostatniej kolumnie, do każdego rekordu chciałem mieć opcję DEL do usuwania go i EDIT do edycji. I też tak jest, udało mi się to wmiare ogarnąć. Niestety jest taki problem, że przycisk DEL w jakiś sposób łączy się z EDIT. To znaczy, gdy klikne DEL (elegancko usuwa mi rekord) ale jak dam EDIT to co prawda wyświetla mi formularz do edycji, ale niżej wyskakuje mi poprzednia funkcja "Rekord został usunięty". Nie wiem w której części skryptu jest popełniony błąd. Powinno być osobno w odnośniku DELL i osobno EDIT. Proszę o pomoc.
Kod PHP: <?php
$connection = @mysql_connect('localhost', 'root', 'haslo') or die('Brak połączenia z serwerem MySQL'); $db = @mysql_select_db('palma77_manager', $connection) or die('Nie mogę połączyć się z bazą danych'); mysql_query("SET CHARSET 'latin2'", $connection); mysql_query("SET NAMES latin2"); mysql_query("SET CHARACTER SET latin2"); mysql_query("SET collation_connection = latin2_general_ci");
if (isset($_POST['all'])) {
$wynik = mysql_query("SELECT * FROM manager ORDER BY `id` DESC ;") or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0) {
echo "<br>"; echo "<table cellpadding='4' cellspacing='0' style='border:1px solid #aebecc'>"; echo "<tr style='border:1px solid #aebecc'>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".ID."</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".DATA."</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".NAZWISKO."</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".TELEFON."</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".SPRZĘT."</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".MODEL."</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".PRZYJMOWAŁ."</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".CZYNNOŚĆ."</td>"; echo "</tr>"; while($r = mysql_fetch_object($wynik)) { echo "<tr style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->id."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->data."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->nazwisko."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->telefon."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->nazwa_sprzetu."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->model."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->przyjmuje."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif; '> <a style='text-decoration:underline; color:#808d98;' href=\"menager.php?a=del&id={$r->id}\">DEL</a> <a style='text-decoration:underline; color:#808d98;' href=\"menager.php?a=edit&id={$r->id}\">EDIT</a> </td>"; echo "</tr>"; } echo "</table>"; } } $a = trim($_GET['a']); $id = trim($_GET['id']); if(isset($_GET['id']) && ( $a = 'edit')) {
$wynik = mysql_query("SELECT * FROM manager WHERE id='$id'") or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0) { $r = mysql_fetch_assoc($wynik);
echo '<form action="menager.php?a=save" method="post"> <input type="hidden" name="a" value="save" /> <input type="hidden" name="id" value="'.$id.'" /> nazwisko:<br /> <input type="text" name="nazwisko" value="'.$r->nazwisko.'" /><br /> telefon<br /> <input type="text" name="telefon" value="'.$r->telefon.'" /><br /> <input type="submit" value="popraw" /> </form>'; } } elseif($a == 'save') { $id = $_POST['id']; $nazwisko = trim($_POST['nazwisko']); $telefon = trim($_POST['telefon']); mysql_query("UPDATE manager SET nazwisko='$nazwisko', telefon='$telefon' WHERE id='$id'") or die('Błąd zapytania'); echo 'Dane klienta zostały zaktualizowane poprawnie.'; } if(isset($_GET['id']) && ( $a = 'del')) { $wynik = @mysql_query("DELETE FROM manager WHERE `id`='".mysql_real_escape_string($_GET['id'])."'") or die('Błąd zapytania: '.mysql_error()); echo 'Zlecenie zostało poprawnie usunięte.'; }
?>
RE: [PHP][MySQL] Problem z usuwaniem rekordów - Pedro84 - 13-11-2010
Poznaj subtelne różnice pomiędzy =, == a ===.
RE: [PHP][MySQL] Problem z usuwaniem rekordów - MateuszRyaN - 14-11-2010
(13-11-2010, 20:22)Pedro84 napisał(a): Poznaj subtelne różnice pomiędzy =, == a ===.
Wiem jaka jest różnica wiem już gdzie popełniłem błąd. Usuwanie działa bezproblemu ale gdzieś jest błąd w edycji. Podeśle 2 screeny w których będzie tabela przed wciśnięciem przycisku EDIT i po:
przed kliknięciem EDIT:
![[Obrazek: 20101113223218.jpg]](http://img138.imageshack.us/img138/9760/20101113223218.jpg)
po kliknięciu: (dodam że w formularzu edycji na razie mam tylko nazwisko i telefon dla testów...no i wyświetla się z echa Że rekord został zaktualizowany)
![[Obrazek: 20101113223251.jpg]](http://img577.imageshack.us/img577/3840/20101113223251.jpg)
Jak widać wszystko ładnie zmienia...tylko całość wygląda jakby w ogóle nie łapało mi ID. Nie wiem czym to moze być spowodowane. Wkleje poniżej na tyle ile mogłem poprawiony kod:
Kod PHP: <?php $connection = @mysql_connect('localhost', 'xxx', 'yyy') or die('Brak połączenia z serwerem MySQL'); $db = @mysql_select_db('palma77_manager', $connection) or die('Nie mogę połączyć się z bazą danych'); mysql_query("SET CHARSET 'latin2'", $connection); mysql_query("SET NAMES latin2"); mysql_query("SET CHARACTER SET latin2"); mysql_query("SET collation_connection = latin2_general_ci"); if (isset($_POST['all'])) {
$wynik = mysql_query("SELECT * FROM manager ORDER BY `id` DESC ;") or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0) {
echo "<br>"; echo "<table cellpadding='4' cellspacing='0' style='border:1px solid #aebecc'>"; echo "<tr style='border:1px solid #aebecc'>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>ID</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>DATA</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>NAZWISKO</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>TELEFON</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>SPRZĘT</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>MODEL</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>PRZYJMOWAŁ</td>"; echo "<td style='border:1px solid #aebecc; font-weight:bold; opacity:0.7;filter:alpha(opacity=70); background-color:#FFF; text-align: center; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>CZYNNOŚĆ</td>"; echo "</tr>"; while($r = mysql_fetch_object($wynik)) { echo "<tr style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->id."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->data."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->nazwisko."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->telefon."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->nazwa_sprzetu."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->model."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif;'>".$r->przyjmuje."</td>"; echo "<td style='border:1px solid #aebecc; font-size:12px; font-family:Arial, Helvetica, sans-serif; '> <a style='text-decoration:underline; color:#808d98;' href=\"menager.php?a=del&id={$r->id}\">DEL</a> <a style='text-decoration:underline; color:#808d98;' href=\"menager.php?a=edit&id={$r->id}\">EDIT</a> </td>"; echo "</tr>"; } echo "</table>"; } } $a = trim($_GET['a']); $id = trim($_GET['id']); if(isset($_GET['id']) && ( $a == 'edit')) {
$wynik = mysql_query("SELECT * FROM manager WHERE id='$id'") or die('Błąd zapytania');
if(mysql_num_rows($wynik) > 0) { $r = mysql_fetch_assoc($wynik);
echo '<form action="menager.php?a=save" method="post"> <input type="hidden" name="a" value="save" /> <input type="hidden" name="id" value="'.$id.'" /> nazwisko:<br /> <input type="text" name="nazwisko" value="'.$r->nazwisko.'" /><br /> telefon<br /> <input type="text" name="telefon" value="'.$r->telefon.'" /><br /> <input type="submit" value="popraw" /> </form>'; } } elseif($a == 'save') { $id = $_POST['id']; $nazwisko = trim($_POST['nazwisko']); $telefon = trim($_POST['telefon']); mysql_query("UPDATE manager SET nazwisko='$nazwisko', telefon='$telefon' WHERE id='$id'") or die('Błąd zapytania'); echo 'Dane klienta zostały zaktualizowane poprawnie.'; } if(isset($_GET['id']) && ( $a == 'del')) { $wynik = @mysql_query("DELETE FROM manager WHERE `id`='".mysql_real_escape_string($_GET['id'])."'") or die('Błąd zapytania: '.mysql_error()); echo 'Zlecenie zostało poprawnie usunięte.'; }
?>
|