Partage
  • Partager sur Facebook
  • Partager sur Twitter

ecriture dans la BD

Sujet résolu
    19 mai 2011 à 12:14:54

    C'est encore moi!
    Je sais que je vous en demande beaucoup mais c'est pour valider ma formation que je dois faire ce site et je suis bloquer sur ce problème depuis plus d'une heure.
    Le problème est que cela n'écrit rien dans la base de données...
    <?php				
    $critere_existant= $bdd->query('SELECT * FROM tbl_critere ORDER BY critere'); 
    while ($tab_critere = $critere_existant->fetch())
    {				
    	$verif_critere = $bdd->prepare('SELECT idavis_critere, idcritere FROM tbl_avis_critere WHERE idavis= :avis AND idcritere = :critere');
    	$verif_critere->execute(array('avis'=>$verif_avis['idavis'], 'critere'=>$tab_critere['idcritere']));
    	$critere=$verif_critere->fetch();
    	if ($critere)
    	{
    		if (preg_match("#^p#",$critere))
    		{
    			$ajout_critere=$bdd->prepare('UPDATE tbl_avis_critere SET positif = positif + 1 WHERE idavis= :avis AND idcritere = :critere');
    			$ajout_critere->execute(array('avis'=>$verif_avis['idavis'], 'critere'=>$tab_critere['idcritere']));
    		}
    		else
            	{
              		$ajout_critere=$bdd->prepare('UPDATE tbl_avis_critere SET negatif = negatif + 1 WHERE idavis= :avis AND idcritere = :critere');
    			$ajout_critere->execute(array('avis'=>$verif_avis['idavis'], 'critere'=>$tab_critere['idcritere']));						
    		}
    	}
    	else
    	{
    		if (preg_match("#^p#",$critere))
    		{
    			$ajout_critere=$bdd->prepare('INSERT INTO tbl_avis_critere(idavis, idcritere, positif) VALUES (:avis, :critere, \'1\'');
    			$ajout_critere->execute(array('avis'=>$verif_avis['idavis'], 'critere'=>$tab_critere['idcritere']));
    		}
    		else
    		{
    			$ajout_critere=$bdd->prepare('INSERT INTO tbl_avis_critere(idavis, idcritere, negatif) VALUES (:avis, :critere, \'1\'');
    			$ajout_critere->execute(array('avis'=>$verif_avis['idavis'], 'critere'=>$tab_critere['idcritere']));						
    		}				
    	}
    }
    ?>
    
    • Partager sur Facebook
    • Partager sur Twitter
      19 mai 2011 à 12:34:49

      Oui. Mais il ne ne sort aucune erreur...
      • Partager sur Facebook
      • Partager sur Twitter
        19 mai 2011 à 12:37:47

        Tu as fait quelques echo dans tes if pour comprendre précisémmetn par où tu passes ?
        • Partager sur Facebook
        • Partager sur Twitter
          19 mai 2011 à 12:49:56

          Alors j'ai essayé avec les echo et je rentre au bon endroit.
          Mais cela ne marche toujours pas..
          • Partager sur Facebook
          • Partager sur Twitter
            19 mai 2011 à 13:58:07

            Dans ce cas, c'est que la clause WHERE ne correspond à rien de ce que tu as dans la BDD.

            Fais un echo de $verif_avis['idavis'] et $tab_critere['idcritere'] pour vérifier que ça contient bien ce que tu penses, et si oui, essayes de faire la requete directement dans PHPMyAdmin pour voir.
            • Partager sur Facebook
            • Partager sur Twitter
              19 mai 2011 à 14:09:24

              Mes variables contiennent bien ce qu'elle devrait contenir et tous mes requêtes fonctionne sur phpmyadmin...
              • Partager sur Facebook
              • Partager sur Twitter
                19 mai 2011 à 14:10:54

                ... ca devient bizarre...

                Je peux voir comment tu active les erreur PDO ?
                • Partager sur Facebook
                • Partager sur Twitter
                  19 mai 2011 à 14:17:02

                  Comme dans le tuto de M@teo
                  <?php
                  try
                  {
                  	$bdd = new PDO('mysql:host=localhost;dbname=auto', 'root', ''); //Connexion à la base de donnée
                  }
                  catch(Exception $e)
                  {
                  	die('Erreur : '.$e->getMessage()); // affiche un message d'erreur en cas d'erreur
                  }
                  ?>
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 mai 2011 à 14:23:06

                    ... A wai... Ou pas... C'est pas activer les erreurs PDO ça, c'est se connecter à la base de données.

                    Bon, ajoute ceci, juste après $bdd = ... (dans le try donc)

                    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 mai 2011 à 14:40:35

                      Ben cela ne me retourne rien du tout.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        21 mai 2011 à 17:39:25

                        Il m'aura fallu deux jours entier mais j'ai trouvé la faute!
                        Mon insert into n'était pas fermé correctement. Il manquait une )...
                        Merci à ceux qui ont essayé de trouvé l'erreur.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        ecriture dans la BD

                        × 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