Update avec boucle while

cs_a44icus Messages postés 31 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 23 mars 2013 - 6 nov. 2009 à 14:42
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 9 nov. 2009 à 07:21
Bonjour,

J'ai créé une sorte de blog sur mon site, que je veux rendre administrable. J'ai déjà commencé la page d'administration dont j'ai mis le code php ci-dessous. Donc la page ressemble à la même que voient les visiteurs sauf que je peux modifier les textes directement..
Et aussi je voudrai faire une page pour ajouter les news.

Mais j'ai un problème, je ne sais pas comment faire pour écrire le code de l'update vers la base de donnée quand j'ai une boucle comme ici. :euh:

Pourriez vous m'aider?
<?php
$host = "xxx";
$user = "xxx";
$pass = "xxx";
$bdd = "xxx";

@mysql_connect($host,$user,$pass)
or die("Impossible de se connecter");
@mysql_select_db($bdd)
or die("Impossible de se connecter");
?>

<?php
$query = "SELECT * FROM steffblog";
$result = mysql_query($query);

?>

<?php	
while ($val = mysql_fetch_array($result)){
$b_titre=$val["titreBlog"];
$b_date=$val["dateBlog"];
$b_auteur=$val["auteurBlog"];
$b_image=$val["imageBlog"];
$b_news=$val["newsBlog"];


echo '<form>';
echo '
';
echo "$b_titre
";
echo '<textarea name="titreBlog" id="titreBlog">'.$b_titre.'</textarea>
'; 
echo '<textarea name="auteurBlog" id="auteurBlog">'.$b_auteur.'</textarea>
'; 
echo '<textarea name="imageBlog" id="imageBlog">'.$b_image.'</textarea>
'; 
echo '<textarea name="newsBlog" id="newsBlog">'.$b_news.'</textarea>
'; 
echo '';
echo '


</form>';
}

?>



/////a44icus/////

2 réponses

cs_a44icus Messages postés 31 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 23 mars 2013
9 nov. 2009 à 04:15
Re,

On m'a donné des conseils, donc mon code est devenu celui qui est dessous, mais sa ne fonctionne toujours pas.. Auriez-vous des indications supplémentaires à me donner ?
Merci.

<?php
$query = "SELECT * FROM steffblog";
$result = mysql_query($query);
?>

<?php
if (isset($_POST["action"])){
$b_id=$_POST["id"];
$b_titre=$_POST["titreBlog"];
$b_date=$_POST["dateBlog"];
$b_auteur=$_POST["auteurBlog"];
$b_image=$_POST["imageBlog"];
$b_news=$_POST["newsBlog"];
$query="UPDATE steffblog SET titreBlog='$b_titre', auteurBlog='$b_auteur', imageBlog='$b_image', newsBlog='$b_news' WHERE id='$b_id'";
$result = mysql_query($query); 
}
?>

<?php	
while ($val = mysql_fetch_array($result)){
$b_id=$val["id"];
$b_titre=$val["titreBlog"];
$b_date=$val["dateBlog"];
$b_auteur=$val["auteurBlog"];
$b_image=$val["imageBlog"];
$b_news=$val["newsBlog"];


echo '<form>';
echo '
';
echo "$b_titre
";
echo '';
echo '<textarea name="titreBlog" id="titreBlog">'.$b_titre.'</textarea>
'; 
echo '<textarea name="auteurBlog" id="auteurBlog">'.$b_auteur.'</textarea>
'; 
echo '<textarea name="imageBlog" id="imageBlog">'.$b_image.'</textarea>
'; 
echo '<textarea name="newsBlog" id="newsBlog">'.$b_news.'</textarea>
'; 
echo '';
echo '


</form>';
}

?>



/////a44icus/////
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
9 nov. 2009 à 07:21
Salut,

Il y a pas mal de choses qui ne vont pas, entre autres :
- il n'y a ni action ni method dans ton formulaire :
<form action="ton_fichier.php" method="post">

- tu ne contrôles pas les données provenant du formulaire (isset(), empty(), ...)
- tu ne protèges pas ces mêmes données (mysql_real_escape_string())
- tu ne gères pas les erreurs :
if (false $result mysql_query($query)) { envoi d'un mail, consignation de l'erreur, redirection / information de l'utilisateur, ...}
- tu as 2 variables de même nom $result. A la soumission du formulaire l'affichage (while ($val = mysql_fetch_array($result)) va utiliser celle relative à l'update (=== erreur)


Cordialement,

Kohntark -
0
Rejoignez-nous