Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme d' adaptation script membres avec validation

Sujet résolu
    13 février 2009 à 22:44:44

    Bonjour,

    j' ai un souci car je débute en php, j' éspère que vous pourrez m'aider.

    Je me suis inspiré du cours "espace membres avec validation par administrateur", le hic, et je vois ou se trouve le probleme mais n' arrive pas à le résoudre, c' est que lorsque je valide un membre (dans mon cas une annonce, et j' ai deux tables "validation" et "annonces"), l' annonce est bien effacée de la table validation mais n' est pas transférée vers "annonces". Je vous met l' endroit ou ca me pose le souci:

    <?php
    $quete = mysql_query("SELECT * FROM validation");
    while($validation = mysql_fetch_array($quete))
    {
    echo '<center><table width="600" border="1" cellspacing="0" cellpadding="0">
      <tr>
        <td><b>titre : </b></td><td colspan="2">';
    echo $validation['titre'];
    echo ' </td></tr>  <tr><td>  <b>nom:</b></td><td colspan="2"> ';
    echo $validation['nom'];
    echo ' </td>  </tr><tr><td colspan="3"><b>annonce:</b></td></tr><tr><td height="20" colspan="3"> ';
    echo $validation['annonce'];
    echo '</td></tr></table><br><a href="attente.php?action=accepter&id='.$validation['id'].'">Accepter</a> - ';
    echo '<a href="attente.php?action=refuser&id='.$validation['id'].'">Refuser</a>';
    echo '<br/></center><hr WIDTH="100%"><br>';
    }
     
    if(isset($_GET['action']) AND isset($_GET['id']))
    {
    $action = $_GET['action'];
    if($action == "accepter")
    {
    $id = $_GET['id'];
    $quete2 = mysql_query("SELECT '', '$cat', '$region', '$cp', '$nom', '$type', '$email', '$tel', '$titre', '$annonce', '$prix' FROM validation WHERE id='$id'");
    $connexion = mysql_fetch_array($quete2);
    $titre = $connexion['titre'];
    $annonce = $connexion['annonce'];
    $nom = $connexion['nom'];
    mysql_query("INSERT INTO annonces VALUES('', '$cat', '$region', '$cp', '$nom', '$type', '$email', '$tel', '$titre', '$annonce', '$prix')");
    mysql_query("DELETE FROM validation WHERE id='$id'");
    }
    elseif($action == "refuser")
    {
    $id = $_GET['id'];
    mysql_query("DELETE FROM validation WHERE id='$id'");
    }
    }
    ?>
    


    Le truc, c' est que je n' ai aucune erreur qui s' affiche, mais j' ai bien les espaces pour les annonces qui apparaissent.


    Et de la vient aussi apparait le coté problemeatique visuel, mes champs de la table "annonces" sont vides.

    Deuxieme petit bug moins grave pour l' instant, je dois cliquer deux fois sur "accepter" pour que le membre (donc annonce dans mon cas) disparaisse de la liste, cependant, l' annonce apparait par logique deux fois dans ma liste des annonces en ligne.


    Si vosu pouviez m' aider un peu, car je galère completement depuis prés de trois jour sans aide ni indice.

    Merci d' avance !
    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2009 à 22:49:57

      <?php
      $quete2 = mysql_query("SELECT '', '$cat', '$region', '$cp', '$nom', '$type', '$email', '$tel', '$titre', '$annonce', '$prix' FROM validation WHERE id='$id'");
      ?>
      

      Salut tu peux ajouter un mysql-error? Et me dire ce que ca donne?
      Comme ceci :

      $quete2 = mysql_query("SELECT '', '$cat', '$region', '$cp', '$nom', '$type', '$email', '$tel', '$titre', '$annonce', '$prix' FROM validation WHERE id='$id'") or die("pb select si action est égale à accepter");
      

      • Partager sur Facebook
      • Partager sur Twitter
        13 février 2009 à 23:13:01

        Tu as l'espace des annonces qui apparaissent parce que l'as réglé comme ca.
        <td height="70" width="90" valign="top"> </td>
        Oui tes cases doivent faire 70 de hautur.

        Dans ton select, il y a champs vide
        $quete2 = mysql_query("SELECT '', '$cat', '$region', '$cp', '$nom', '$type', '$email', '$tel', '$titre', '$annonce', '$prix' FROM validation WHERE id='$id'");

        Pourquoi appeler des variables? Comment s'appelle tes entrées?

        $quete2 = mysql_query("SELECT 'cat', 'region', 'cp', 'nom', 'type', 'email', 'tel', 'titre', 'annonce', 'prix' FROM validation WHERE id='$id'");

        comme ca c'est mieux?
        • Partager sur Facebook
        • Partager sur Twitter
          13 février 2009 à 23:37:22

          je te laisse rafraichir mon lien de page d' accueil, j' ai viré toutes les annonces vides sauf une et j' en ai reposté-revalidé une.

          Il semblerait que a la place du titre s' affiche tout simplement "titre" et a la place du nom, "nom". Pourquoi? encore un mystere, au moins il s' affiche quelque chose.



          De plus il devrait y avoir le prix a droite, hé la rien :euh:

          edit:


          bon, j' ai corrigé une erreur, j' avais mis sur ma page d' accueil:

          $reponse = mysql_query("SELECT nom, titre, prix FROM annonces") or die (mysql_error());


          au lieu de

          $reponse = mysql_query("SELECT 'nom', 'titre', 'prix' FROM annonces") or die (mysql_error());



          donc je te laisse voir le resultat, y a un mieux mais il y a encore un binz :(


          reedit:

          bon, je ne comprend pas, j' ai donc ceci:


          <?php
          $quete = mysql_query("SELECT * FROM validation");
          while($validation = mysql_fetch_array($quete))
          {
          echo '<center><table width="600" border="1" cellspacing="0" cellpadding="0">
            <tr>
              <td><b>titre : </b></td><td colspan="2">';
          echo $validation['titre'];
          echo ' </td></tr>  <tr><td>  <b>nom:</b></td><td colspan="2"> ';
          echo $validation['nom'];
          echo ' </td>  </tr><tr><td colspan="3"><b>annonce:</b></td></tr><tr><td height="20" colspan="3"> ';
          echo $validation['annonce'];
          echo '</td></tr></table><br><a href="attente.php?action=accepter&id='.$validation['id'].'">Accepter</a> - ';
          echo '<a href="attente.php?action=refuser&id='.$validation['id'].'">Refuser</a>';
          echo '<br/></center><hr WIDTH="100%"><br>';
          }
           
          if(isset($_GET['action']) AND isset($_GET['id']))
          {
          $action = $_GET['action'];
          if($action == "accepter")
          {
          $id = $_GET['id'];
          $quete2 = mysql_query("SELECT 'cat', 'region', 'cp', 'nom', 'type', 'email', 'tel', 'titre', 'annonce', 'prix' FROM validation WHERE id='$id'") or die("pb select si action est égale à accepter");
          ;
          $connexion = mysql_fetch_array($quete2);
          $titre = $connexion['titre'];
          $annonce = $connexion['annonce'];
          $nom = $connexion['nom'];
          mysql_query("INSERT INTO annonces VALUES('', '$cat', '$region', '$cp', '$nom', '$type', '$email', '$tel', '$titre', '$annonce', '$prix')");
          mysql_query("DELETE FROM validation WHERE id='$id'");
          }
          elseif($action == "refuser")
          {
          $id = $_GET['id'];
          mysql_query("DELETE FROM validation WHERE id='$id'");
          }
          }
          ?>
          



          et aussi ceci:

          Image utilisateur

          et une fois validé, j' ai ceci:

          Image utilisateur


          la je sais plus quoi faire, en plus je ne sais pas pkoi ca post deux entrée a chaque fois que je valide une annonce :euh:
          • Partager sur Facebook
          • Partager sur Twitter
            14 février 2009 à 3:13:21


            Essayons ca :

            //affichage des infos de l'annonce à valider ou non
            <?php
            $quete = mysql_query("SELECT * FROM validation") or die("pb select validation");
            while($validation = mysql_fetch_array($quete))
            {
            ?>
            	<center>
            		<table width="600" border="1" cellspacing="0" cellpadding="0">
            			<tr>
            				<td><b>Titre : </b></td>
            				<td colspan="2"><?php echo htmlentities($validation['titre']);?></td>
            			</tr>
            			<tr>
            				<td><b>Nom:</b></td>
            				<td colspan="2"><?php echo htmlentities($validation['nom']);?></td>
            			</tr>
            			<tr>
            				<td colspan="3"><b>Annonce:</b></td>
            			</tr>
            			<tr>
            				<td height="20" colspan="3"><?php echo htmlentities($validation['annonce']);?></td>
            			</tr>
            		</table>
            		<br>
            		<a href="attente.php?action=accepter&id=<?php intval($validation['id']);?>">Accepter</a> - <a href="attente.php?action=refuser&id=<?php intval($validation['id']);?>">Refuser</a>
            		<br/>
            	</center>
            	<hr WIDTH="100%">
            	<br>
            <?php
            }
            //on récupère la valeur de id GET
            $id = intval($_GET['id']);
            
            //on vérifie si les variables existent 
            if(isset($_GET['action']) AND isset($_GET['id']))
            {
            	$action = mysql_real_escape_string($_GET['action']); //on protège la réception du get
            
            	//premiere éventualité action du bouton accepter
            	if($action == "accepter")
            	{
            		//on va chercher des données enregistrées par le visiteur
            		$quete2 = mysql_query("SELECT 'cat', 'region', 'cp', 'nom', 'type', 'email', 'tel', 'titre', 'annonce', 'prix' FROM validation WHERE id='$id'") or die("pb select si action est égale à accepter");
            		$connexion = mysql_fetch_array($quete2);
            
            		//on récupère toutes les données de la table validation...
            		$cat = $connexion['cat'];
            		$region = $connexion['region'];
            		$cp = $connexion['cp'];
            		$nom = $connexion['nom'];
            		$type = $connexion['type'];
            		$email = $connexion['email'];
            		$tel = $connexion['tel'];
            		$titre = $connexion['titre'];
            		$annonce = $connexion['annonce'];
            		$prix = $connexion['prix'];
            			
            		//... pour les écrire dans la table annonces..
            		mysql_query("INSERT INTO annonces VALUES('', '$cat', '$region', '$cp', '$nom', '$type', '$email', '$tel', '$titre', '$annonce', '$prix')") or die("pb ecriture annonces");
            			
            		//..et supprimons les infos de la table validation
            		mysql_query("DELETE FROM validation WHERE id='$id'") or die("pb delete validation acepter");
            		?>
            			<center>Validation éffectuée, vous venez d'ajouter une nouvelle annonce!</center>
            		<?php
            	}
            	
            	//deuxième éventualité action du bouton refuser
            	if($action == "refuser")
            	{
            		mysql_query("DELETE FROM validation WHERE id='$id'") or die("pbdelete validation refuser");
            		?>
            			<center>Validation refusée, l'annonce vient d'être détruite de la base.</center>
            		<?php
            	}
            }
            ?>
            
            • Partager sur Facebook
            • Partager sur Twitter
              14 février 2009 à 14:03:36

              Alors il y a quelques souci, au niveau du transfert des champs d' une table a l' autre, ca ne change rien.

              Je n' ai aucun message d' erreur.


              Que j' accepte ou je refuse, j' ai bien le message correspondant juste en dessous (vous avez ajouté une annonce ou vous avez refusé une annonce).


              Par contre, que j' accepte ou refuse, l' annocne en attente ne s' efface pas donc je peux l' accepter 15-20 ou 100 fois elle reste la.


              Voila, c' était pour faire un topo de la chose, je vais essayer d' y voir de plus prés en attendant vo sconseils, mais c' est bizzarre que j' arrive a rien.


              edit : je craque, ca a pourtant l' air convenable :colere2:
              • Partager sur Facebook
              • Partager sur Twitter
                14 février 2009 à 18:53:25

                et comme ca?

                //affichage des infos de l'annonce à valider ou non
                <?php
                $quete = mysql_query("SELECT * FROM validation") or die("pb select validation");
                while($validation = mysql_fetch_array($quete))
                {
                ?>
                	<center>
                		<table width="600" border="1" cellspacing="0" cellpadding="0">
                			<tr>
                				<td><b>Titre : </b></td>
                				<td colspan="2"><?php echo htmlentities($validation['titre']);?></td>
                			</tr>
                			<tr>
                				<td><b>Nom:</b></td>
                				<td colspan="2"><?php echo htmlentities($validation['nom']);?></td>
                			</tr>
                			<tr>
                				<td colspan="3"><b>Annonce:</b></td>
                			</tr>
                			<tr>
                				<td height="20" colspan="3"><?php echo htmlentities($validation['annonce']);?></td>
                			</tr>
                		</table>
                		<br>
                		<a href="attente.php?action=accepter&id=<?php intval($validation['id']);?>">Accepter</a> - <a href="attente.php?action=refuser&id=<?php intval($validation['id']);?>">Refuser</a>
                		<br/>
                	</center>
                	<hr WIDTH="100%">
                	<br>
                <?php
                }
                
                
                //on vérifie si les variables existent 
                if(isset($_GET['action']) AND isset($_GET['id']))
                {
                	$action = mysql_real_escape_string($_GET['action']); //on protège la réception du get
                		
                	//on récupère la valeur de id GET
                	$id = intval($_GET['id']);
                	
                	//premiere éventualité action du bouton accepter
                	if($action == 'accepter')
                	{
                		//on va chercher des données enregistrées par le visiteur
                		$quete2 = mysql_query("SELECT 'cat', 'region', 'cp', 'nom', 'type', 'email', 'tel', 'titre', 'annonce', 'prix' FROM validation WHERE id='$id'") or die("pb select si action est égale à accepter");
                		$connexion = mysql_fetch_array($quete2);
                
                		//on récupère toutes les données de la table validation...
                		$cat = $connexion['cat'];
                		$region = $connexion['region'];
                		$cp = $connexion['cp'];
                		$nom = $connexion['nom'];
                		$type = $connexion['type'];
                		$email = $connexion['email'];
                		$tel = $connexion['tel'];
                		$titre = $connexion['titre'];
                		$annonce = $connexion['annonce'];
                		$prix = $connexion['prix'];
                		
                		//lignes de test 
                		echo $cat;
                		echo $region;
                		echo $cp;
                		echo $nom;
                		echo $type;
                		echo $type;
                		echo $email;
                		echo $tel;
                		echo $titre;
                		echo $annonce;
                		echo $prix;
                			
                		
                		//... pour les écrire dans la table annonces..
                		mysql_query("INSERT INTO annonces VALUES(NULL, '$cat', '$region', '$cp', '$nom', '$type', '$email', '$tel', '$titre', '$annonce', '$prix')") or die("pb ecriture annonces");
                			
                		//..et supprimons les infos de la table validation
                		mysql_query("DELETE FROM validation WHERE id='$id'") or die("pb delete validation acepter");
                		?>
                			<center>Validation éffectuée, vous venez d'ajouter une nouvelle annonce!</center>
                		<?php
                	}
                	
                	//deuxième éventualité action du bouton refuser
                	if($action == 'refuser')
                	{
                		mysql_query("DELETE FROM validation WHERE id='$id'") or die("pbdelete validation refuser");
                		?>
                			<center>Validation refusée, l'annonce vient d'être détruite de la base.</center>
                		<?php
                	}
                }
                ?>
                


                j'ai calé des echos sur les variables sensées être récupérées.
                • Partager sur Facebook
                • Partager sur Twitter
                  15 février 2009 à 0:16:26

                  Non je suis desolé ca ne change rien, exactement le meme souci. Incroyable non? Je suis deconcerté!
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 février 2009 à 20:10:02

                    Hello, je n' ai toujours pas réussi a trouver la solution, je vais réfléchir au probleme, je met résolu pour ne plus ennuyer les gens la desus :)
                    • Partager sur Facebook
                    • Partager sur Twitter

                    probleme d' adaptation script membres avec validation

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown