Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1402 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  changement parametres dans BD quand je refresh le navigateur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

changement parametres dans BD quand je refresh le navigateur

n°1262585
numa1985
Posté le 09-12-2005 à 14:23:58  profilanswer
 

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.

mood
Publicité
Posté le 09-12-2005 à 14:23:58  profilanswer
 

n°1262595
FlorentG
Unité de Masse
Posté le 09-12-2005 à 14:30:21  profilanswer
 

C'est qu'il y a un problème dans ton script [:spamafote]

n°1262598
numa1985
Posté le 09-12-2005 à 14:35:29  profilanswer
 

un probleme de syntaxe tout con, ou reellement une grosse erreur?
vous voulez voir un peu du code?

n°1262602
FlorentG
Unité de Masse
Posté le 09-12-2005 à 14:37:28  profilanswer
 

Oh oui

n°1262609
numa1985
Posté le 09-12-2005 à 14:45:02  profilanswer
 

<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

n°1262612
numa1985
Posté le 09-12-2005 à 14:47:06  profilanswer
 

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...

n°1262613
numa1985
Posté le 09-12-2005 à 14:47:52  profilanswer
 

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

n°1262704
art_dupond
je suis neuneu... oui oui !!
Posté le 09-12-2005 à 15:31:36  profilanswer
 

Code :
  1. <center><font face="verdana"><h1><b> ACTUALITES A VALIDER</b></h1></font></center>
  2. <br />
  3. <?php
  4. $base = mysql_connect ('localhost', 'root', '');
  5. mysql_select_db ('cisteme', $base);
  6. $sql = 'SELECT idActualite, titreActualite, auteurActualite,dateActualite, contenuActualite, estValideeActualite FROM actualites  ORDER BY dateActualite DESC';
  7. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  8. $sql2= 'SELECT COUNT(idActualite) FROM actualites WHERE estValideeActualite=0';
  9. $req3=mysql_query($sql2) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  10. $nombre_actualite_valide =  mysql_fetch_array($req3);
  11. if ($nombre_actualite_valide == 0)
  12.   {
  13.     echo 'Aucune actualite non validée dans la base....';
  14.   }
  15. else
  16. {
  17.        $req2 = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  18.        while ($data = mysql_fetch_array($req2))
  19.        {
  20.             if (($data['estValideeActualite']) == 0)
  21.             {
  22.                 ?>
  23.                 <div id=actu>
  24.              <table border="0" width="100%">
  25.           <tr>
  26.              <div id=titre><td width="70%">
  27.                 <?php
  28.                 $id=$data['idActualite'];
  29.                 echo  $data['titreActualite'],'<br/>';
  30.                 ?></td><td width="30%"><?php
  31.           echo $data['dateActualite'],'<br/>';
  32.                 ?></td></tr><tr><td width="100%" align="left"><?
  33.                 echo $data['auteurActualite'],'<br/>';
  34.                 ?>
  35.                 </td></tr> </div></table> <br />
  36.                 <div id=text>
  37.                 <?php
  38.                 echo nl2br($data['contenuActualite']),'<br/>';
  39.                 ?>
  40.                 </div>
  41.                 <br/>
  42. // LES NEWS NON VALIDEES SE SONT AFFICHEES
  43.                 <form name="serendipityEntry">
  44.         <input align="left" type="button" name="valider" maxlength="50" size="80"  value="Valider"
  45.                  onclick="<?php $sqlval = "UPDATE actualites SET estValideeActualite='1' WHERE idActualite='$id';";
  46.                  $reqval = mysql_query($sqlval) or die('Erreur SQL !<br />'.$sqlval.'<br />'.mysql_error()); ?>;document.forms[0].action='validerActualite.php'; document.forms[0].submit();"
  47.      >
  48.          <input align="right" type="button" name="supprimer" maxlength="50" size="80" value="Supprimer" onclick="<?php $sqlval = "DELETE FROM actualites WHERE idActualite='$id';";
  49.                  $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'] ?>'">
  50.         <input   align="right" type="button" name="retour" maxlength="50" size="80"  value="Retour à l expéditeur">
  51.                  <br/><br/></form>
  52.  
  53.                 </div>
  54.                 <br /> <?php
  55.              }
  56.          }
  57.     }

n°1262715
art_dupond
je suis neuneu... oui oui !!
Posté le 09-12-2005 à 15:36:24  profilanswer
 

il faut déjà changer ca: ligne 11 -> 13
 

Code :
  1. $sql2= 'SELECT COUNT(idActualite) as nombre FROM actualites WHERE estValideeActualite=0';
  2. $req3=mysql_query($sql2) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  3. $ligne =  mysql_fetch_array($req3);
  4. $nombre_actualite_valide = $ligne['nombre'];

n°1262741
art_dupond
je suis neuneu... oui oui !!
Posté le 09-12-2005 à 15:42:30  profilanswer
 

tu fais

Code :
  1. if (($data['estValideeActualite']) == 0)


et arprès tu mets

Code :
  1. // LES NEWS NON VALIDEES SE SONT AFFICHEES


c'est un peu contradictoire (mais pas grave :p) ?
 
 
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 :
  1. $sql = 'SELECT idActualite, titreActualite, auteurActualite,dateActualite, contenuActualite FROM actualites WHERE estValideeActualite = 0 ORDER BY dateActualite DESC';


Message édité par art_dupond le 09-12-2005 à 15:43:32
mood
Publicité
Posté le 09-12-2005 à 15:42:30  profilanswer
 

n°1264275
numa1985
Posté le 12-12-2005 à 08:23:56  profilanswer
 

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!

n°1264285
art_dupond
je suis neuneu... oui oui !!
Posté le 12-12-2005 à 09:28:50  profilanswer
 

ok, la flemme de voir à quoi il servait (le formulaire) :p
 
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 ;)

n°1264410
numa1985
Posté le 12-12-2005 à 12:44:03  profilanswer
 

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

n°1264426
art_dupond
je suis neuneu... oui oui !!
Posté le 12-12-2005 à 13:26:07  profilanswer
 

alors le problème avec ca:
 

Code :
  1. 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();"


 
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 :
  1. $sqlval = "UPDATE actualites SET estValideeActualite='1' WHERE idActualite='$id';";$reqval = mysql_query($sqlval) or die('Erreur SQL !<br />'.$sqlval.'<br />'.mysql_error());


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 :
  1. onclick=";document.forms[0].action='validerActualite.php'; document.forms[0].submit();"


 
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 :
  1. for($i = 1; $i <= $_POST['nombre_actus']; ++$i)
  2. {
  3.    if($_POST['actu_'.$i.'_effacer'])
  4.    {
  5.        echo 'effacer';  // ici, faire l'action sql adéquate
  6.    }
  7.    elseif($_POST['actu_'.$i.'_modifier'])
  8.    {
  9.       echo 'modifier'; // ici, faire l'action sql adéquate
  10.    }
  11.    else
  12.    {
  13.    }
  14. }


 
 
 
 

n°1264704
numa1985
Posté le 12-12-2005 à 17:01:25  profilanswer
 

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 :
  1. 1. for($i = 1; $i <= $_POST['nombre_actus']; ++$i)
  2.    2. {
  3.    3.    if($_POST['actu_'.$i.'_effacer'])
  4.    4.    {
  5.    5.        echo 'effacer';  // ici, faire l'action sql adéquate
  6.    6.    }
  7.    7.    elseif($_POST['actu_'.$i.'_modifier'])
  8.    8.    {
  9.    9.       echo 'modifier'; // ici, faire l'action sql adéquate
  10.   10.    }
  11.   11.    else
  12.   12.    {
  13.   13.
  14.   14.    }
  15.   15.
  16.   16. }


 
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

n°1265367
art_dupond
je suis neuneu... oui oui !!
Posté le 13-12-2005 à 12:03:40  profilanswer
 

oups, je n'avais pas vu que c'étaient des boutons.
 
alors pour faire simple, tu peux faire (pour chaque actu):
 
 

Code :
  1. <form method="post" action="validation.php">
  2.    <p>
  3.       Actu numéro idActu:
  4.       <input type="hidden" name="idActu" value="la_valeur_idActu"/>
  5.       <input type="submit" value="valider" name="valider"/>
  6.       <input type="submit" value="supprimer" name="supprimer"/>
  7.    </p>
  8. </form>


 
 
et dans validation.php:
 

Code :
  1. if($_POST['valider'])
  2. {
  3.    // sql pour valider la news avec $_POST['idActu'];
  4. }
  5. elseif($_POST['supprimer'])
  6. {
  7.    // sql pour supprimer la news avec $_POST['idActu'];
  8. }
  9. header('location: la_page_ou_tu_veux_etre_redirigé');


 
 
 
moi je voyais en fait un grand formulaire avec des boutons radios  
 

  • on verra plus tard <input type="radio" name="actuTemporaire_1" value=""/>
  • valider <input type="radio" name="actuTemporaire_1" value="valider_idActu"/>
  • supprimer <input type="radio" name="actuTemporaire_1" value="supprimer_idActu"/>


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 :
  1. for($i = 1; $i <= $_POST['nombre_actus']; ++$i)
  2. {
  3.    $temp = split('_',$_POST['actuTemporaire_'.$i]);
  4.    $action = $temp[0];
  5.    $idActu = $temp[1];
  6.    switch($action)
  7.    {
  8.       case 'valider':
  9.           // valider l'actu
  10.           break;
  11.       case 'supprimer':
  12.           // supprimer l'actu
  13.           break;
  14.    }
  15.  
  16.    header('location: la_page_ou_tu_veux_etre_redirigé');
  17. }


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  changement parametres dans BD quand je refresh le navigateur

 

Sujets relatifs
Affichage du logo java qd on lance un applet ds un navigateur[Résolu] Fonction Execlp avec nombre parametres variable
Changement de couleur du texte via CSSChangement de "href"
Probleme avec un Navigateurle navigateur du client
Création d'un plugin pour navigateur webDésactiver les boutons suivant et précédent d'un navigateur
Transparence pour superposition et changement de couleurRedimensionement du Navigateur
Plus de sujets relatifs à : changement parametres dans BD quand je refresh le navigateur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR