Edycja rekordów PHP, MySQL

0

Hej, niedawno zaczęłam przygodę z php i próbuję wykonać na stronie edycję rekordów. Utworzyłam formularz, w którym użytkownik może wpisać nowe dane, ale strona ich jakby nie czyta (nie wyświetlają się dane, gdy sprawdzam je "print_r($_POST)";). Ktoś wie, co może być nie tak? :c



if($_GET['potwierdzenie'] == "TAK")
	{	
		print_r($_GET);
		print_r($_POST);
		echo "UPDATE AUTORZY SET imie_nazwisko=".$_POST['imie_nazwisko'].", data_urodzenia='".$_POST['data_urodzenia']."', data_smierci='".$_POST['data_smierci']."' WHERE id_autor='".$_GET['id_autor']."'";
		
		//mysqli_query($conn,"DELETE FROM KSIAZKI WHERE id_ksiazka=$_GET[usun_id];");
	}
	
	$result = mysqli_query($conn,"SELECT * FROM AUTORZY;");
    
	echo '<table border="1">';
        echo '<tr>';
            echo '<td><center><b>  </b></center></td> 
				<td><center><b> IMIĘ I NAZWISKO </b></center></td> 
				<td><center><b> DATA_URODZENIA </b></center></td>
				<td><center><b> DATA_ŚMIERCI </b></center></td>';
        echo '</tr>';
    
    while($row = mysqli_fetch_array($result))
    {
		if($_GET['edytuj_id'] == $row['id_autor'])
		{
			echo "<form action='autorzy.php' method='POST'>
			<tr>
			<td style='background-color: #748E96'>".$row['id_autor']."</td>
			<td><input type='text' value=".$row['imie_nazwisko']." name='imie_nazwisko'></td>
			<td><input type='date' value=".$row['data_urodzenia']." name='data_urodzenia'></td>				
			<td><input type='date' name='data_smierci' value=".$row['data_smierci']."></td>
			<input type='hidden' name='id_autor' value=".$row['id_autor'].">
			<td><a href='autorzy.php?id_autor=".$row['id_autor'].'&potwierdzenie=TAK'."'>Potwierdź</a></td>
			</tr>
			</form>";
		}
		else
		{
			echo '<tr><td>'.$row['id_autor'].'</td>'.'<td>'.$row['imie_nazwisko'].'</td>'.'<td>'.$row['data_urodzenia'].'</td>'.'<td>'.$row['data_smierci'].'</td>'.'<td style="background-color:red">'.'<a href="autorzy.php?edytuj_id='.$row['id_autor'].'">Edytuj</a>'.'</td></tr>';
			}
    }
    echo '</table>';
2

Sprawdzasz w pierwszej linijce czy wartość jest w tablicy GET a formularz przesyłasz POSTem
if($_GET['potwierdzenie'] == "TAK")

0
jurek1980 napisał(a):

Sprawdzasz w pierwszej linijce czy wartość jest w tablicy GET a formularz przesyłasz POSTem
if($_GET['potwierdzenie'] == "TAK")

Tylko, że warunek w tym 'ifie" działa. Na stronie wyświetla się echo, tylko nie pojawiają się pozostałe dane (data_urodzenia, itp.) .-.

1

Zasadniczo staraj się trzymać jednej metody w formularzu, doklejanie na sztywno parametrów do URL raczej nie jest dobrą praktyką.
Mam na myśli tą linikę kodu:

<td><a href='autorzy.php?id_autor=".$row['id_autor'].'&potwierdzenie=TAK'."'>Potwierdź</a></td>

Zobacz jakiś najprostszy formularz:
https://www.w3schools.com/php/php_forms.asp
Powinien być przycisk Submit, to dzięki niemu zawartość formularza jest przesyłana.

1

Dziękuję bardzo za podpowiedź. Teraz już działa (chyba) tak jak trzeba :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1