Jump to content
Bekijk in de app

Een betere weg om onze GTA community te volgen. Leer meer.

GTAGames.nl - De Nederlandse Grand Theft Auto Community!

Een volledig scherm app op het beginscherm inclusief notificaties, badges en meer.

Om deze app op je iPhone en iPad te installeren
  1. Druk op het icoon in Safari
  2. Scroll in het menu en druk op Zet op beginscherm.
  3. Druk op Voeg toe rechts bovenaan.
Om deze app op je Android toe te voegen
  1. Druk op het 3-punten menu (⋮) rechts bovenaan in de browser.
  2. Druk op Toevoegen aan beginscherm of Installeer app.
  3. Druk op Toevoegen om te bevestigen.
Geplaatst:
comment_2249820

Ik heb een scriptje gemaakt waarmee je de prijs van een sportartikel kunt aanpassen d.m.v. een form. Echter, als ik de nieuwe prijs doorvoer blijft de oude prijs in de database staan. Iemand enig idee wat er fout gaat?

<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "webauth";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$artikelquery = "SELECT * FROM artikel;";
$artikel = mysqli_query($connection, $artikelquery);
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
Kies een artikel:</br>
<select name="artikel">
<?php
while($artikelrow = mysqli_fetch_row($artikel)) {
echo '<option value="'.$artikelrow[1].'">'."$artikelrow[1], $artikelrow[3] euro</option>";
}
?>
</select>
</br></br>
Vul de nieuwe prijs van het artikel in:</br>
<input type="number" name="prijs"></br></br>
<input type="submit" value="Verzend">
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {
$nieuwprijs = $_POST['prijs'];
$artikel = $_POST['artikel'];
$update = "UPDATE artikel SET Verkoopprijs ='". $nieuwprijs ."' WHERE Artikelnr ='". $artikel ."';";
mysqli_query($connection, $update);
echo 'Artikel '. $artikel .' is aangepast naar '. $nieuwprijs .' euro.';
}
?>

De database (.sql) heb ik bijgevoegd, mocht iemand het zelf willen proberen.

firstchoice.rar

Featured Replies

Geplaatst:
comment_2249822

Lijkt er in principe goed uit te zien. Behalve dat je de waarde die je naar de server zend niet controleert. Weet niet of dit voor een backoffice is. Maar het lijkt me slim om te controleren of bijvoorbeeld de prijs wel een getal is (met punt en geen komma?) en ook de artikelbeschrijving controleert.

Wat ik altijd doe is gewoon eerst de queries in PhpMyAdmin gooien/testen om te kijken of er niets raar gebeurd en de query doet wat ik wil.

Geplaatst:
comment_2249823

Je kan in ieder geval al starten door (tijdelijk) deze twee regels bovenaan je script toe te voegen:

ini_set('display_errors', '1');
error_reporting(E_ALL);

Hiermee krijg je ook Notices te zien, die anders verborgen worden. Het probleem lijkt zich echter hier te situeren:

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">

Je vergeet daar een echo toe te voegen, dus:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

Geplaatst:
  • Auteur
comment_2249831

Lijkt er in principe goed uit te zien. Behalve dat je de waarde die je naar de server zend niet controleert. Weet niet of dit voor een backoffice is. Maar het lijkt me slim om te controleren of bijvoorbeeld de prijs wel een getal is (met punt en geen komma?) en ook de artikelbeschrijving controleert.

Wat ik altijd doe is gewoon eerst de queries in PhpMyAdmin gooien/testen om te kijken of er niets raar gebeurd en de query doet wat ik wil.

De prijs bevat geen decimalen, dus daar kan niet echt iets fout gaan. Normaal gesproken wil ik nog wel eens wat checks inbouwen, maar dit is zo kleinschalig dat ik het niet echt nodig vond. Gaat me er alleen om dat ik de database aan kan passen vanuit een webpagina.

Je kan in ieder geval al starten door (tijdelijk) deze twee regels bovenaan je script toe te voegen:

[..]

Bedankt voor de suggestie, maar dat lost het probleem niet op helaas. Er zijn ook geen notices te zien. Ik staar me er op dood inmiddels. puh2.gif

Geplaatst:
comment_2249847

Je verwijst naar de verkeerde kolom in de tabel artikel. Je artikelnummer staat in kolom 0 en niet in kolom 1, want je begint altijd bij 0 met tellen in lijsten, arrays, etc. Overigens zou ik naar de naam van de kolom verwijzen als je het uitgebreider wil maken. Je hoeft maar de volgorde van de kolommen in je database te veranderen en je hele script werkt niet meer.

Geplaatst:
  • Auteur
comment_2249863

Je verwijst naar de verkeerde kolom in de tabel artikel. Je artikelnummer staat in kolom 0 en niet in kolom 1, want je begint altijd bij 0 met tellen in lijsten, arrays, etc. Overigens zou ik naar de naam van de kolom verwijzen als je het uitgebreider wil maken. Je hoeft maar de volgorde van de kolommen in je database te veranderen en je hele script werkt niet meer.

Dat was 'm, bedankt! thumbsup2.gif

Geplaatst:
  • Auteur
comment_2250961

Nog even een vraagje... Hoe kan ik d.m.v. een foreach-loop mijn database updaten? Ik heb een webpagina gemaakt waarop een overzicht staat van een aantal maaltijden. De hoeveelheid benodigde ingrediënten (bijv. 100g kip, 75g tomaten) van een maaltijd kunnen aangepast worden en dat moet weer in de database opgeslagen worden.

Code:

http://codepaste.net/7o2cho

Ik heb al van alles geprobeerd, maar krijg het niet werkend...

Geplaatst:
comment_2251037

Je POST-variabele aantal is inmiddels een array, die zich dus leent voor een lus. Als je dan foreach over aantal doet zul je automatisch de waarden terug krijgen die je zoekt.

Ik zou alleen wel de ID in de HTML van aantal toevoegen, zodat je zeker weet dat je het juiste artikel aanpast.

(hoop dat het duidelijk is, typ dit vanaf m'n mobiel :puh:)

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.

Configureer push berichten

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.