Hallo en ja daar ben ik weer.

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

<?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');
?>
Ik zie geen uitvoer van de query. Nu is het puur een variablel met een query string.

[size=xsmall]Toevoeging op 02/06/2022 11:24:34:[/size]

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 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 alles, want als ik alles met een echo doe, dan krijg ik ook results te zien.

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.


PS: dit is de dbase strutuur van News

ID
Title
Story
Writer
date

[size=xsmall]Toevoeging op 02/06/2022 11:36:23:[/size]

code nu aangepast maar nu blijft hij steken op de $sql

<?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');
?>
JE voer nu wel de query uit maar haalt geen gegevens op laat staan uitsturen naar de ontvanger
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 is niet veel veranderd, maar nu werkt ie ineens

<?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');
?>
vaak is het erg verhelderend als je mysqi_error() print als het mis gaat met het uitvoeren.

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.

<?php
if(!$sql) {
echo 'fout met query: ' . mysqli_error($conn);
}
?>

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

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>

[size=xsmall]Toevoeging op 02/06/2022 11:48:08:[/size]

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.



[size=xsmall]Toevoeging op 02/06/2022 11:49:39:[/size]

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.

Reageren