[dotyczy MariaDB, Apache, PHP7]
Napisałam sobie kod odpowiedzialny za tworzenie rekordu, potem za jego zmianę i opracowałam wersję kasowania rekordu w postaci guzika w dodatkowej formatce, która po prostu kieruje do strony, która wywołuje kasowanie w bazie danych rekordu. (tak naprawdę to zmienia tylko jedną wartość w kolumnie).
Jest to jednak mało eleganckie i daje duże możliwości pomyłki. Szperałam przez kilka dni po necie jednak nie znalazłam nic co by działało. Wszelkiego rodzaju wstawki JS w skryptach do pliku PHP mi nie odpalają, w dodatku na tym etapie swojej edukacji wolałabym pozostać jeszcze przy samym PHP.
Kod: (próba stworzenia formatki z dwoma guzikami submit)
<form class="login-form" method="post" action="savemod_pacjent.php?id='.$id.'">
<tr><td> Id Pacjenta:</td><td><input required type="text" size="4" maxlength="4" name="id" readonly="readonly" color=grey onfocus="this.blur();" value="'.$id.'" /></td></tr>
<tr><td> Imię Pacjenta:</td><td><input required type="text" size="15" maxlength="20" name="name" value="'.$name.'" /></td></tr>
<tr><td> Drugie imię:</td><td><input type="text" size="25" maxlength="35" name="secname" value="'.$secname.'" /></td></tr>
[...]
<tr><td colspan="2" align="center">
<input class="buttonred" type="submit" name="guzik" value="Skasuj" />
<input class="button" type="submit" name="guzik" value="Zapisz" />
</form>';
savemod.....
$id = $POST['id'];
echo $id;
echo $req;
switch ($_POST['guzik']) {
case "Skasuj":
echo '<center>
<div class="ramka">
<div class="title">
Proszę o potwierdzenie
</div>
</div>
<table width="580px"><tr><td align="center">Czy na pewno chcesz usunąć dane tego Pacjenta?</td>
</tr>
<tr><td align="center">
<form class="login-form" action="del_pacjent.php?id='.$id.'" method="post">
<input class="buttonred" type="Submit" name="guzik" value "Skasuj">
<input class="button" type="Submit" name="guzik" value="Anuluj">
</td></tr></table></form>
</center>';
break;
case "Zapisz":
$id = trim($_POST['id']);
$name = trim($_POST['name']);
$secname = trim($_POST['secname']);
[ ...i potem zapis do bazy danych]
I tu w tej probie mam problem z przesłaniem id pacjenta wobec którego ma zostać podjęta akcja.
Link wygląda tak:
"http://localhost/testsec/del_pacjent.php?id="
A ja dostaję błąd z serwery bazy danych o próbie dostępu do czegoś czego nie ma:
"Error :SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 "
Ewentualnie zastanawiam się nad użyciem gotowego komponentu działającego z uzyciem JS/AJAX czy cokolwiek takiego, jednak nie lubię korzystać w swoich źródłach z twórczości innych.