HTML-site forum


 · Forums · Reactie · Statistieken · Registreren · Zoeken · Regels · Tips · FAQ
HTML-site forum / PHP, ASP etc. / Probleem met veranderen in database
Schrijver Bericht
Ajax
Forum Lid

447 posts
# Geplaatst: 9 Mar 2010 18:00 · Aangepast door: Ajax


Hallo, daar ben ik weer ;

Ik heeb een nieuwsscript proberen te schrijven waarin ik een pagina heb dat ik records uit een MYSQL database kan wijzigen, dat is deze:
php code
<?php
$actie = $_POST['submit'];
if ($actie=="submit") {
$onderwerp = $_POST['o'];
 
$datum = date("d.m.Y H:i:s");
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpaswoord = ""; 
$dbdatabase = "stephan"; 
 
$db = mysql_connect($dbhost, $dbuser, $dbpaswoord); 
mysql_select_db($dbdatabase, $db); 
 
$sql = "SELECT * FROM nieuws WHERE onderwerp = '".$onderwerp."'";
$resultaat = mysql_query($sql) or die ("query mislukt");
$row = mysql_fetch_array($resultaat);
	if(!empty($row)){
		if(empty($_POST['b'])){
		echo "<form name=\"update\" method=\"post\" action=\"".$PHP_SELF."\">
		<br>Voer het nieuwe bericht in:<textarea rows=\"20\" cols=\"45\" name=\"b\"></textarea><br>
		<input type=\"submit\" name=\"submit2\" value=\"verander\"></form>";
		}
		else {
		$bericht = $_POST['b'];
		$onderwerp = $_POST['o'];
		$update = "UPDATE nieuws SET bericht = '".$bericht."' WHERE onderwerp = '".$onderwerp."'";
		$query = mysql_query($update) or die ("query mislukt");
		echo "Het is gelukt!";
		}
	}
	else {
	echo "Onderwerp is niet gevonden";
	}
}
else {
echo "<form name=\"change\" method=\"post\" action=\"".$PHP_SELF."\">
Welk Onderwerp wilt u aanpassen?:<br>
<input type=\"text\" name=\"o\">
<br>
<input type=\"submit\" name=\"submit\" value=\"submit\">
</form>";
}
?>


Zoals jullie kunnen zien, moet eerst het onderwerp gevonden worden in de database en dan kan men het bericht aanpassen.'
Als ik nu op de knop verander heb gedrukt om de tekst te veranderen spring de pagina weer terug naar waar ik het onderwerp kan invullen.
Wie o wie heeft een oplossing?

 
jwvos
Forum Lid

1391 posts
# Geplaatst: 10 Mar 2010 13:06 · Aangepast door: jwvos


Gebruik bij alle2 de forms eens: action="" ipv action=\"".$PHP_SELF."\"
Kijk hier maar eens: http://www.sitemasters.be/forum/1/26542 .
$PHP_SELF werkt dus alleen in de oudere versies van PHP.

Tijd geleden dat ik op html site zat, effe wennen ^^

PaulG
Forum Lid

195 posts
# Geplaatst: 10 Mar 2010 14:10


Hij update niet omdat je geen onderwerp hebt bij de update! Dus bij de velden voor invullen bericht moet je ook onderwerp weer in het form submitten (hidden veld)

Ajax
Forum Lid

447 posts
# Geplaatst: 10 Mar 2010 14:11


Nee helpt ook niet...

Ajax
Forum Lid

447 posts
# Geplaatst: 10 Mar 2010 14:12


Zal het proberen Paul

Ajax
Forum Lid

447 posts
# Geplaatst: 10 Mar 2010 14:15


Nee ook dat helpt niet

PaulG
Forum Lid

195 posts
# Geplaatst: 10 Mar 2010 15:12


if ($actie=="submit")
je hebt ook een submit knop die submit2 heet !!!

Sgrovert
Forum Lid

50 posts
# Geplaatst: 10 Mar 2010 15:13


Je hebt 2 verschillende formulieren. Op het moment dat je met het eerste forumulier je onderwerp invult is er niks aan de hand, en opend het tweede formulier.
Als je daarna in het tweede formulier iets invult, vergeet het systeem de post uit het eerst formulier.
$onderwerp is daarna leef, en het systeem kan je onderwerp niet meer vinden. Hierdoor word het eerst formulier weer getoont.

Ajax
Forum Lid

447 posts
# Geplaatst: 10 Mar 2010 17:16


Oke, heb het 1 en ander aan lopen passen, maar nog geen resultaat.
hier de nieuwe code:
php code
<?php
$actie = $_POST['actie'];
if ($actie=="login") {
$onderwerp = $_POST['o'];
 
$datum = date("d.m.Y H:i:s");
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpaswoord = ""; 
$dbdatabase = "stephan"; 
 
$db = mysql_connect($dbhost, $dbuser, $dbpaswoord); 
mysql_select_db($dbdatabase, $db); 
 
$sql = "SELECT * FROM nieuws WHERE onderwerp = '".$onderwerp."'";
$resultaat = mysql_query($sql) or die ("query mislukt");
$row = mysql_fetch_array($resultaat);
	if(!empty($row)){
		if(empty($_POST['b'])){
		echo "<form name=\"update\" method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
		<br><input type=\"text\" name=\"subject\">
		<br>Voer het nieuwe bericht in:<textarea rows=\"20\" cols=\"45\" name=\"b\"></textarea><br>
		<input type=\"submit\" name=\"verzend\" value=\"verander\"></form>";
		}
		else {
		$bericht = $_POST['b'];
		$subject = $_POST['subject'];
		$update = "UPDATE nieuws SET bericht = '".$bericht."' WHERE onderwerp = '".$subject."'";
		$query = mysql_query($update) or die ("query mislukt");
		echo "Het is gelukt!";
		}
	}
	else {
	echo "Onderwerp is niet gevonden";
	}
}
else {
echo "<form name=\"change\" method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
Welk Onderwerp wilt u aanpassen?:<br>
<input type=\"hidden\" name=\"actie\" value=\"login\" />
<input type=\"text\" name=\"o\">
<br>
<input type=\"submit\" name=\"submit\" value=\"submit\">
</form>";
}
?>


PaulG
Forum Lid

195 posts
# Geplaatst: 11 Mar 2010 06:41


Zelfde probleem.
if ($actie=="login") {
bij het tweede formulier heb je geen post actie met 'login' dus na het bericht invoeren komt hij niet langs dit IF statement en dus kan het niet geupdate worden.

Ajax
Forum Lid

447 posts
# Geplaatst: 11 Mar 2010 15:18


Dat heb ik wel

php code
<input type=\"hidden\" name=\"actie\" value=\"login\" />


PaulG
Forum Lid

195 posts
# Geplaatst: 12 Mar 2010 06:31


php code
if(empty($_POST['b'])){
		echo "<form name=\"update\" method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">
		<br><input type=\"text\" name=\"subject\">
		<br>Voer het nieuwe bericht in:<textarea rows=\"20\" cols=\"45\" name=\"b\"></textarea><br>
		<input type=\"submit\" name=\"verzend\" value=\"verander\"></form>";
		}
		else {

wijs het hier eens aan dan....

Ajax
Forum Lid

447 posts
# Geplaatst: 12 Mar 2010 13:48


aah ik snap je opvatting, oke

Sgrovert
Forum Lid

50 posts
# Geplaatst: 12 Mar 2010 23:32


Buiten het feit dat je ongelooflijk waardeloze naamgeving voor je variabelen hebt, zal je in de code die PaulG geeft hetvolgende bij moeten plaatsen:

<input type=\"hidden\" name=\"b\" value=\"$_POST['b']\">

Als het goed is moet het daarna blijven werken.

Reactie

Tekst vet maken  Tekst cursief maken  Tekst onderstrepen  Afbeelding invoegen  Insert YouTube video  Link invoegen  html code invoeren  css code invoeren  php code invoeren   javascript code invoeren  Uitschakelen *Wat is dat?


» Naam  » Wachtwoord 
 Alleen geregistreerde bezoekers kunnen hier een bericht plaatsen. Je kunt inloggen of je hier registreren.

 



Dit forum is gebaseerd op miniBB © 2001-2010

cursus html


Sponsor: BlueYellow

Sitemap