Vérification dans la table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Vérification dans la table

Re: Vérification dans la table

par computarelier » 14 oct. 2013, 13:44

Hellow,

Regarde :
$tableau = $result -> fetchAll (PDO::FETCH_OBJ);
...
if ($ligne["nomLegume"]==$nomLegume)
Un fetchAll avec pour paramètre PDO::FETCH_OBJ tu l'exploites comment après ?

Bon courage,

Re: Vérification dans la table

par Nedek » 14 oct. 2013, 13:32

Dans l'énoncé, il nous demande de faire comme ça pour la première requête.

Mon code après vos remarque (j'essai de les mémoriser pour éviter de les reproduire)
<?php require 'includes/connect.php';
$nomLegume=$_POST['nomLegume'];

$legume="SELECT nomLegume FROM legume";
$result = $connection -> query ($legume);
$tableau = $result -> fetchAll (PDO::FETCH_OBJ);

foreach ($tableau as $ligne) {
	if ($ligne["nomLegume"]==$nomLegume)
	{
		echo "<script>alert(\"Le légume existe déjà.\")</script>"; 
	}
	else{
		$ajout="INSERT INTO legume  (nomLegume) VALUES ( '".$nomLegume."')";
		$resultAjout = $connection -> query ($ajout);
		echo "<script>alert(\"Votre légume à été ajouté.\")</script>"; 
	}
};
?>
Ca me met cette erreur maintenant :
Fatal error: Cannot use object of type stdClass as array in C:\xampp\htdocs\tp3\ajouterLegume.php on line 9

Et j'ai vu sur un autre forum qu'il faudrait plutôt utiliser fetch_assoc, mais quand je le fait ça me rentre le nom autant de fois que j'ai d'entrées dans ma table (même s'il existe déjà d'ailleurs)

Re: Vérification dans la table

par antoine94200 » 14 oct. 2013, 09:31

if (.nomLegume=$nomLegume)
        {
                alert "Ce nom existe déjà";
        }
        else{
                $ajout="INSERT INTO legume  (nomLegume) VALUES ( ".$nomLegume.")"
je ne suis pas sur pour .nomLegume , j'aurai plutot mis $ligne["nomLegume"].

.nomLegume=$nomLegume là non , trouve comment faire une comparaison et non une affectation

[php>$ajout="INSERT INTO legume (nomLegume) VALUES ( ".$nomLegume.")"[/php]
à moins que ton champ soit numérique, il te manque quelque chose autour de ".$nomLegume." , comme une quote par exemple...

Sinon tu peux aussi ajouter un where dans ton premier select et ne pas faire de foreach...

Bon courage

Re: Vérification dans la table

par computarelier » 13 oct. 2013, 21:06

1. Rajoute un try/catch pour voir les erreurs.
2. (Revois comment on fait une requête d'insert ;-))

Bon courage !

Re: Vérification dans la table

par Nedek » 13 oct. 2013, 20:27

Autant pour moi, la ligne d'avant n'était pas fermé non plus...
Par contre, si le légume n'est pas dans la table, il ne s'ajoute pas avec mon else...
Merci beaucoup pour ton aide ;)

Re: Vérification dans la table

par Nedek » 13 oct. 2013, 20:24

Oh la la!! Quel boulet :/
Merci, j'ai maintenant la même erreur avec $result :'(

Pour netbeans, je l'utilise quand je ne suis pas en local, mais quand je veux l'utiliser en local, j'arrive pas à le configurer comme il faut...

Re: Vérification dans la table

par computarelier » 13 oct. 2013, 19:37

Ah oui, tu as oublié de fermer ta première ligne avec ; :-)

(prends un IDE un peu sympa... Ce genre d'erreur ne t'arriverai pas avec un Netbeans ou autre !)

Re: Vérification dans la table

par Nedek » 13 oct. 2013, 19:07

Bien vu ;)
J'ai encore un peu de mal...
Avec les modifications, j'ai toujours la même erreur :
Parse error: syntax error, unexpected '$nomLegume' (T_VARIABLE) in C:\xampp\htdocs\tp3\ajouterLegume.php on line 2

Re: Vérification dans la table

par computarelier » 13 oct. 2013, 18:36

Salut,

As tu une erreur ? Si tu n'en as pas :
 error_reporting(E_ALL); 
 ini_set("display_errors", 1); 
if (.nomLegume=$nomLegume)
1/ En php les variables commencent par un $.
2/ La comparaison est avec ==. Là tu fais une affectation.

Alert ? Non non non... Essaye avec un echo ou un print ;-)

Bon courage !

Vérification dans la table

par Nedek » 13 oct. 2013, 18:12

Bonjour à tous. Je suis à la recherche d'une solution. (C'est pour un exo de cours)
J'ai dans une page un champ ou l'utilisateur peut rentrer le nom d'un légume à ajouter dans la table. J'aimerais vérifier si le nom que l'utilisateur rentre n'existe pas dans la table et s'il n'existe pas, qu'il soit ajouter à cette table. Voilà ce que j'ai fait qui ne marche pas (L'erreur est peut être stupide mais en tant que débutant, je ne vois pas du tout)
<?php require 'includes/connect.php' 
$nomLegume=$_POST['nomLegume'];

$legume="SELECT nomLegume FROM legume";
$result = $connection -> query ($legume);
$tableau = $result -> fetchAll (PDO::FETCH_OBJ);

foreach ($tableau as $ligne)
{
	if (.nomLegume=$nomLegume)
	{
		alert "Ce nom existe déjà";
	}
	else{
		$ajout="INSERT INTO legume  (nomLegume) VALUES ( ".$nomLegume.")"
		$result = $connection -> query ($ajout);
		alert "Votre legume à été ajouté";
	}
};


?>
PS: Ma connection à la base fonctionne bien, et le $_POST['nomLegume'] vient d'une autre pas d'un champ name:nomLegume.
Merci pour votre aide ;)