Witam,
Razem z kolegą wykorzystaliśmy PHP do napisania programu, który odnosi się do bazy danych MySQL. Problem w tym, że PHP za bardzo nie znamy i postanowiliśmy posiłkować się forum, Google i książką. Jakoś połączyliśmy całość i faktycznie wszystko działa. Problem w tym, że po kliknięciu edytuj, otwiera się formularz, wprowadzamy zmienione dane i... zamiast edytować rekord, zostaje dodany nowy z wprowadzonymi zmianami, a stary jak bym tak jest.
Oto fragment kodu, czy ktoś może nam powiedzieć gdzie jest błąd?
<head>
<style type="text/css">
#lista1, #lista2, #lista3, #lista4, #lista5
{
display: none;
}
</style>
<script type="text/javascript">
<!--
function pokazAlboUkryj(co) {
var obiekt = document.getElementById(co);
if (obiekt.style.display == 'block') {
obiekt.style.display = 'none';
} else {
obiekt.style.display = 'block';
}
}
-->
</script>
</head>
<a href="#lista1" onclick="pokazAlboUkryj('lista1'); return false;">Dodaj wpis</a> <br><br>
<form action="reklamacje.php" method="post">
<div id="lista1">
id_klienta:<br />
<input type="text" name="id_klienta" /><br />
opis_usterki:<br />
<input type="text" name="opis_usterki" /><br />
model:<br />
<input type="text" name="model" /><br />
imei:<br />
<input type="text" name="imei" /><br />
data:<br />
<input type="text" name="data" /><br />
<input type="submit" value="dodaj" />
</form><br><br>
<?php
$id_klienta = $_POST['id_klienta'];
$opis_usterki = $_POST['opis_usterki'];
$model = $_POST['model'];
$imei = $_POST['imei'];
$data = $_POST['data'];
if($id_klienta and $opis_usterki and $model and $imei and $data) {
// łączymy się z bazą danych
or
die('Brak połączenia z serwerem MySQL'); or
die('Nie mogę połączyć się z bazą danych');
// dodajemy rekord do bazy
$ins = @mysql_query("INSERT INTO REKLAMACJE SET id_klienta='$id_klienta', opis_usterki='$opis_usterki', model='$model', imei='$imei', data='$data'");
if($ins) echo "Rekord został dodany poprawnie<br>Wracam do strony glownej! <meta http-equiv='refresh' content='0;url=http://aplikacjaphp.yoyo.pl/reklamacje.php'>"; else echo "Błąd nie udało się dodać nowego rekordu<br>Wracam do strony glownej! <meta http-equiv='refresh' content='0;url=http://aplikacjaphp.yoyo.pl/reklamacje.php'>";
}
?>
</div>
<?php
// łączymy się z bazą danych
or
die('Brak połączenia z serwerem MySQL'); or
die('Nie mogę połączyć się z bazą danych');
or
die('Błąd zapytania');
/*
wyświetlamy wyniki, sprawdzamy,
czy zapytanie zwróciło wartość większą od 0
*/
/* jeżeli wynik jest pozytywny, to wyświetlamy dane */
echo "<table cellpadding=\"2\" border=1>"; echo "<td>".$r->id_klienta."</td>"; echo "<td>".$r->opis_usterki."</td>"; echo "<td>".$r->model."</td>"; echo "<td>".$r->imei."</td>"; echo "<td>".$r->data."</td>"; <a href=\"reklamacje.php?usun={$r->id}\">DEL</a>
<a href=\"reklamacje.php?a=edit&id={$r->id}\">EDIT</a>
</td>";
}
}
?>
<?php
$a = trim($_REQUEST['a']);
if($a == 'edit' and
!empty($id)) { /* zapytanie do tabeli */
id='$id'")
or
die('Błąd zapytania'); /*
wyświetlamy wyniki, sprawdzamy,
czy zapytanie zwróciło wartość większą od 0
*/
/* odczytujemy zawartość wiersza z tabeli */
/* wczytujemy dane do formularza */
/*
w formularz znajdują się ukryte pola "a"
z wartością "save" i pole "id" z wartością
zmiennej id
*/
echo '<form action="reklamacje.php" method="post"> <input type="hidden" name="a" value="save" />
<input type="hidden" name="id" value="'.$id.'" />
id_klienta:<br />
<input type="text" name="id_klienta"
value="'.$r['id_klienta'].'" /><br />
opis_usterki:<br />
<input type="text" name="opis_usterki"
value="'.$r['opis_usterki'].'" /><br />
model:<br />
<input type="text" name="model"
value="'.$r['model'].'" /><br />
imei:<br />
<input type="text" name="imei"
value="'.$r['imei'].'" /><br />
data:<br />
<input type="text" name="data"
value="'.$r['data'].'" /><br />
<input type="submit" value="popraw" />
</form>';
}
}
elseif($a == 'save') {
/* odbieramy zmienne z formularza */
$id = $_POST['id'];
$id_klienta = trim($_POST['id_klienta']); $opis_usterki = trim($_POST['opis_usterki']); $model = trim($_POST['model']); $imei = trim($_POST['imei']); $data = trim($_POST['data']); /* uaktualniamy tabelę test */
mysql_query("UPDATE REKLAMACJE SET id_klienta='$id_klienta', opis_usterki='$opis_usterki', model='$model', imei='$imei', data='$data' WHERE id='$id'")
or
die('Błąd zapytania');
}
?>
<br><br>
<?php
$ok = @mysql_query("DELETE FROM `REKLAMACJE` WHERE `id` = '".$_GET['usun']."' LIMIT 1"); //plus np. przekierowanie
if($ok) echo "Rekord został usunięty poprawnie<br>Wracam do strony glownej! <meta http-equiv='refresh' content='0;url=http://aplikacjaphp.yoyo.pl/reklamacje.php'>";
$rezultat = mysql_query("SELECT * FROM `REKLAMACJE`") or
die("Błąd 2"); $i = 0;
{
$i++;
}
?>
Powód edycji: [Spawnm]: ...