Vage foutmelding op de edit pagina
Momenteel heb ik een medicijn form waar een ingelogde gebruiker een medicijn kan invoeren. Vervolgens worden deze gegevens in verschillende tabellen ingevoerd en dit gaat zonder problemen.
En wat ik nu graag wil bereiken is dat een ingelogde gebruiker de mogelijkheid heeft om de ingevoerde medicijnen te kunnen wijzigen.
Wanneer er geklikt wordt op edit, dan worden alle relevante gegevens van betreffende medicijn op basis van id opgehaald en in het formulier geladen. Dit gaat to zover goed.
Echter, wanneer je klikt op de knop wijzigen dan krijg ik op het scherm de foutmelding: "geen medicijn gekozen" en in de logs krijg ik de foutmeldingen:
"user_registration/med_edit.php' on line 28: Undefined index: id"
"user_registration/med_edit.php' on line 38: Undefined variable: result"
De reden waarom de eerste foutmelding,tweede en derde vaag vindt, omdat er reeds alle relevante medicijn info geladen zijn. Tevens, bestaat result variabel ook.
Ik weet niet of het uitmaakt, maar de info op medicines pagina wordt uit verschillende tabellen weergegeven met als medicine tabel als hoofd tabel..
Mijn tweede vraag is; hoe kan ik gegevens uit een eerder gekozen dropdown-menu weergeven op de edit pagina als in de originele dropdown-menu. En, dat gebruiker in kwestie ziet welke waarde hij gekozen heeft en indien nodig hij een andere waarde kan zien uit de lijst...Hiermee ben ik nog bezig, maar ik dacht misschien heeft iemand een idee/tutorial...
Graag ontvang ik jullie feedback hierover.
Code van edit pagina:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
require ('includes/config.inc.php');
$page_title = 'Overview of all medicines saved to the database';
include ('includes/header.php');
// If no user_id session variable exists, redirect the user:
if (!isset($_SESSION['user_id'])) {
$url = BASE_URL . 'index.php'; // Define the URL.
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
}else{
echo "Welcome " . "{$_SESSION['firstname']}". "<br>";
}
// Need the database connection:
require(MYSQL);
// 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 medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id=$id";
$result = mysqli_query($dbc,$query);
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "No medicines has been chosen";
}
if(!$result){
die (mysqli_error($dbc));
}
?>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$id= $row['id'];
$update_medicine = "UPDATE medicines SET
medicinename = '$medicinename', productiondate = '$productiondate', expirationdate = '$expirationdate', medicineprice = '$medicineprice'
WHERE id= $id";
$result_update = mysqli_query($dbc,$update_medicine);
if($result_update){
header ("Location: medicines.php");
exit;
} else {
die ("Query failed" . mysqli_error($connection));
}
}
?>
<div>
<h1>Medicines edit page</h1>
<form action="med_edit.php" method="post">
<fieldset>
<legend>Medicines edit form</legend>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<p><label for="medicinename"><b>Medicine Name:</b></label> <input type="text" name="medicinename" id="medicinename" value="<?php if (isset($medicinename)) echo $medicinename; ?>" /></p>
<p><label for="productiondate"><b>Production Date:</b></label> <input type="text" name="productiondate" id="productiondate" value="<?php if (isset($productiondate)) echo $productiondate; ?>" /></p>
<p><b><label for="expirationdate">Expiration Date:</b></label> <input type="text" name="expirationdate" id="expirationdate" value="<?php if (isset($expirationdate)) echo $expirationdate; ?>" /> </p>
<p><b><label for="medicineprise">Medicine price:</b></label> <input type="text" name="medicineprise" id="medicineprise" value="<?php if (isset($medicineprice)) echo $medicineprice; ?>" /> </p>
<input type="submit" name="update_medicine" value="Update medicine">
</fieldset>
</form>
</div>
<?php include "includes/footer.php"; ?>
[/Code]
require ('includes/config.inc.php');
$page_title = 'Overview of all medicines saved to the database';
include ('includes/header.php');
// If no user_id session variable exists, redirect the user:
if (!isset($_SESSION['user_id'])) {
$url = BASE_URL . 'index.php'; // Define the URL.
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
}else{
echo "Welcome " . "{$_SESSION['firstname']}". "<br>";
}
// Need the database connection:
require(MYSQL);
// 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 medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id=$id";
$result = mysqli_query($dbc,$query);
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "No medicines has been chosen";
}
if(!$result){
die (mysqli_error($dbc));
}
?>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$id= $row['id'];
$update_medicine = "UPDATE medicines SET
medicinename = '$medicinename', productiondate = '$productiondate', expirationdate = '$expirationdate', medicineprice = '$medicineprice'
WHERE id= $id";
$result_update = mysqli_query($dbc,$update_medicine);
if($result_update){
header ("Location: medicines.php");
exit;
} else {
die ("Query failed" . mysqli_error($connection));
}
}
?>
<div>
<h1>Medicines edit page</h1>
<form action="med_edit.php" method="post">
<fieldset>
<legend>Medicines edit form</legend>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<p><label for="medicinename"><b>Medicine Name:</b></label> <input type="text" name="medicinename" id="medicinename" value="<?php if (isset($medicinename)) echo $medicinename; ?>" /></p>
<p><label for="productiondate"><b>Production Date:</b></label> <input type="text" name="productiondate" id="productiondate" value="<?php if (isset($productiondate)) echo $productiondate; ?>" /></p>
<p><b><label for="expirationdate">Expiration Date:</b></label> <input type="text" name="expirationdate" id="expirationdate" value="<?php if (isset($expirationdate)) echo $expirationdate; ?>" /> </p>
<p><b><label for="medicineprise">Medicine price:</b></label> <input type="text" name="medicineprise" id="medicineprise" value="<?php if (isset($medicineprice)) echo $medicineprice; ?>" /> </p>
<input type="submit" name="update_medicine" value="Update medicine">
</fieldset>
</form>
</div>
<?php include "includes/footer.php"; ?>
[/Code]
De tweede error:
Pas je structuur aan naar dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php // kleurtjes in codeblok tonen
$result = mysqli_query($dbc,$query);
if($result===true) {
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
?>
$result = mysqli_query($dbc,$query);
if($result===true) {
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
?>
Dit werkt niet omdat je geen 'id' in je SELECT hebt staan.
if(!$result)
Alleen als voorgaande if() true is bestaat $result, anders niet.
Bedankt voor jullie feedback.
Ik heb jullie verbetering aangebracht, en wanneer ik nu klik om een medicijn te bewerken, krijg ik enkel een wit pagina en verder niets...
Initieel dacht ik aan een synatix fout, maar kon niets vinden. Ook wordt er niets gerapporteerd mbt fouten..
De code van edit pagina ziet nu als volgt uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
?>
<?php
require ('includes/config.inc.php');
$page_title = 'Overview of all medicines saved to the database';
include ('includes/header.php');
// If no user_id session variable exists, redirect the user:
if (!isset($_SESSION['user_id'])) {
$url = BASE_URL . 'index.php'; // Define the URL.
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
}else{
echo "Welcome " . "{$_SESSION['firstname']}". "<br>";
}
// Need the database connection:
require(MYSQL);
// 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 id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id=$id";
$result = mysqli_query($dbc,$query);
if($result === true) {
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
?>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$id= $row['id'];
$update_medicine = "UPDATE medicines SET
medicinename = '$medicinename', productiondate = '$productiondate', expirationdate = '$expirationdate', medicineprice = '$medicineprice'
WHERE id= $id";
$result_update = mysqli_query($dbc,$update_medicine);
if($result_update){
header ("Location: medicines.php");
exit;
} else {
die ("Query failed" . mysqli_error($dbc));
}
}
?>
<div>
<h1>Medicines edit page</h1>
<form action="med_edit.php" method="post">
<fieldset>
<legend>Medicines edit form</legend>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<p><label for="medicinename"><b>Medicine Name:</b></label> <input type="text" name="medicinename" id="medicinename" value="<?php if (isset($medicinename)) echo $medicinename; ?>" /></p>
<p><label for="productiondate"><b>Production Date:</b></label> <input type="text" name="productiondate" id="productiondate" value="<?php if (isset($productiondate)) echo $productiondate; ?>" /></p>
<p><b><label for="expirationdate">Expiration Date:</b></label> <input type="text" name="expirationdate" id="expirationdate" value="<?php if (isset($expirationdate)) echo $expirationdate; ?>" /> </p>
<p><b><label for="medicineprise">Medicine price:</b></label> <input type="text" name="medicineprise" id="medicineprise" value="<?php if (isset($medicineprice)) echo $medicineprice; ?>" /> </p>
<input type="submit" name="update_medicine" value="Update medicine">
</fieldset>
</form>
</div>
<?php include "includes/footer.php"; ?>
error_reporting(E_ALL);
ini_set('display_errors', 'On');
?>
<?php
require ('includes/config.inc.php');
$page_title = 'Overview of all medicines saved to the database';
include ('includes/header.php');
// If no user_id session variable exists, redirect the user:
if (!isset($_SESSION['user_id'])) {
$url = BASE_URL . 'index.php'; // Define the URL.
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
}else{
echo "Welcome " . "{$_SESSION['firstname']}". "<br>";
}
// Need the database connection:
require(MYSQL);
// 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 id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id=$id";
$result = mysqli_query($dbc,$query);
if($result === true) {
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
?>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$id= $row['id'];
$update_medicine = "UPDATE medicines SET
medicinename = '$medicinename', productiondate = '$productiondate', expirationdate = '$expirationdate', medicineprice = '$medicineprice'
WHERE id= $id";
$result_update = mysqli_query($dbc,$update_medicine);
if($result_update){
header ("Location: medicines.php");
exit;
} else {
die ("Query failed" . mysqli_error($dbc));
}
}
?>
<div>
<h1>Medicines edit page</h1>
<form action="med_edit.php" method="post">
<fieldset>
<legend>Medicines edit form</legend>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<p><label for="medicinename"><b>Medicine Name:</b></label> <input type="text" name="medicinename" id="medicinename" value="<?php if (isset($medicinename)) echo $medicinename; ?>" /></p>
<p><label for="productiondate"><b>Production Date:</b></label> <input type="text" name="productiondate" id="productiondate" value="<?php if (isset($productiondate)) echo $productiondate; ?>" /></p>
<p><b><label for="expirationdate">Expiration Date:</b></label> <input type="text" name="expirationdate" id="expirationdate" value="<?php if (isset($expirationdate)) echo $expirationdate; ?>" /> </p>
<p><b><label for="medicineprise">Medicine price:</b></label> <input type="text" name="medicineprise" id="medicineprise" value="<?php if (isset($medicineprice)) echo $medicineprice; ?>" /> </p>
<input type="submit" name="update_medicine" value="Update medicine">
</fieldset>
</form>
</div>
<?php include "includes/footer.php"; ?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if(isset($_GET['id'])){
$id = $_GET['id'];
$query = "SELECT id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id=$id";
$result = mysqli_query($dbc,$query);
if($result === true) {
// Hier inspringen want er staat een {
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
// Nu zie je dat hier een } mist.
?>
if(isset($_GET['id'])){
$id = $_GET['id'];
$query = "SELECT id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id=$id";
$result = mysqli_query($dbc,$query);
if($result === true) {
// Hier inspringen want er staat een {
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
// Nu zie je dat hier een } mist.
?>
Als id een getal is, waar controleer je dat?
Ik neem aan dat er voor elk id 1 resultaat zal zijn; dan heb je toch geen while nodig?
Bedenk ook dat, door het id in de broncode van het formulier aan te passen, e.e.a. vrij eenvoudig is te manipuleren.
- SanThe - op 31/12/2016 22:53:25:
Je moet wel goed inspringen dan zie je de { en } beter.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if(isset($_GET['id'])){
$id = $_GET['id'];
$query = "SELECT id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id=$id";
$result = mysqli_query($dbc,$query);
if($result === true) {
// Hier inspringen want er staat een {
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
// Nu zie je dat hier een } mist.
?>
if(isset($_GET['id'])){
$id = $_GET['id'];
$query = "SELECT id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id=$id";
$result = mysqli_query($dbc,$query);
if($result === true) {
// Hier inspringen want er staat een {
while($row = mysqli_fetch_assoc($result)){
$id= $row['id'];
$medicinename = $row['medicinename'];
$productiondate = $row['productiondate'];
$expirationdate = $row['expirationdate'];
$medicineprice = $row['medicineprice'];
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
// Nu zie je dat hier een } mist.
?>
Hoi - SanThe -,
Bedankt voor het meedenken. Ik was idd een { vergeten, en na het toevoegen van een { krijg ik nu geen wit pagina meer gelukkig :), maar de gegevens worden niet in het formulier geladen.
Er verschijnt de foutmelding: Er is een fout bij ons opgetreden, zoals eerder aangebracht door Arien.
Echter, de kolomnamen bestaan wel, want zie de kolomnamen van medicine tabel: http://dev.pc-on-rails.nl/user_registration/medicines.png
Blijkbaar gaat er iets fout tijdens het laden van de kolomnamen. Best wel vreemd eigenlijk...
Om het hele gebeuren te kunnen testen, is het url: http://dev.pc-on-rails.nl/user_registration/index.php
user: [email protected]
pass: test1
Gewijzigd op 01/01/2017 14:46:56 door Mohamed nvt
Waar moet ik die melding dan zien?
Obelix en Idefix op 01/01/2017 11:08:20:
Waarom de nieuwe variabele $id aanmaken?
Als id een getal is, waar controleer je dat?
Ik neem aan dat er voor elk id 1 resultaat zal zijn; dan heb je toch geen while nodig?
Bedenk ook dat, door het id in de broncode van het formulier aan te passen, e.e.a. vrij eenvoudig is te manipuleren.
Als id een getal is, waar controleer je dat?
Ik neem aan dat er voor elk id 1 resultaat zal zijn; dan heb je toch geen while nodig?
Bedenk ook dat, door het id in de broncode van het formulier aan te passen, e.e.a. vrij eenvoudig is te manipuleren.
Hallo Obelix en Idefix,
Voor id heb ik een variabel aangemaakt om het straks op te kunnen nemen in de INSERT statement.
Je hebt gelijk, dat ik nergens controleer of de id een getal is...Dit kun idd beter, maar mijn focus ligt nu helemaal op de core-logica.
Daar heb je wel een punt, maar denk je dat een "simpele" internet-gebruiker weet hoe de broncode van een formulier bekijkt en gegevens aanpast? Of dit is meer voor een web-developer...
Toevoeging op 01/01/2017 14:54:09:
- Ariën - op 01/01/2017 14:51:25:
Waar moet ik die melding dan zien?
Lijn 16 in het broncode of op de edit pagina, nadat je ingelogd bent en probeert een medicijn naam aan te passen...
Je geeft blijkbaar je ID-parameter uit de GET niet door in de action van je form.
Ikzelf laat de action gewoon leeg, dan gebruikt de browser altijd de huidige URL voor de verwerking van het formulier.
En verder zit er SQL-injection in de SELECT-query.
Gewijzigd op 01/01/2017 23:19:57 door - Ariën -
Bedankt voor je feedback.
Ik snap je eerste opmerking niet. Wil je uitleggen hoe ik de ID-parameter wil in de action van het form kan zetten?
Ik heb nu de action form leeg gelaten en krijg nu geen foutmelding meer.
Echter, wanneer ik nu iets wil updaten dan wordt er niets bijgewerkt, en ik krijg ook geen foutmelding.
Vreemd dit!
Code ziet als volgt uit met escaping in:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$id = mysqli_real_escape_string($dbc,$_GET['id']);
$query = "SELECT * FROM medicines WHERE id= $id ";
$result = mysqli_query($dbc,$query);
while($row = mysqli_fetch_assoc($result)){
$id= mysqli_real_escape_string($dbc,$row['id']);
$medicinename = mysqli_real_escape_string($dbc,$row['medicinename']);
$productiondate = mysqli_real_escape_string($dbc,$row['productiondate']);
$expirationdate = mysqli_real_escape_string($dbc,$row['expirationdate']);
$medicineprice = mysqli_real_escape_string($dbc,$row['medicineprice']);
}
} else {
echo "No medicines has been chosen";
}
if(!$result){
die (mysqli_error($dbc));
}
?>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$id= $row['id'];
$update_medicine =" UPDATE medicines SET
medicinename = '$medicinename', productiondate = '$productiondate', expirationdate = '$expirationdate', medicineprice = '$medicineprice' WHERE id ='$id'";
$result_update = mysqli_query($dbc,$update_medicine);
if($result_update){
header ("Location: medicines.php");
exit;
} else {
die ("Query failed" . mysqli_error($dbc));
}
}
?>
<div>
<h1>Medicines edit page</h1>
<form action="" method="post">
?>
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$id = mysqli_real_escape_string($dbc,$_GET['id']);
$query = "SELECT * FROM medicines WHERE id= $id ";
$result = mysqli_query($dbc,$query);
while($row = mysqli_fetch_assoc($result)){
$id= mysqli_real_escape_string($dbc,$row['id']);
$medicinename = mysqli_real_escape_string($dbc,$row['medicinename']);
$productiondate = mysqli_real_escape_string($dbc,$row['productiondate']);
$expirationdate = mysqli_real_escape_string($dbc,$row['expirationdate']);
$medicineprice = mysqli_real_escape_string($dbc,$row['medicineprice']);
}
} else {
echo "No medicines has been chosen";
}
if(!$result){
die (mysqli_error($dbc));
}
?>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$id= $row['id'];
$update_medicine =" UPDATE medicines SET
medicinename = '$medicinename', productiondate = '$productiondate', expirationdate = '$expirationdate', medicineprice = '$medicineprice' WHERE id ='$id'";
$result_update = mysqli_query($dbc,$update_medicine);
if($result_update){
header ("Location: medicines.php");
exit;
} else {
die ("Query failed" . mysqli_error($dbc));
}
}
?>
<div>
<h1>Medicines edit page</h1>
<form action="" method="post">
?>
Zie je code uit mijn post van 31/12/2016 17:12:19.
- Ariën - op 02/01/2017 12:00:00:
Omdat je $result blijkbaar geen waarde heeft.
Zie je code uit mijn post van 31/12/2016 17:12:19.
Zie je code uit mijn post van 31/12/2016 17:12:19.
Hallo - Ariën -,
Jouw code heb ik weer terug geplaatst in mijn code, en helaas worden er gegevens geladen in het formulier wanneer ik een item wil bijwerken...En zonder jouw stukje code worden er wel gegevens in het form geladen...
Is het nodig dat ik de code van het insert_med pagina hier ook laat zien?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$id = mysqli_real_escape_string($dbc,$_GET['id']);
$query = "SELECT * FROM medicines WHERE id= $id ";
$result = mysqli_query($dbc,$query);
if($result===true) {
while($row = mysqli_fetch_assoc($result)){
$id= mysqli_real_escape_string($dbc,$row['id']);
$medicinename = mysqli_real_escape_string($dbc,$row['medicinename']);
$productiondate = mysqli_real_escape_string($dbc,$row['productiondate']);
$expirationdate = mysqli_real_escape_string($dbc,$row['expirationdate']);
$medicineprice = mysqli_real_escape_string($dbc,$row['medicineprice']);
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
}
?>
[/Code]
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$id = mysqli_real_escape_string($dbc,$_GET['id']);
$query = "SELECT * FROM medicines WHERE id= $id ";
$result = mysqli_query($dbc,$query);
if($result===true) {
while($row = mysqli_fetch_assoc($result)){
$id= mysqli_real_escape_string($dbc,$row['id']);
$medicinename = mysqli_real_escape_string($dbc,$row['medicinename']);
$productiondate = mysqli_real_escape_string($dbc,$row['productiondate']);
$expirationdate = mysqli_real_escape_string($dbc,$row['expirationdate']);
$medicineprice = mysqli_real_escape_string($dbc,$row['medicineprice']);
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
}
?>
[/Code]
Waar zet je die ID in de URL en/of het formulier?
Gewijzigd op 02/01/2017 12:40:05 door Ward van der Put
De ID heb ik in opgenomen in het url van medicines.php.
Huidige code van med_edit.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
?>
<?php
require ('includes/config.inc.php');
$page_title = 'Overview of all medicines saved to the database';
include ('includes/header.php');
// If no user_id session variable exists, redirect the user:
if (!isset($_SESSION['user_id'])) {
$url = BASE_URL . 'index.php'; // Define the URL.
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
}else{
echo "Welcome " . "{$_SESSION['firstname']}". "<br>";
}
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$id = mysqli_real_escape_string($dbc,$_GET['id']);
$query = "SELECT * FROM medicines WHERE id= $id ";
$result = mysqli_query($dbc,$query);
if($result===true) {
while($row = mysqli_fetch_assoc($result)){
$id= mysqli_real_escape_string($dbc,$row['id']);
$medicinename = mysqli_real_escape_string($dbc,$row['medicinename']);
$productiondate = mysqli_real_escape_string($dbc,$row['productiondate']);
$expirationdate = mysqli_real_escape_string($dbc,$row['expirationdate']);
$medicineprice = mysqli_real_escape_string($dbc,$row['medicineprice']);
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
}
?>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$id= $row['id'];
$update_medicine =" UPDATE medicines SET
medicinename = '$medicinename', productiondate = '$productiondate', expirationdate = '$expirationdate', medicineprice = '$medicineprice' WHERE id ='$id'";
$result_update = mysqli_query($dbc,$update_medicine);
if($result_update){
header ("Location: medicines.php");
exit;
} else {
die ("Query failed" . mysqli_error($dbc));
}
}
?>
<div>
<h1>Medicines edit page</h1>
<form action="" method="post">
<fieldset>
<legend>Medicines edit form</legend>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<p><label for="medicinename"><b>Medicine Name:</b></label> <input type="text" name="medicinename" id="medicinename" value="<?php if (isset($medicinename)) echo $medicinename; ?>" /></p>
<p><label for="productiondate"><b>Production Date:</b></label> <input type="text" name="productiondate" id="productiondate" value="<?php if (isset($productiondate)) echo $productiondate; ?>" /></p>
<p><b><label for="expirationdate">Expiration Date:</b></label> <input type="text" name="expirationdate" id="expirationdate" value="<?php if (isset($expirationdate)) echo $expirationdate; ?>" /> </p>
<p><b><label for="medicineprise">Medicine price:</b></label> <input type="text" name="medicineprise" id="medicineprise" value="<?php if (isset($medicineprice)) echo $medicineprice; ?>" /> </p>
<input type="submit" name="update_medicine" value="Update medicine">
</fieldset>
</form>
</div>
<?php include "includes/footer.php"; ?>
error_reporting(E_ALL);
ini_set('display_errors', 'On');
?>
<?php
require ('includes/config.inc.php');
$page_title = 'Overview of all medicines saved to the database';
include ('includes/header.php');
// If no user_id session variable exists, redirect the user:
if (!isset($_SESSION['user_id'])) {
$url = BASE_URL . 'index.php'; // Define the URL.
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
}else{
echo "Welcome " . "{$_SESSION['firstname']}". "<br>";
}
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$id = mysqli_real_escape_string($dbc,$_GET['id']);
$query = "SELECT * FROM medicines WHERE id= $id ";
$result = mysqli_query($dbc,$query);
if($result===true) {
while($row = mysqli_fetch_assoc($result)){
$id= mysqli_real_escape_string($dbc,$row['id']);
$medicinename = mysqli_real_escape_string($dbc,$row['medicinename']);
$productiondate = mysqli_real_escape_string($dbc,$row['productiondate']);
$expirationdate = mysqli_real_escape_string($dbc,$row['expirationdate']);
$medicineprice = mysqli_real_escape_string($dbc,$row['medicineprice']);
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
}
?>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$id= $row['id'];
$update_medicine =" UPDATE medicines SET
medicinename = '$medicinename', productiondate = '$productiondate', expirationdate = '$expirationdate', medicineprice = '$medicineprice' WHERE id ='$id'";
$result_update = mysqli_query($dbc,$update_medicine);
if($result_update){
header ("Location: medicines.php");
exit;
} else {
die ("Query failed" . mysqli_error($dbc));
}
}
?>
<div>
<h1>Medicines edit page</h1>
<form action="" method="post">
<fieldset>
<legend>Medicines edit form</legend>
<input type="hidden" name="id" value="<?php echo $id; ?>">
<p><label for="medicinename"><b>Medicine Name:</b></label> <input type="text" name="medicinename" id="medicinename" value="<?php if (isset($medicinename)) echo $medicinename; ?>" /></p>
<p><label for="productiondate"><b>Production Date:</b></label> <input type="text" name="productiondate" id="productiondate" value="<?php if (isset($productiondate)) echo $productiondate; ?>" /></p>
<p><b><label for="expirationdate">Expiration Date:</b></label> <input type="text" name="expirationdate" id="expirationdate" value="<?php if (isset($expirationdate)) echo $expirationdate; ?>" /> </p>
<p><b><label for="medicineprise">Medicine price:</b></label> <input type="text" name="medicineprise" id="medicineprise" value="<?php if (isset($medicineprice)) echo $medicineprice; ?>" /> </p>
<input type="submit" name="update_medicine" value="Update medicine">
</fieldset>
</form>
</div>
<?php include "includes/footer.php"; ?>
Ik heb het even aangepast.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$id = mysqli_real_escape_string($dbc,$_GET['id']);
$query = "SELECT * FROM medicines WHERE id= $id ";
$result = mysqli_query($dbc,$query);
if($result===true) {
while($row = mysqli_fetch_assoc($result)){
$id= mysqli_real_escape_string($dbc,$row['id']);
$medicinename = mysqli_real_escape_string($dbc,$row['medicinename']);
$productiondate = mysqli_real_escape_string($dbc,$row['productiondate']);
$expirationdate = mysqli_real_escape_string($dbc,$row['expirationdate']);
$medicineprice = mysqli_real_escape_string($dbc,$row['medicineprice']);
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
} else {
echo "Er is geen medicijn-ID gekozen!";
}
?>
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$id = mysqli_real_escape_string($dbc,$_GET['id']);
$query = "SELECT * FROM medicines WHERE id= $id ";
$result = mysqli_query($dbc,$query);
if($result===true) {
while($row = mysqli_fetch_assoc($result)){
$id= mysqli_real_escape_string($dbc,$row['id']);
$medicinename = mysqli_real_escape_string($dbc,$row['medicinename']);
$productiondate = mysqli_real_escape_string($dbc,$row['productiondate']);
$expirationdate = mysqli_real_escape_string($dbc,$row['expirationdate']);
$medicineprice = mysqli_real_escape_string($dbc,$row['medicineprice']);
}
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
} else {
echo "Er is geen medicijn-ID gekozen!";
}
?>
Alleen heb ik nog wat vraagtekens bij je code....
Verder vraag ik me af waarom je een while() loop gebruikt, terwijl je maar één record terug hoort te krijgen. En verder is mysqli_real_escape_string() alleen bedoeld voor data die je in een query stopt. Niet om data daarna nog eens te escapen, want je wilt je uitvoer namelijk niet verminken.
Gewijzigd op 02/01/2017 12:49:14 door - Ariën -
Ik gebruik Notepad++.
De reden waarom ik een loop gebruik, is om straks de variabelen te kunnen gebruiken in de INSERT statement. Eigenlijk, zo heb ik het geleerd tijdens verschillende php-trainingen.
En, indien deze loop niet nodig is, dan hoor ik dat graag en ook wat een betere manier om het aan te pakken.
Verder, begrijp ik niet begrijp is dat het formulier wel wordt geladen met gegevens en niet wanneer ik achter een controle op uitvoer...
Zou iemand mij verder kunnen helpen of in de juiste richting sturen?
Alvast bedankt.
Update 1:
Code van medicines.php om het gehele plaatje duidelijk te hebben:
FYI; niet alle code van medicines.php is actief, vandaar veel gemarkeerd als commentaar...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<?php
require ('includes/config.inc.php');
$page_title = 'Overview of all medicines saved to the database';
include ('includes/header.php');
// If no user_id session variable exists, redirect the user:
if (!isset($_SESSION['user_id'])) {
$url = BASE_URL . 'index.php'; // Define the URL.
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
}else{
echo "Welcome " . "{$_SESSION['firstname']}";
}
require ('includes/db-connection.php'); // Connect to the db.
// Number of records to show per page:
/* $display =5; */
// Determine how many pages there are...
/*
if (isset($_GET['p']) && is_numeric($_GET['p'])) { // Already been determined.
$pages = $_GET['p'];
} else { // Need to determine.
// Count the number of records:
$q = "SELECT COUNT(user_id) FROM users";
$r = @mysqli_query ($dbc, $q);
$row = @mysqli_fetch_array ($r, MYSQLI_NUM);
$records = $row[0];
// Calculate the number of pages...
if ($records > $display) { // More than 1 page.
$pages = ceil ($records/$display);
} else {
$pages = 1;
}
} // End of p IF.
*/
// Determine where in the database to start returning results...
/*
if (isset($_GET['s']) && is_numeric($_GET['s'])) {
$start = $_GET['s'];
} else {
$start = 0;
}
$sort = (isset($_GET['sort'])) ? $_GET['sort'] : 'rd';
//Determine the sorting order:
switch ($sort) {
case 'fn':
$order_by = 'firstname ASC';
break;
case 'ln':
$order_by = 'lastname ASC';
break;
case 'em':
$order_by = 'email ASC';
break;
case 'pn':
$order_by = 'pharmacyname ASC';
break;
case 'tl':
$order_by = 'telephone ASC';
break;
case 'rd':
$order_by = 'registrationdate ASC';
break;
default:
$order_by = 'registrationdate ASC';
$sort = 'rd';
break;
}
*/
// Make the query:
$q = "SELECT medicines.id,medicines.medicinename,medicines.productiondate,medicines.expirationdate,medicinestype.medicinetypename,suppliers.suppliername
FROM medicines
LEFT JOIN users ON users.user_id = medicines.userid
LEFT JOIN medicines_suppliers ON medicines_suppliers.medicine_id=medicines.id
LEFT JOIN suppliers ON medicines_suppliers.supplier_id=suppliers.id
LEFT JOIN medicines_medicinestype ON medicines_medicinestype.medicine_id=medicines.id
LEFT JOIN medicinestype ON medicines_medicinestype.medicinetype_id=medicinestype.id
where users.user_id= '{$_SESSION['user_id']}'";
$r = @mysqli_query ($dbc, $q); // Run the query.
//Count the number of returned row:
$num = mysqli_num_rows($r);
if ($num > 0) { // If it ran OK, display the records.
//Print how many users there are:
echo "<p>There are currently $num registered medicines</p>\n";
// Table header.
echo '<table align="center" cellspacing="3" cellpadding="3" width="75%">
<tr>
<td align="left"><b><a href="medicines.php?sort=fn">medicinename</a></b></td>
<td align="left"><b><a href="medicines.php?sort=ln">productiondate</a></b></td>
<td align="left"><b><a href="medicines.php?sort=em">expirationdate</a></b></td>
<td align="left"><b><a href="medicines.php?sort=pn">medicinetypename</a></b></td>
<td align="left"><b><a href="medicines.php?sort=tl">suppliername</a></b></td>
<td align="left"><b>Edit</b></td>
<td align="left"><b>Delete</b></td>
</tr>';
// Fetch and print all the records:
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
echo '<tr>
<td align="left">' . $row['medicinename'] .'</td>
<td align="left">' . $row['productiondate'] .'</td>
<td align="left">' . $row['expirationdate'] .'</td>
<td align="left">' . $row['medicinetypename'] .'</td>
<td align="left">' . $row['suppliername'] .'</td>
<td align="left"><a href="med_edit.php?id=' . $row['id'] .'">Edit</a></td>
<td align="left"><a href="med_delete.php?id=' . $row['id'] .'">Delete</a></td>
</tr>';
}
echo '</table>'; // Close the table.
mysqli_free_result ($r); // Free up the resources.
} else { // If no records were returnd.
echo '<p class="error">There are currently no registered medicines</p>';
} // End of if ($r) IF.
mysqli_close($dbc); // Close the database connection.
// Make the links to other pages, if necessary.
/*
if ($pages > 1) {
// Add some spacing and start a paragraph:
echo '<br /><p>';
// Determine what page the script is on:
$current_page = ($start/$display) + 1;
// If it's not the first page, make a Previous link:
if ($current_page != 1) {
echo '<a href="medicines.
php?s=' . ($start - $display) .
'&p=' . $pages . '&sort=' .
$sort. '">Previous</a> ';
}
// Make all the numbered pages:
for ($i = 1; $i <= $pages; $i++) {
if ($i != $current_page) {
echo '<a href="medicines.
php?s=' . (($display * ($i -
1))) . '&p=' . $pages .
'&sort=' . $sort.'">' . $i . '</a> ';
} else {
echo $i . ' ';
}
} // End of FOR loop.
// If it's not the last page, make a Next button:
if ($current_page != $pages) {
echo '<a href="medicines.
php?s=' . ($start + $display) .
'&p=' . $pages .
'&sort=' . $sort.'">Next</a>';
}
echo '</p>'; // Close the paragraph.
} // End of links section.
*/
include ('includes/footer.php');
?>
require ('includes/config.inc.php');
$page_title = 'Overview of all medicines saved to the database';
include ('includes/header.php');
// If no user_id session variable exists, redirect the user:
if (!isset($_SESSION['user_id'])) {
$url = BASE_URL . 'index.php'; // Define the URL.
ob_end_clean(); // Delete the buffer.
header("Location: $url");
exit(); // Quit the script.
}else{
echo "Welcome " . "{$_SESSION['firstname']}";
}
require ('includes/db-connection.php'); // Connect to the db.
// Number of records to show per page:
/* $display =5; */
// Determine how many pages there are...
/*
if (isset($_GET['p']) && is_numeric($_GET['p'])) { // Already been determined.
$pages = $_GET['p'];
} else { // Need to determine.
// Count the number of records:
$q = "SELECT COUNT(user_id) FROM users";
$r = @mysqli_query ($dbc, $q);
$row = @mysqli_fetch_array ($r, MYSQLI_NUM);
$records = $row[0];
// Calculate the number of pages...
if ($records > $display) { // More than 1 page.
$pages = ceil ($records/$display);
} else {
$pages = 1;
}
} // End of p IF.
*/
// Determine where in the database to start returning results...
/*
if (isset($_GET['s']) && is_numeric($_GET['s'])) {
$start = $_GET['s'];
} else {
$start = 0;
}
$sort = (isset($_GET['sort'])) ? $_GET['sort'] : 'rd';
//Determine the sorting order:
switch ($sort) {
case 'fn':
$order_by = 'firstname ASC';
break;
case 'ln':
$order_by = 'lastname ASC';
break;
case 'em':
$order_by = 'email ASC';
break;
case 'pn':
$order_by = 'pharmacyname ASC';
break;
case 'tl':
$order_by = 'telephone ASC';
break;
case 'rd':
$order_by = 'registrationdate ASC';
break;
default:
$order_by = 'registrationdate ASC';
$sort = 'rd';
break;
}
*/
// Make the query:
$q = "SELECT medicines.id,medicines.medicinename,medicines.productiondate,medicines.expirationdate,medicinestype.medicinetypename,suppliers.suppliername
FROM medicines
LEFT JOIN users ON users.user_id = medicines.userid
LEFT JOIN medicines_suppliers ON medicines_suppliers.medicine_id=medicines.id
LEFT JOIN suppliers ON medicines_suppliers.supplier_id=suppliers.id
LEFT JOIN medicines_medicinestype ON medicines_medicinestype.medicine_id=medicines.id
LEFT JOIN medicinestype ON medicines_medicinestype.medicinetype_id=medicinestype.id
where users.user_id= '{$_SESSION['user_id']}'";
$r = @mysqli_query ($dbc, $q); // Run the query.
//Count the number of returned row:
$num = mysqli_num_rows($r);
if ($num > 0) { // If it ran OK, display the records.
//Print how many users there are:
echo "<p>There are currently $num registered medicines</p>\n";
// Table header.
echo '<table align="center" cellspacing="3" cellpadding="3" width="75%">
<tr>
<td align="left"><b><a href="medicines.php?sort=fn">medicinename</a></b></td>
<td align="left"><b><a href="medicines.php?sort=ln">productiondate</a></b></td>
<td align="left"><b><a href="medicines.php?sort=em">expirationdate</a></b></td>
<td align="left"><b><a href="medicines.php?sort=pn">medicinetypename</a></b></td>
<td align="left"><b><a href="medicines.php?sort=tl">suppliername</a></b></td>
<td align="left"><b>Edit</b></td>
<td align="left"><b>Delete</b></td>
</tr>';
// Fetch and print all the records:
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
echo '<tr>
<td align="left">' . $row['medicinename'] .'</td>
<td align="left">' . $row['productiondate'] .'</td>
<td align="left">' . $row['expirationdate'] .'</td>
<td align="left">' . $row['medicinetypename'] .'</td>
<td align="left">' . $row['suppliername'] .'</td>
<td align="left"><a href="med_edit.php?id=' . $row['id'] .'">Edit</a></td>
<td align="left"><a href="med_delete.php?id=' . $row['id'] .'">Delete</a></td>
</tr>';
}
echo '</table>'; // Close the table.
mysqli_free_result ($r); // Free up the resources.
} else { // If no records were returnd.
echo '<p class="error">There are currently no registered medicines</p>';
} // End of if ($r) IF.
mysqli_close($dbc); // Close the database connection.
// Make the links to other pages, if necessary.
/*
if ($pages > 1) {
// Add some spacing and start a paragraph:
echo '<br /><p>';
// Determine what page the script is on:
$current_page = ($start/$display) + 1;
// If it's not the first page, make a Previous link:
if ($current_page != 1) {
echo '<a href="medicines.
php?s=' . ($start - $display) .
'&p=' . $pages . '&sort=' .
$sort. '">Previous</a> ';
}
// Make all the numbered pages:
for ($i = 1; $i <= $pages; $i++) {
if ($i != $current_page) {
echo '<a href="medicines.
php?s=' . (($display * ($i -
1))) . '&p=' . $pages .
'&sort=' . $sort.'">' . $i . '</a> ';
} else {
echo $i . ' ';
}
} // End of FOR loop.
// If it's not the last page, make a Next button:
if ($current_page != $pages) {
echo '<a href="medicines.
php?s=' . ($start + $display) .
'&p=' . $pages .
'&sort=' . $sort.'">Next</a>';
}
echo '</p>'; // Close the paragraph.
} // End of links section.
*/
include ('includes/footer.php');
?>
Gewijzigd op 02/01/2017 13:35:21 door Mohamed nvt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$query = "SELECT id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id='".mysqli_real_escape_string($dbc,$_GET['id'])."'";
$result = mysqli_query($dbc,$query);
if($result===true) {
$row = mysqli_fetch_assoc($result)){
// toon hier je formulier of de inhoud van wat je wilt tonen met de data uit je query.
// echo $row['medicinename']; // kan je bijv. gebruiken.
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
} else {
echo "Er is geen medicijn-ID gekozen!";
}
?>
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$query = "SELECT id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id='".mysqli_real_escape_string($dbc,$_GET['id'])."'";
$result = mysqli_query($dbc,$query);
if($result===true) {
$row = mysqli_fetch_assoc($result)){
// toon hier je formulier of de inhoud van wat je wilt tonen met de data uit je query.
// echo $row['medicinename']; // kan je bijv. gebruiken.
} else {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
}
} else {
echo "Er is geen medicijn-ID gekozen!";
}
?>
Ik heb...
- De while-loop eruit gehaald
- Alleen de nodige veldnamen in de SELECT-query benoemd
- De locatie aangegeven waar je formulier moet komen.
- mysqli_real_escape_string direct in je query gezet, zodat het overzichtelijker is.
Gewijzigd op 02/01/2017 13:39:53 door - Ariën -
Bedankt voor je feedback.
Je geeft aan op regel 10 dat ik daar het formulier moet laten zien, inclusief de variabelen in form-vakjes..
Dit betekent dus dat de afhandeling van het formulier onderaan komt, toch?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$query = "SELECT id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id='".mysqli_real_escape_string($dbc,$_GET['id'])."'";
$medicinesResult = mysqli_query($dbc,$query);
if($medicinesResult === FALSE) {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
exit;
}
} else {
echo "Er is geen medicijn-ID gekozen!";
exit;
}
?>
<html>
<body>
blablabla ...
<?php
if(medicinesResult) {
// toon hier je formulier of de inhoud van wat je wilt tonen met de data uit je query.
}
?>
nog meer blabla ...
</body>
</html>
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$query = "SELECT id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id='".mysqli_real_escape_string($dbc,$_GET['id'])."'";
$medicinesResult = mysqli_query($dbc,$query);
if($medicinesResult === FALSE) {
echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
exit;
}
} else {
echo "Er is geen medicijn-ID gekozen!";
exit;
}
?>
<html>
<body>
blablabla ...
<?php
if(medicinesResult) {
// toon hier je formulier of de inhoud van wat je wilt tonen met de data uit je query.
}
?>
nog meer blabla ...
</body>
</html>
Of zo afhankelijk van de situatie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$query = "SELECT id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id='".mysqli_real_escape_string($dbc,$_GET['id'])."'";
$medicinesResult = mysqli_query($dbc,$query);
} else {
echo "Er is geen medicijn-ID gekozen!";
exit;
}
?>
<html>
<body>
blablabla ...
<?php
if(medicinesResult) {
// toon hier je formulier of de inhoud van wat je wilt tonen met de data uit je query.
} else {
echo 'Geen medicijnen gevonden.';
}
?>
nog meer blabla ...
</body>
</html>
// Need the database connection:
require(MYSQL);
// op basis van een id worden gegevens van de vorige pagina geselecteerd en hieronder in het form weergegeven
if(isset($_GET['id'])){
$query = "SELECT id, medicinename, productiondate, expirationdate, medicineprice FROM medicines WHERE id='".mysqli_real_escape_string($dbc,$_GET['id'])."'";
$medicinesResult = mysqli_query($dbc,$query);
} else {
echo "Er is geen medicijn-ID gekozen!";
exit;
}
?>
<html>
<body>
blablabla ...
<?php
if(medicinesResult) {
// toon hier je formulier of de inhoud van wat je wilt tonen met de data uit je query.
} else {
echo 'Geen medicijnen gevonden.';
}
?>
nog meer blabla ...
</body>
</html>
Gewijzigd op 02/01/2017 14:11:22 door Frank Nietbelangrijk