voor een vak op school werk ik aan een nieuwsphp verwerksysteem.
dit lukt mij aardig, echter heb ik toch nog enkele problemen.
ik werk nu aan een mogelijkheid voor het aanpassen van het nieuws door de admin. echter het script hieronder (wat een gedeelte is) werkt niet goed. Alleen de naam wordt zichtbaar gemaakt. de rest geeft geen waarde op de pagina. op de gewone nieuwspagina geeft die pagina het echter wel.
heeft één van jullie toevallig een idee wat ik moet verranderen om het werkend te krijgen.

<?php
$db= mysql_connect("localhost","**********","*********");
mysql_select_db("************",$db);
$id=$_GET['id'];
$sql=("SELECT * FROM nieuwsinfo WHERE id='$id'");
$res=mysql_query($sql, $db);
while ($regel = mysql_fetch_object ($res))
$naam = $regel->naam;
$email = $regel["email"];
$soortnieuws = $regel->soortnieuws;
$nieuws = $regel->nieuws;

print ($naam);
print ($email);
print ($soortnieuws);
print ($naamnieuws);
?>
Je hebt geen accolades gebruikt bij je while lus.

Beter zo:

<?php
$db= mysql_connect("localhost","**********","*********");
mysql_select_db("************",$db);
$id=$_GET['id'];
$sql=("SELECT * FROM nieuwsinfo WHERE id='$id'");
$res=mysql_query($sql, $db);

while ($regel = mysql_fetch_object ($res)) {
$naam = $regel->naam;
$email = $regel['email'];
$soortnieuws = $regel->soortnieuws;
$nieuws = $regel->nieuws;

echo '<p>'.$naam.'<p>';
echo '<p>'.$email.'<p>';
echo '<p>'.$soortnieuws.'<p>';
echo '<p>'.$nieuws.'<p>';
}
?>
stukke beter,
bedankt
En natuurlijk inspringen voor de overzicht ;)
ja, eigenlijk moet dat. We leren alleen pas php en ik heb dus nog niet alle netheid regels gehad over de code.

wel ben ik op een nieuw probleem gestuit. het stukje code hierboven staat uitgebreider in textfields zodat de gebruiker deze kan aanpassen. vervolgens wordt het formulier gesubmit. Dit formulier bevat alle waarden, inclusief id (nu voor testen gewoon zichtbaar als textfield door de code:
<?php
$id=$_GET['id'];
?>
<input type="text" naam="id" value="<? print ($id); ?>">
In een ander bestand(verwerkedit.php) wordt deze verwerkt en worden alle waarden in de database gestopt.
nu heb ik zoveel mogelijk gecontrolleerd. maar toch werkt het niet helemaal. Alle waarde worden gewoon doorgegeven ($naam,$email, etc.) behalve id. deze wordt niet herkent of zo. Mijn browser geeft op de pagina de foutmelding:

Notice: Undefined variable: id in /home/virtual/site44/fst/var/www/html/verwerkedit.php on line 33

op deze plek staat de regel voor het updaten van de variabelen. deze ziet er als volgt uit:
<?php
"UPDATE nieuwsinfo SET ddag ='$ddag', dmaand = '$dmaand', djaar = '$djaar', nieuws='$nieuws', soortnieuws='$soortnieuws', naam='$naam', email='$email', goedkeuring='$goedkeuringsgroep' WHERE id='$id'"
?>
heeft één van jullie een idee wat ik moet verranderen?
Zet de code van je formulier hier ook even bij, wellicht zit daar een probleempje in.
<html>
<head><title>edit nieuwsform</title><head>
<body>
<form method="post" action="verwerkedit.php">
<?
error_reporting (E_ALL);
?>
<?php

$db= mysql_connect("localhost","****","*****");
mysql_select_db("*********_nl_-_nieuws",$db);
$id=$_GET['id'];
$sql=("SELECT * FROM nieuwsinfo WHERE id='$id'");
$res=mysql_query($sql, $db);
while ($regel = mysql_fetch_object ($res)) {
$naam = $regel->naam;
$email = $regel->email;
$soortnieuws = $regel->soortnieuws;
$nieuws = $regel->nieuws;
$ddag = $regel->ddag;
$dmaand = $regel->dmaand;
$djaar = $regel->djaar;

$goedkeuring = $regel->goedkeuring;
}
?>

<form method="get" action="verwerkedit.php">
<input type="text" naam="id" value="<? print ($id); ?>">

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Naam :</td>
<td><input type="text" name="naam" value="<?php print($naam); ?>"></td>
</tr>
<tr>
<td>E-mail :</td>
<td><input type="email" name="email" value="<?php print($email); ?>"></td>
</tr>
<tr>
<td>datum, losse(voor verwerking)(d-m-y):</td>
<td><input type="text" name="ddag" value="<?php print($ddag); ?>">-<input type="text" name="dmaand" value="<?php print($dmaand); ?>">-<input type="text" name="djaar" value="<?php print($djaar); ?>"></td>
</tr>
<tr>
<td>Soort nieuws? </td>
<td><label><input name="soortnieuws" type="radio" value="waarneming"
<?php
if (( $soortnieuws )=="waarneming") {
print("checked");}

print(">waarneming</label></td>");
?>
</tr>
<tr>
<tr ><td></td>
<td><label><input type="radio" name="soortnieuws" value="administratief"
<?php
if (($soortnieuws )=="administratief") {
print("checked");}

print(">administratief</label></td>");
?>
</tr>
<tr>
<tr ><td></td>
<td><label><input type="radio" name="soortnieuws" value="voortgang"
<?php
if (($soortnieuws)=="voortgang") {
print("checked");}

print(">voortgangwerk</label></td>");
?>
</tr>
<tr>
<td>goedkeuring</td>
<td><p>
<label>
<input type="radio" name="goedkeuringsgroep" value="ja"
<?php
if (($goedkeuring)=="ja") {
print("checked");}
print(">");
?>
ja</label>
<label>
<input type="radio" name="goedkeuringsgroep" value="nee"
<?php
if (($goedkeuring)=="nee") {
print("checked");}
print(">");
?>
nee</label>
</p>
</td>
</tr>
<tr>
<td>Het Nieuwsbericht:</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2"><textarea name="nieuws" cols="100" rows="10" wrap="VIRTUAL" >
<?php print( $nieuws ); ?></textarea></td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" name="controleer" value="edit"></center></td>
</tr>
</table>

<?php
mysql_free_result ($res);
?>
</form>
</body>

</html>
Je hebt 2x <form> in je document staan.
Ik denk dat de eerste weg kan.

In de volgende regel zit een typefoutje:
<input type="text" naam="id" value="<? print ($id); ?>">

moet zijn:
<input type="text" name="id" value="<? print ($id); ?>">

bedankt,
alles doet het nu. vooral dat typfoutje zal het geweest zijn.
Je kan trouwens beter echo() gebruiken. Print()is ietsje langzamer dan echo() heb ik geleerd uit één van de notes van de php manual. En je hoeft geen haakjes te gebruiken trouwens.
wat is dan het verschil tussen echo en Print?

Reageren