Vage foutmelding op de edit pagina

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Mohamed nvt

Mohamed nvt

02/01/2017 14:12:04
Quote Anchor link
Ik heb het zo in elkaar gezet:
Let wel, dat ik voor het formulier de php code breek en weer open na het formulier...
Ik krijg nu enkel dat betreffende pagina niet gevonden kan worden en er is geen error in logs....
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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)){?>

<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 } else {
        echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
    }
}
else {
    echo "Er is geen medicijn-ID gekozen!";
}
}

?>

<?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));                
                
            }
    }


?>

<?php include "includes/footer.php"; ?>
Gewijzigd op 02/01/2017 14:12:58 door Mohamed nvt
 
PHP hulp

PHP hulp

19/04/2024 01:49:10
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/01/2017 14:17:51
Quote Anchor link
Nee dit is niet logisch Mohamed. Je wilt namelijk een pagina tonen aan de gebruiker. Maar de inhoud van deze pagina is AFHANKELIJK van een aantal variabelen. Zo kan het zijn dat je de gebruiker een nieuw leeg formulier wilt tonen of een formulier met foutmeldingen of een bedankpagina na een forward met header('Location: ...'). De functie header mag je enkel gebruiken voordat je iets echo-t. Dus moet dit bovenin komen, voor je output (view).
Gewijzigd op 02/01/2017 14:18:42 door Frank Nietbelangrijk
 
Thomas van den Heuvel

Thomas van den Heuvel

02/01/2017 14:18:39
Quote Anchor link
Waarom filter je je input niet? Indien $_GET['id'] geen numerieke waarde bevat heeft het sowieso geen zin om de query uit te voeren. Overigens is het gebruik van real_escape_string() zonder quotes niet veilig. real_escape_string() is ook geen wondermiddel.

Tevens:
- Ariën - op 02/01/2017 13:58:06:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
    // hier je afhandeling
} else {
    // hier je formulier.
}
?>

Het lijkt mij beter om de verschillende acties (het weergeven van een formulier, het verwerken van een formulier etc.) beter op te delen in verschillende stukken. Naarmate je scripts langer/complexer worden zijn dit soort constructies steeds minder gewenst.

Het opdelen in verschillende logische eenheden lijkt mij des te meer verstandig omdat ik al ergens ob_end_flush() zag staan - dit houdt in dat je al ergens begonnen was met het weergeven van een HTML-document, maar daar af en toe van af wil zien? Ook dit zou beter opgedeeld moeten worden: of je produceert geldige output (een compleet HTML-document, JSON, iets anders) of je produceert géén output (maar enkel headers die je doorverwijzen of iets dergelijks).

Misschien is dit een goed moment om even een stapje achteruit te doen en eens te kijken hoe de flow van je code/pagina-opbouw handiger aangepakt kan worden. Deze investering verdient zich snel weer terug omdat ontwikkeling en debugging in veel kleinere partjes kan/betrekking heeft.
 
- Ariën  -
Beheerder

- Ariën -

02/01/2017 14:19:33
Quote Anchor link
Probeer nauwkeurig te zijn met inspringen, als ik twee }} achter elkaar zie staan in één lijn, dan is je script erg onduidelijk. Zie ook lijn 35 en 36.

Verder is die() ook niet de juiste manier van fouten afhandelen. Waarom zou je script er helemaal mee moeten stoppen? Alleen bij een location-header is een exit of een die de juiste oplossing.
 
Obelix Idefix

Obelix Idefix

02/01/2017 20:02:20
Quote Anchor link
Waarom komt $row['id'] op regel 40 vandaan en de variabelen op regel 42?
Gewijzigd op 02/01/2017 20:07:50 door Obelix Idefix
 
Mohamed nvt

Mohamed nvt

02/01/2017 20:11:22
Quote Anchor link
Hallo allemaal,

Door alle adviezen ben ik nu een beetje in de war.
Wat is een duidelijke indeling voor mijn probleem, en ik dacht zelf aan het volgende na het doornemen van alle adviezen:

med_edit pagina
1. sessie controleren om te bepalen of een user ingelogd is en anders door verwijzen naar login pagina
2. dmv get[''] het ID ophalen uit de medicines.php pagina
3. gegevens uit dn ophalen
4. afhandelen van het formulier
5. formulier laten zien?


Wat denken jullie over bovenstaande indeling?


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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'])){
    $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)){
    }
else {
        echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
    }
}
else {
    echo "Er is geen medicijn-ID gekozen!";
    }
}

?>

<?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"; ?>
Gewijzigd op 02/01/2017 20:22:25 door Mohamed nvt
 
- Ariën  -
Beheerder

- Ariën -

02/01/2017 20:23:02
Quote Anchor link
Op lijn 28 waar je query met succes uitgevoerd is, daar controleer je of je formulier is verstuurd. En als dat niet verstuurd is, dan toon je het formulier. Dat is in mijn ogen de beste, logische en overzichtelijke keuze.
En ja, er zijn altijd mensen die anders zijn gewend. Genoeg mogelijkheden....

Op jouw manier die je nu hebt zie je ook zonder een meegegeven ID in de URL ook een formulier, en dat hoort niet. Het is eigenlijk een opbouw in de vorm van:
Doe dit, en anders dat.. doe zus, en anders zo... doe dit, en anders dat.....
En dat valt dan mooi te nestelen.
Gewijzigd op 02/01/2017 20:25:00 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/01/2017 21:07:18
Quote Anchor link
De output is wel naar onderen nu. Dat ziet er veel beter uit.

Alleen de include ('includes/header.php'); op regel vier moet naar regel 53. Want in header.php staat ook pure output (neem ik aan).

In aanvulling op de aanmerking van Arien:

Deze hele pagina Heeft absoluut 1 vereiste:

- Er moet een geldige GET variabele 'id' meegegeven worden.

Dit id moet aan de volgende voorwaarden voldoen:
- moet meegegeven worden ( isset($_GET['id']) )
- numeriek geheel getal zijn
- groter dan nul zijn
- voorkomen in de medicines tabel. (dwz controleren of het record gevonden is)

Voldoet id niet aan de voorwaarden dan kun je deze pagina niet weergeven. Toon in dat geval een foutmelding.

verder wat zeur dingetjes:
- Regel 38 de if staat helemaal tegen de kantlijn wat goed is maar dan hoort de } op regel 52 ook tegen de kantlijn
- regel 36 + 37 kunnen vervallen
- de foutmeldingen op regel 17, 30, 33 gaan nu een tekst op het scherm zetten waarna nog de html geopend zal worden. Misschien moet je hier een functie voor maken?
- regel 17 moet in de output komen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
function showError($tekst)
{

    include ('includes/header.php');
    echo '<p class="warning">' . $tekst . '</p>';
    include ('includes/footer.php');
}


// aanroepen met:
showError("Er is een fout bij ons opgetreden: ".mysqli_error($dbc));
exit; // !!!
?>
Gewijzigd op 02/01/2017 21:08:59 door Frank Nietbelangrijk
 
Mohamed nvt

Mohamed nvt

03/01/2017 20:52:46
Quote Anchor link
Hallo allemaal,

Na jullie adviezen heb ik het med_edit.php opnieuw gebouwd, maar kan er helaas nog niets mee doen.
Vooraf controleer ik of het $_GET['id'] is set, niet leeg is en/of het een integer is.
Als het form niet verzonden is, dan wordt het weergegeven. Het is dus het ene of andere...

Helaas heeft het de volgende foutmelding en hopelijk kunnen jullie van mij advies voorzien:

1. Wit pagina, wegens een syntax fout, en volgens http://phpcodechecker.com/ vind ik er eentje op regel 31, maar die { hoort bij regel 38
2. geen idee nog, wegens wit pagina.


Zoals eerder aangegeven wordt het formulier aangegeven wanneer het niet verzonden is, maar ik vraag me af of ik de php code moet breken op form value, omdat daar ook php code staat om vervolgens php code opnieuw te beginnen?

Alvast bedankt voor jullie feedback!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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']) && !empty($_GET['id']) && is_int($_GET['id'])){
    $query = "SELECT * FROM medicines WHERE id='".mysqli_real_escape_string($dbc,$_GET['id'])."'";

    $result = mysqli_query($dbc,$query);
    if($result===true) {
            $row = mysqli_fetch_assoc($result){
        
                }
else {
                    echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
                }
        }
else {
    echo "Er is geen medicijn-ID gekozen!";
    }
}

?>

<?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));                
                
            }
    }
else {
        echo '<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"; ?>
 
- Ariën  -
Beheerder

- Ariën -

03/01/2017 21:28:33
Quote Anchor link
Je uitlijning is nog niet echt perfect. ;-)
 
Thomas van den Heuvel

Thomas van den Heuvel

03/01/2017 21:38:45
Quote Anchor link
is_int() gaat sowieso niet werken omdat $_GET['id'] een string is (zoals alle variabelen in $_GET en $_POST). is_int() checkt namelijk het type, zoals ook op PHP.net staat.

Daar staat tevens:
Quote:
Note:

To test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric().


Of je maakt gebruik van een regexp, omdat is_numeric() nogal breed is.

Ook is het niet nodig om lappen HTML te echo'en. Je kunt te allen tijde een PHP-blok afbreken en opnieuw opstarten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if ($whatever) {
    ?>
<b>Dit is een stuk beter leesbaar dan een lap HTML echo'en.</b><?php
}
?>
 
Mohamed nvt

Mohamed nvt

04/01/2017 06:43:19
Quote Anchor link
Hallo - Ariën -,

Als je tips hebt, dan hoor ik dat graag of is er een beter programma om PHP te schrijven dan Notepad++?
Ik kan die syntax errors maar niet vinden helaas...


@Thomas,
is_int heb ik vervangen door is_numeric en voor het form beëindig ik php code en na het form begin ik weer met PHP code...

Zou iemand willen kijken waar ik precies een syntax error heb?

Alvast bedankt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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']) && !empty($_GET['id']) && is_numeric($_GET['id'])){
    $query = "SELECT * FROM medicines WHERE id='".mysqli_real_escape_string($dbc,$_GET['id'])."'";

    $result = mysqli_query($dbc,$query);
    if($result===true) {
            $row = mysqli_fetch_assoc($result){
        
                }
else {
                    echo "Er is een fout bij ons opgetreden: ".mysqli_error($dbc);
            }
        }
else {
    echo "Er is geen medicijn-ID gekozen!";
    }
}

?>

<?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));                
                
        }
    }
else { ?>

    <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 }

?>

<?php include "includes/footer.php"; ?>


Toevoeging op 04/01/2017 07:13:56:

Update:

De foutmelding "wit pagina" heb ik nu opgelost.
Helaas krijg ik nog steeds de foutmelding dat er geen medicijn_ID wordt gekozen en dus het formulier wordt niet geladen met medicijn gegevens...

Nieuw code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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']) && !empty($_GET['id']) && is_numeric($_GET['id'])){
    $query = "SELECT * FROM medicines WHERE id='".mysqli_real_escape_string($dbc,$_GET['id'])."'";

    $result = mysqli_query($dbc,$query);
    if($result===true) {
            $row = mysqli_fetch_assoc($result);
        }
else {
            echo "Er is geen medicijn-ID gekozen!";
    }
}

?>

<?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));                
                
        }
    }
else { ?>

    <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 }

?>

<?php include "includes/footer.php"; ?>
 
- Ariën  -
Beheerder

- Ariën -

04/01/2017 09:52:19
Quote Anchor link
Die foutmelding staat op de verkeerde plaats. Eigenlijk is het je query die niet werkt.

Ikzelf gebruik Netbeans IDE.
Gewijzigd op 04/01/2017 09:52:59 door - Ariën -
 
Obelix Idefix

Obelix Idefix

04/01/2017 14:03:15
Quote Anchor link
Waar komt $row['id'] op regel 40 vandaan?
En waar komende de variabelen op regel 42 vandaan?

Debuggen: Wat zit er in $_GET['id'] als je die echoot op bv regel 26?
 
Thomas van den Heuvel

Thomas van den Heuvel

04/01/2017 16:14:29
Quote Anchor link
Wederom verwijs ik je naar PHP.net.

mysqli_query met een SELECT-statement levert:
- ofwel false op wanneer er syntax-fouten in de query zitten
- ofwel een mysqli_result object (dit kan overigens een lege resultset zijn)

Op regel 31 vergelijk je het resultaat echter met true. Dit gaat nooit werken.

Dit had je ook zelf kunnen zien, je zegt immers:
Quote:
Helaas krijg ik nog steeds de foutmelding dat er geen medicijn_ID wordt gekozen en dus het formulier wordt niet geladen met medicijn gegevens...

Dit wijst je rechtstreeks naar het if-statement waar het resultaat blijkbaar dus geen true was.
Gewijzigd op 04/01/2017 16:15:53 door Thomas van den Heuvel
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.