changement parametres dans BD quand je refresh le navigateur - PHP - Programmation
Marsh Posté le 09-12-2005 à 14:35:29
un probleme de syntaxe tout con, ou reellement une grosse erreur?
vous voulez voir un peu du code?
Marsh Posté le 09-12-2005 à 14:45:02
<center><font face="verdana"><h1><b> ACTUALITES A VALIDER</b></h1></font></center>
<br />
<?php
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('cisteme', $base);
$sql = 'SELECT idActualite, titreActualite, auteurActualite,dateActualite, contenuActualite, estValideeActualite FROM actualites ORDER BY dateActualite DESC';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$sql2= 'SELECT COUNT(idActualite) FROM actualites WHERE estValideeActualite=0';
$req3=mysql_query($sql2) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$nombre_actualite_valide = mysql_fetch_array($req3);
if ($nombre_actualite_valide == 0)
{
echo 'Aucune actualite non validée dans la base....';
}
else
{
$req2 = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($req2))
{
if (($data['estValideeActualite']) == 0)
{
?>
<div id=actu>
<table border="0" width="100%">
<tr>
<div id=titre><td width="70%">
<?php
$id=$data['idActualite'];
echo $data['titreActualite'],'<br/>';
?></td><td width="30%"><?php
echo $data['dateActualite'],'<br/>';
?></td></tr><tr><td width="100%" align="left"><?
echo $data['auteurActualite'],'<br/>';
?>
</td></tr> </div></table> <br />
<div id=text>
<?php
echo nl2br($data['contenuActualite']),'<br/>';
?>
</div>
<br/>
// LES NEWS NON VALIDEES SE SONT AFFICHEES
<form name="serendipityEntry">
<input align="left" type="button" name="valider" maxlength="50" size="80" value="Valider"
onclick="<?php $sqlval = "UPDATE actualites SET estValideeActualite='1' WHERE idActualite='$id';";
$reqval = mysql_query($sqlval) or die('Erreur SQL !<br />'.$sqlval.'<br />'.mysql_error()); ?>;document.forms[0].action='validerActualite.php'; document.forms[0].submit();"
>
<input align="right" type="button" name="supprimer" maxlength="50" size="80" value="Supprimer" onclick="<?php $sqlval = "DELETE FROM actualites WHERE idActualite='$id';";
$reqval = mysql_query($sqlval) or die('Erreur SQL !<br />'.$sqlval.'<br />'.mysql_error()); ?>;document.forms[0].action='validerActualite.php'; document.forms[0].submit();"> <input align="right" type="button" name="editer" maxlength="50" size="80" value="Editer" onclick=" location='./modifieractu.php?id=<?php echo $data['idActualite'] ?>'">
<input align="right" type="button" name="retour" maxlength="50" size="80" value="Retour à l expéditeur">
<br/><br/></form>
</div>
<br /> <?php
}
}
}
DESOLE PR LE BORDEL DU CODE
Marsh Posté le 09-12-2005 à 14:47:06
en meme temps donnez moi votre avis si les redirections une fois qu'on a cliqué sur un bouton, c bon! si c'est comme cca qu'il faut faire! j'ai trouavé ca cette aprem:
document.forms[0].action='validerActualite.php'; document.forms[0].submit();
MERCI...
Marsh Posté le 09-12-2005 à 14:47:52
Pour préciser, je me suis au PHP y a juste une semaine, désolé, si les erreurs sont grossieres, mais il faut bien commencer un jour!
MERCI
Marsh Posté le 09-12-2005 à 15:31:36
Code :
|
Marsh Posté le 09-12-2005 à 15:36:24
il faut déjà changer ca: ligne 11 -> 13
Code :
|
Marsh Posté le 09-12-2005 à 15:42:30
tu fais
Code :
|
et arprès tu mets
Code :
|
c'est un peu contradictoire (mais pas grave ) ?
sinon, ton formulaire à l'air d'être dans ta boucle. C'est voulu ?
pourquoi fais-tu deux fois mysql_query($sql) ?
si tu veux ne sélectionner que les "non validés", rajoute la condition dans ta query plutot que de faire un test par après:
Code :
|
Marsh Posté le 12-12-2005 à 08:23:56
En fait oui c'est fait expré que le formulaire est dans la boucle!
Le but c'est pour l'admin de voir afficher les news qui ont été postés et qui doivent etre validée pour apparaitre sur le site!
Donc sous chaque news, figure les boutons : valider, editer, supprimer et retour a l'envoyeur! (c'est pour ca que la news et les boutons sont dans la boucle)
Seulement comment doit on gerer ce genre de boutons!
comme un formulaire? avec la method POST?
ou gerer les boutons avec des fonctions?
J'essaye de cerner comment PHP fonctionne mais des fois j'avoue j'ai un peu de mal!
AIDEZ moi svp!
Marsh Posté le 12-12-2005 à 09:28:50
ok, la flemme de voir à quoi il servait (le formulaire)
sinon je n'avais pas vu le '<?php ?>' dans le onclick...
dois y avoir un binz la dedans mais je dois y aller. Je regarderai mieux plus tard si personne ne l'a fait
Marsh Posté le 12-12-2005 à 12:44:03
Faut-il traiter les differentes news avec des boutons dans la boucle et avec des onclick="" ???
Ou faut-il utiliser la method post?
dites, moi car le onclick est un peu limité et on ne peut pas utiliser les headers!
merci
Marsh Posté le 12-12-2005 à 13:26:07
alors le problème avec ca:
Code :
|
quand php (sur le serveur) voit ca, il se dit :
1. j'envoie "...onclick" au navigateur
2. je vois "<?php" -> je dois interpréter, et il interprète donc
Code :
|
3. je vois "?>", j'arrête d'interpréter.
4. j'envoie le reste au navigateur.
au final, ca donne un truc du genre...
Code :
|
donc ca ne fait pas ce que tu veux puisque le SQL va être effectué de toute facon (et pas lors du onclick), et le onclick ne contient pas cet "ordre sql".
Ce que je ferais par exemple:
Un grand formulaire avec pour chaque ligne un nom différent (par exemple: actu_1, actu_2 (-> actu_1_id, actu_1_effacer, actu_1_modifier, ...)) avec un champ hidden avec le nombre d'actus (nombre_actus).
lors du submit du formulaire, je récupère tout ca, et je fais
Code :
|
Marsh Posté le 12-12-2005 à 17:01:25
En fait, si je comprends bien, il faut que je fasse apparaitre mes 4 boutons aprés chaques news dans une boucle, et chaque bouton serait renommé en prenant compte du compteur:
a la premiere news: bouton_val_1 bouton_suppr_1 .....
a la news suivante: bouton_val_2 bouton_suppr_2 .....
aprés les boutons sont tous de type submit et selon le debut du nom, j'applique l'operation a faire en prenant soin de recuperer l'id qui se trouve a la fin du nom du bouton pour affecter que la news voulue.
(Sur l'exemple
Code :
|
en fait, la variable $i me servira dans ma requete a detecter l'identifiant de la news a modifier. c'est bien ca?
Citation : champ hidden avec le nombre d'actus (nombre_actus) |
je comprend pas bien ce que tu veux dire: mon nombre d'actus je peux faire comme avant, je peux garder ma variable php et m'en servir dans la boucle?
Dites moi bien si j'ai bien compris le systeme!
Si c'est ce qu'il y a de plus optimisé, alors je vais faire comme ca.
MERCI
Marsh Posté le 13-12-2005 à 12:03:40
oups, je n'avais pas vu que c'étaient des boutons.
alors pour faire simple, tu peux faire (pour chaque actu):
Code :
|
et dans validation.php:
Code :
|
moi je voyais en fait un grand formulaire avec des boutons radios
pour chaque actu
et ceci à la fin du formulaire (tu mets la valeur de ton compteur dedans)
<input type="hidden" name="nombreActus" value="le_nombre_d_actus"/>
Comme ca, tu peux valider/effacer plusieurs actus en meme temps.
ensuite:
Code :
|
Marsh Posté le 09-12-2005 à 14:23:58
An fait j'ai fait une requete qui m'affiche les news pour l'admin qu'il doit valider!
Celles qui e sont pas valider ont un booleen a 0 et celle qui le devienne ont leur booleen qui passe a 1.
En effet sur cette page, il voit les news qui s'affiche et doit cocher si il valide, supprime.....
Le probleme, quand je fais F5 dans mon navigateur, la news passe à 1 toute seule et plus eaucune news ne s'affiche.