Hallo allemaal,

Momenteel ben ik bezig om een record op basis van een ID aan te passen, helaas lukt het me niet om dit werkend te krijgen.
Het invoegen van een record gaat goed.
Het lezen van een record gaat goed
Het verwijderen van een record gaat goed
Het wijzigen van een record gaat helaas niet goed...

Ik heb verschillende opties geprobeerd, maar de foutmelding heeft geen betrekking tot de php update query. En toch weet ik precies dat het probleem toch in PHP update query zit.

De genereerde foutmelding is als volgt:

Notice: Undefined variable: result_update in D:\xampp\htdocs\inventory_test\med_edit.php on line 36
Query failed

Alvast bedankt voor het meedenken!

<?php include "includes/db-config.php"; ?>
<?php include "includes/header.php"; ?>
<?php include "includes/sidebar.php"; ?>
<?php

// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
	
	$id = $_GET['id'];
	$query = "SELECT * FROM medicines WHERE med_id=$id";
	$result = mysqli_query($connection,$query);
	while($row = mysqli_fetch_assoc($result)){
			$med_id= $row['med_id'];
			$med_name = $row['med_name'];
			$med_production= $row['med_create_date'];
			$med_expire= $row['med_expire_date'];
	}	
} else {
	echo "No medicine has been chosen";
}
if(!$result){
	die (mysqli_error($connection));	
}
?>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
		$med_name = $row['med_name'];
		$med_production= $row['med_create_date'];
		$med_expire= $row['med_expire_date'];
		$update_medicines = "UPDATE medicines
									SET 
									med_name = '$med_name', 
									med_create_date = '$med_production', 
									med_expire_date ='$med_expire' 
										WHERE med_id= '".$_POST['id']."' ";
		$result_update = mysqli_query($connection,$update_medicines);
		}
if(!$result_update){
	die ("Query failed" . mysqli_error($connection));	
}
?>
<?php echo "<div>"; ?>
<?php echo "<h1>Edit page</h1>"; ?>

<form action="med_edit.php" method="post">
<fieldset>
<legend>Medicine edit form</legend>
<input type="hidden" name="id" value=" <?php echo $med_id; ?> " >
<label for="medicine">Medicine name:</label><input type="text" name="medicine" id= "medicine" value="<?php if(isset($med_name)) echo $med_name; ?>"> <br>
<label for="production">production Date:</label><input type="text" name="production" id= "production" value="<?php if(isset($med_production)) echo $med_production; ?>"> <br>
<label for="expire">Medicine name:</label><input type="text" name="expire" id= "expire" value="<?php if(isset($med_expire)) echo $med_expire; ?>"> <br>
<input type="submit" name="update_medicine" value="Edit">
</fieldset>
</form>
</div>
<?php include "includes/footer.php"; ?>
Dan heb je geen id-argument in de URL meegegeven.
Laat je action-paramater van je <form>-tag gewoon leeg. Nu stuur je hem door naar med_edit.php waarbij er geen id-argument in de URL staat.
Dan heb je geen $_GET['id'] en is er dus ook geen Select geweest.
Dus $row zal niet bestaan.
- Ariën - op 30/08/2016 22:35:40

Dan heb je geen id-argument in de URL meegegeven.
Laat je action-paramater van je <form>-tag gewoon leeg. Nu stuur je hem door naar med_edit.php waarbij er geen id-argument in de URL staat.

Hoi Ariën,
Btw; ik heb post method en geen get...
Ik heb de action-parameter leeg nu

Bij het wijzigen van een record verschijnt nu helemaal geen ERROR.
De record in de DB wordt gewijzigd/leeg gemaakt....
Echo eens $update_medicines. Welke querie wordt er dan geprobeerd uit te voeren?
Geef me tot morgen ochtend de tijd en ik zal alles uploaden naar de webserver.
Tot zover dank voor jullie hulp!

Update 1,

Het is gelukt om heel snel alles up te loaden naar de web server:

URL: http://dev.pc-on-rails.nl/test2
Dit is nog geen antwoord op mijn vraag verder ;-)
- SanThe - op 30/08/2016 22:36:08

Dan heb je geen $_GET['id'] en is er dus ook geen Select geweest.
Dus $row zal niet bestaan.


Ik snap je feedback niet.
Van medicines pagina krijg ik een overzicht.
Vervolgens selecteer ik er eentje en klik op edit. Hierna word ik geredirect, op basis van een id, naar med_edit.php. Er verschijnt een tabel van de geselecteerde item.
Wanneer ik wat gegevens verander en klik op edit, dan worden de gegevens aangepast/leeg gemaakt en ga ik automatisch weer terug naar medicines.php.
Als je het wil, kun je het testen..

Toevoeging op 30/08/2016 23:17:30:

- Ariën - op 30/08/2016 23:09:54

Dit is nog geen antwoord op mijn vraag verder ;-)


ik krijg het cijfer 1... zoals te zien op:
http://dev.pc-on-rails.nl/test2/med_edit.php?id=9
Laat je relevante code eens zien? Want je zou je query moeten zien.
- Ariën - op 30/08/2016 23:23:53

Laat je relevante code eens zien? Want je zou je query moeten zien.


Voor welk pagina wil je de code zien?
Wat zit er in de variabelen op regel 27 / 29?
Echo ze eens.
Waarom maak je die extra variabelen eigenlijk aan?

Reageren