UPDATE MySql
Ik wil een UPDATE doen richting de Dbase, echter krijgt hij alle info goed binnen, maar hij update de DBase niet.
Ik krijg alles wat ik wil, maar ergens heb ik iets over het hoofd gezien misschien?
Dit is de code
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include('./dbase.php');
session_start();
$title = $_POST['title'];
$story = $_POST['story'];
$ID = $_POST['ID'];
echo "<br>".$title."<br>";
echo nl2br($story)."<br>";
echo $writer."<br>";
echo $ID;
$sql ='UPDATE News SET Title="'.$title.'", Story="'.$story.'" WHERE ID="'.$ID.'"';
header('Location: ../index.php?menu=news');
?>
include('./dbase.php');
session_start();
$title = $_POST['title'];
$story = $_POST['story'];
$ID = $_POST['ID'];
echo "<br>".$title."<br>";
echo nl2br($story)."<br>";
echo $writer."<br>";
echo $ID;
$sql ='UPDATE News SET Title="'.$title.'", Story="'.$story.'" WHERE ID="'.$ID.'"';
header('Location: ../index.php?menu=news');
?>
Toevoeging op 02/06/2022 11:24:34:
Jorn Reed op 02/06/2022 11:23:33:
Ik zie geen uitvoer van de query. Nu is het puur een variablel met een query string.
Ik kan ook niet op welke manier je met de DB verbindt.
Je moet de functie mysqli_query gebruiken om de query te executen. Lees ook iets over prepared statements (PDO), want op dit moment is je query erg onveilig.
Hij doet ook de sql uitvoeren, maar toch verschijnt er niks in de dbase.
Hedt item wat ik aan wil passen, blijft onveranderd.
Goed lezen wat er wordt gezegd!!!
>> Ik zie geen uitvoer van de query.
>> Je moet de functie mysqli_query gebruiken om de query te executen.
Arno van Zanten op 02/06/2022 11:29:27:
Hij doet alles, want als ik alles met een echo doe, dan krijg ik ook results te zien.
Hij doet ook de sql uitvoeren, maar toch verschijnt er niks in de dbase.
Hedt item wat ik aan wil passen, blijft onveranderd.
Hij doet ook de sql uitvoeren, maar toch verschijnt er niks in de dbase.
Hedt item wat ik aan wil passen, blijft onveranderd.
PS: dit is de dbase strutuur van News
ID
Title
Story
Writer
date
Toevoeging op 02/06/2022 11:36:23:
code nu aangepast maar nu blijft hij steken op de $sql
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include('./dbase.php');
session_start();
$title = $_POST['title'];
$story = $_POST['story'];
$ID = $_POST['ID'];
echo "<br>".$title."<br>";
echo nl2br($story)."<br>";
echo $writer."<br>";
echo $ID;
$sql = mysqli_query('UPDATE News SET Title="'.$title.'", Story="'.$story.'" WHERE ID="'.$ID.'"');
header('Location: ../index.php?menu=news');
?>
include('./dbase.php');
session_start();
$title = $_POST['title'];
$story = $_POST['story'];
$ID = $_POST['ID'];
echo "<br>".$title."<br>";
echo nl2br($story)."<br>";
echo $writer."<br>";
echo $ID;
$sql = mysqli_query('UPDATE News SET Title="'.$title.'", Story="'.$story.'" WHERE ID="'.$ID.'"');
header('Location: ../index.php?menu=news');
?>
https://www.w3schools.com/php/php_mysql_update.asp
Bekijk het blok "Example (MySQLi Procedural)"
Eerst lezen, daarna zelf proberen.
nog te namen stappen dus
controleren of de query ok is: if($sql) {....}
Lees de gegevens indien ok mysqli_fetch_.....
stuur de uitvoer door naar de gebruiker echo ....
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
include('./dbase.php');
session_start();
$title = $_POST['title'];
$story = $_POST['story'];
$ID = $_POST['ID'];
echo "<br>".$title."<br>";
echo nl2br($story)."<br>";
echo $writer."<br>";
echo $ID;
$sql = 'UPDATE News SET Title="'.$title.'", Story="'.$story.'" WHERE ID="'.$ID.'"';
if(mysqli_query($connect, $sql)) {
echo "<br>Record Updated Succesfully";
} else {
echo "<br>Error Updating record";
}
header('Location: ../index.php?menu=news');
?>
include('./dbase.php');
session_start();
$title = $_POST['title'];
$story = $_POST['story'];
$ID = $_POST['ID'];
echo "<br>".$title."<br>";
echo nl2br($story)."<br>";
echo $writer."<br>";
echo $ID;
$sql = 'UPDATE News SET Title="'.$title.'", Story="'.$story.'" WHERE ID="'.$ID.'"';
if(mysqli_query($connect, $sql)) {
echo "<br>Record Updated Succesfully";
} else {
echo "<br>Error Updating record";
}
header('Location: ../index.php?menu=news');
?>
a) omdat je geen verbinding hebt met de database;
b) omdat je query opbouw niet klopt (lijkt hier ok)
c) omdat tabellen of kolommen toch net anders heten;
d) omdat er een niet-escapete ' in je invoer zit.
Maar mogelijk is het ook zinnig om de error reporing van PHP gewoon aan te zetten: dan krijg je vast een melding over dat je eerste parameter van mysqli_query() een string is ipv een verbinding
Toevoeging op 02/06/2022 11:48:08:
Arno van Zanten op 02/06/2022 11:45:25:
Code is niet veel veranderd, maar nu werkt ie ineens
Niet veel, maar je gebruikt nu wél $connect in je mysqli_query()....
Maar zet sowieso je error_reporting aan. Dit had php je ook kunnen melden.
Toevoeging op 02/06/2022 11:49:39:
enne: gebruiker meteen bij het einde van de pagina doorverwijzen is (zeker tijdens het ontwikkelen) niet heel handig. Je ziet dan eventuele uitvoer of foutmeldingen ook niet meer. Zeker niet als ook nog output-buffering aan staat.
Arno van Zanten op 02/06/2022 11:45:25:
Code is niet veel veranderd, maar nu werkt ie ineens
Daarom gaf ik je ook dat voorbeeld, en daarom is het van belang om goed te lezen. Ik krijg de indruk dat je iemand bent die alles 'snel snel' wilt doen. En dan maak je dus fouten. Fouten die je zelf kunt voorkomen/oplossen door even op je gemak een voorbeeld te bekijken.
Voor queries en databaseafhandelingen kan je hier mooie uitleg vinden:
https://github.com/arienclaij/sql-boilerplate/tree/master/mysqli
Deze zal ik de komende tijd even verder updaten.
Verder krijg ik ook sterk de indruk dat je echt van de hak-op-de-tak spring bij het maken van PHPscript. Dan loop je weer vast in basis-kennis, en een dag later loop je vast bij iets waar je wat gevorderder voor moet zijn.
Mijn advies: Zet alles waar je mee bezig bent even in de koelkast, en werk alles netjes stap voor stap af vanaf hoofdstuk 1. Steeds meer leer je PHP dan beter kennen, en elke stap die je maakt daar heb je ook profijt van bij de opvolgende hoofdstukken.
Anders loop je kans dat je veel belangrijke theorie gaat missen, en eventueel cruciale fouten gaat maken waar je laten spijt van zal hebben, zoals veiligheidslekken, of slordige code die je jezelf aanleert. Iets dat je absoluut NIET wilt.
Gewijzigd op 02/06/2022 12:28:51 door - Ariën -
Je bedoelt Read The Fine Manual? ;-)