Kn de fout niet vinden

Status
Niet open voor verdere reacties.
ben nog een leek op gebied van php..

ze zeggen het allemaal zo makkelijk haha
 
Alvast bedankt voor de tips,

Ben alweer stukie verder.

Hij list nu alle berichten die in de database staan, dat doet die dus goed.

alleen als ik dan op de knop bewerken druk, maakt niet uit welk bericht laat die steeds hetzelfde bericht zien.

dus als er staat dit is een test, laat die dat bij elke bericht zijn als ik hem wil bewerken.

Maar als ik deze tekst verander wijzigd die hem ook niet in de database

Voor het bewerken van de berichten heb ik jou script gebruikt, voor het listen van de berichten heb ik het volgende script:



PHP:
<html>
<head>
<title>Nieuws List</title>
<body>

<?
include("inc.connect.php");
$sql = "SELECT * from nieuws";
$resultaat = mysql_query($sql);

echo "	<table width=670 border=1 cellspacing=2 cellpadding=2 valign=center>
	<tr>
	<td width=100 valign=center>
	<B>naam</b>
	</td>
	<td width=150 valign=center>
	<B>datum</b>
	</td>
	<td width=150 valign=center>
	<B>titel</b>
	</td>
	<td width=150 valign=center>
	<B>inhoud</b>
	</td>
	</tr>		
";

while($record = mysql_fetch_object($resultaat))
{
echo "
<tr>
	
	<td width=100>
		$record->naam
	</td>
	<td width=150>
		$record->datum
	</td>
	<td width=150>
		$record->titel
	</td>
	<td width=150>
		$record->inhoud
	</td>
	<td width=100>
	
	<form action=nieuws_bewerken.php >
	<input size=180 type=submit value=Bewerken>
	<input type=hidden name=d_id value=$record->d_id>
	<input type=hidden name=action value=edit>
	</form>
	</td>
	</tr>	
";
}
echo "</table>";
echo "<p><a href=\"nieuws_toevoegen.php\" title=\"Toevoegen\">Nieuws toevoegen.</a></p>";
?>

Hoop niet dat ik te veel vraag of lastig ben:o
 
Laatst bewerkt:
Alle HTML-elementen kan je prima buiten de "echo" zetten.
PHP:
<html>
<head>
<title>Nieuws List</title>
<body>

<table width="670" border="1" cellspacing="2" cellpadding="2" valign="center">
    <tr>
    <td width="100" valign="center">
    <B>naam</b>
    </td>
    <td width="150" valign="center">
    <B>datum</b>
    </td>
    <td width="150" valign="center">
    <B>titel</b>
    </td>
    <td width="150" valign="center">
    <B>inhoud</b>
    </td>
    </tr>        
<?
include("inc.connect.php");
$sql = "SELECT * from nieuws";
$resultaat = mysql_query($sql);

while($record = mysql_fetch_object($resultaat))
{
?>
<tr>
    <td width="100">
        <? echo $record->naam;?>
    </td>
    <td width="150">
        <? echo $record->datum;?>
    </td>
    <td width="150">
        <? echo $record->titel;?>
    </td>
    <td width="150">
        <? echo $record->inhoud;?>
    </td>
    <td width="100">
    
    <form action="nieuws_bewerken.php" method="post">
    <input size="180" type="submit" value="Bewerken">
    <input type="hidden" name="d_id" value="<? echo $record->d_id;?>">
    <input type="hidden" name="action" value="edit">
    </form>
    </td>
    </tr>    
<?
}
?>
</table>
<p><a href="nieuws_toevoegen.php" title="Toevoegen">Nieuws toevoegen.</a></p>
</body>
</html>


Verder wordt het bewerk-script dan zo:

PHP:
<html>
<head>
<title>Nieuws Bewerken</title>
</head>
<body>
<?
include("inc.connect.php");
$sql = "SELECT * from nieuws WHERE id='".$_POST['d_id']."' ";
$resultaat = mysql_query($sql);
$record = mysql_fetch_object($resultaat);
if(isset($_POST['submit']) == FALSE && $_POST['actie'] != "update")
{
?>
  Hier kan je het bericht wijzigen
  <form action="nieuws_bewerken.php" method="post">
    <input type="text" name="naam" value="<? echo $record->naam;?>" size="15" maxlenght="15" />
    <br />
    <input type="text" name="datum" value="<? echo $record->datum;?>" />
    <br />
    <input type="text" name="titel" value="<? echo $record->titel;?>" size="20" maxlenght="20" />
    <br />
    <textarea name="inhoud" maxlength="250" rows="5" cols="40"><? echo $record->inhoud;?></textarea>
    <br />
    <input type="hidden" name="d_id" value="<? echo $record->d_id;?>" />
    <input type="hidden" name="actie" value="update" />
    <input type="submit" value="Toevoegen" name="submit" />
  </form>
<?
} else if(isset($_POST['submit']) == TRUE && $_POST['actie'] == "update")
{
  $main = eregi_replace("\n", "", $main);
  $news_sql_update = "UPDATE nieuws SET naam='$naam', datum='$datum', titel='$titel', inhoud='$inhoud' WHERE d_id='$d_id' ";
  mysql_query($news_sql_update);

  echo "Het bericht is geupdate. <br/>";
}
?>
</body>
</html>

Wat ik in het bewerk script heb aangepast is je query, zoek/bedenk zelf maar waarom ;)


Edit: Persoonlijk ben ik een voorstander van gewoon een "linkje":
PHP:
<a href="?act=bewerk&id=$id">Bewerk</a>
Daarbij heb je geen gedonder met formulieren etc..
 
Toppie man:D

Kan nu tenminste zien wat mijn fouten waren, weer wat geleerd. :D

Alleen ga nu ff kijken waarom die het bericht niet wijzigd in me database.

Want de mysql statements UPDATE en SET lijken me correct.

Maar super bedankt voor dit :thumb:
 
Ik denk dat ik de fout al zie.. hóe heet het "ID"-veld in je database? Is dat id of d_id?

Als het id is, moet dít even worden veranderd in het bewerk script:
PHP:
<input type="hidden" name="d_id" value="<? echo $record->d_id;?>" />
in
PHP:
<input type="hidden" name="d_id" value="<? echo $record->id;?>" />

Als het id veld "d_id" heet, dan moet je even je 1e query in bewerkpost aanpassen:
PHP:
$sql = "SELECT * from nieuws WHERE id='".$_POST['d_id']."' ";
in
PHP:
$sql = "SELECT * from nieuws WHERE d_id='".$_POST['d_id']."' ";

Overigens is dit ook nog een wijziging:
PHP:
$news_sql_update = "UPDATE nieuws SET naam='$naam', datum='$datum', titel='$titel', inhoud='$inhoud' WHERE d_id='".$_POST['d_id']."' ";

Zoiets? :)

Edit: Je/ik moet even goed weten hoe het ID-veld heet :)
ik gok d_id.. en dan is het dus mijn fout (die 1e query, met de WHERE) :D
 
Laatst bewerkt:
Het is id maar dat had ik al veranderd hoor;)

ja die laatste regel zat de fout.

He harstikke bedankt man:thumb:
 
Laatst bewerkt:
Geplaatst door arjan1202
Het is id maar dat had ik al veranderd hoor;)

ja die laatste regel zat de fout.

He harstikke bedankt man:thumb:
Het script loopt nu zoals je wil? :D

In that case, np en succes :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan