Pb récupération valeur d'une variable

Eléphant du PHP | 91 Messages

23 juil. 2007, 15:35

Me revoilà pour un nouveau problème.

J'ai déjà réalisé la requête plusieurs fois sur des listes déroulantes ou bouton radio et ça marchait très bien. Et là, mystère sur 2 requêtes sur 3, une seule marche.

$Type_cat = $_POST['Type_catalogue'];
$Type_btd_libelle = $_POST['Type_btd_libelle'];
$Type_ba_libelle = $_POST['Type_ba_libelle'];

// On prépare la requête pour récupérer l'identifiant du type de catalogue sélectionnée par bouton radio et on exécute cette requête
		$sql = "SELECT type_cat_id FROM type_catalogue WHERE type_cat_forme = '".$Type_cat."';";
		$req = pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_result_error());
		$resul_type_cat = pg_fetch_assoc($req);
		echo $resul_type_cat['type_cat_id'];

// On prépare la requête pour récupérer l'identifiant du type de traitement de donnée précisé dans le textarea et on exécute cette requête
		$sql = "SELECT type_btd_id FROM type_besoin_traitement_donnee WHERE type_btd_libelle = '".$Type_btd_libelle."';";
		$req = pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_result_error());
		$resul_type_btd = pg_fetch_assoc($req);
		echo $resul_type_btd['type_btd_id'];

// On prépare la requête pour récupérer l'identifiant du type d'animation précisé dans le textarea et on exécute cette requête
		$sql = "SELECT type_ba_id FROM type_besoin_animation WHERE type_ba_libelle = '".$Type_ba_libelle."';";
		$req = pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_result_error());
		$resul_type_ba = pg_fetch_assoc($req);
		echo $resul_type_ba['type_ba_id'];
Est-ce que quelqu'un peut m'aider?

PS: c'est la 2ème qui marche

Eléphanteau du PHP | 48 Messages

23 juil. 2007, 15:43

t'as quoi comme erreur ?
-- fight the void --

Eléphant du PHP | 91 Messages

23 juil. 2007, 15:49

Voici le message d'erreur: Query failed: ERROR: invalid input syntax for integer: ""

Et les echo ne renvoient rien sauf pour ma deuxième requête.

ViPHP
ViPHP | 4674 Messages

23 juil. 2007, 16:47

Tente voir un var_dump($_POST);, on sera fixé :)

Fais aussi attention, tu ne protèges pas tes variables. Il faut toujours les protéger :)
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 91 Messages

23 juil. 2007, 17:00

Voici ce que me renvoie le var_dump sur la 1ère requête: bool(false)
Je ne comprends pas pourquoi il me renvoie cela, c'est sensé être une chaîne de caractère.

Je ne vois pas ce que tu veux dire par protéger mes variables.

ViPHP
ViPHP | 928 Messages

23 juil. 2007, 17:01

Quand tu affiches var_dump($_POST); en haut du script il t'affiche bool(false) ? C'est impossible, à moins que tu ais modifié $_POST.

ViPHP
ViPHP | 4674 Messages

23 juil. 2007, 17:08

Ou alors, la clé du tableau $_POST ne serait pas définie. Hmmm, non on aurait null.
Après test, oui. Si tu appelais une clé non existante, tu aurais null en retour, avec une belle erreur.

Tu es sûr que ton script ne touche pas à cette variable ? Cherches dans un fichier parent s'il y en a un, revoie également ton code HTML (refais le à la limite).
Repars juste de ton code HTML, et fais un var_dump de $_POST au pire des cas. Tu seras fixée. Et tu ajouteras ton code PHP petit à petit (au pire).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 91 Messages

23 juil. 2007, 17:09

Excuse moi autant pour moi!! J'avais mal placé le var_dump.
Ca me renvoie:
string(13) "Fichier_Excel" string(12) "gggggggggggg"
pour les 2 premières variables sachant qu'avec la 1ère la requête ne me renvoie rien.

ViPHP
ViPHP | 4674 Messages

23 juil. 2007, 17:13

Hehe.
En revanche, moi je suis un peu perdu.
Tu as 3 variables : $Type_cat , $Type_btd_libelle, et $Type_ba_libelle. Tu nous donnes que 2 résultats, ce sont ceux de quelles variables ? Et quelles sont les requêtes qui ne fonctionnent pas ? La première seulement ?

Edit : dans ta table, tu ne devrais pas avoir une valeur qui serait uniquement un entier par hasard ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 91 Messages

23 juil. 2007, 17:20

Désolée.
Je reprends tout.
Voici mon code:
$Type_cat = $_POST['Type_catalogue'];
var_dump($Type_cat);
$Type_btd_libelle = $_POST['Type_btd_libelle'];
var_dump($Type_btd_libelle);
$Type_ba_libelle = $_POST['Type_ba_libelle'];
var_dump($Type_ba_libelle);

// On prépare la requête pour récupérer l'identifiant du type de catalogue sélectionnée par bouton radio et on exécute cette requête
		$sql = "SELECT type_cat_id FROM type_catalogue WHERE type_cat_forme = '".$Type_cat."';";
		$req = pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_result_error());
		$resul_type_cat = pg_fetch_assoc($req);
		//echo $resul_type_cat['type_cat_id'];
		
// On prépare la requête pour insérer le libellé dans la table type_besoin_traitement_donnee et on exécute la requête
		$sql = "INSERT INTO type_besoin_traitement_donnee(type_btd_libelle) VALUES ('".$Type_btd_libelle."')";
		$req = pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_result_error());
		
// On prépare la requête pour récupérer l'identifiant du type de traitement de donnée précisé dans le textarea et on exécute cette requête
		$sql = "SELECT type_btd_id FROM type_besoin_traitement_donnee WHERE type_btd_libelle = '".$Type_btd_libelle."';";
		$req = pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_result_error());
		$resul_type_btd = pg_fetch_assoc($req);
		//echo $resul_type_btd['type_btd_id'];
		
// On prépare la requête pour insérer le libellé dans la table type_besoin_animation et on exécute la requête
		$sql = "INSERT INTO type_besoin_animation(type_ba_libelle) VALUES ('".$Type_ba_libelle."')";
		$req = pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_result_error());
		
// On prépare la requête pour récupérer l'identifiant du type d'animation précisé dans le textarea et on exécute cette requête
		$sql = "SELECT type_ba_id FROM type_besoin_animation WHERE type_ba_libelle = '".$Type_ba_libelle."';";
		$req = pg_query($sql) or die('Erreur SQL !'.$sql.'<br>'.pg_result_error());
		$resul_type_ba = pg_fetch_assoc($req);
		//echo $resul_type_ba['type_ba_id'];
Voici ce que ça me renvoie:
string(13) "Fichier_Excel" string(44) "test libellé besoin en traitement de données" string(32) "test libellé besoin en animation"

La requête qui fonctionne concerne le besoin en traitement de données.

Voila j'espère avoir été un peu plus claire.

ViPHP
ViPHP | 4674 Messages

23 juil. 2007, 17:33

Désolé, j'en demande encore un peu plus, est-ce qu'on pourrait avoir la structure de ta table ? Je soupçonne le problème de venir de là :)
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 91 Messages

23 juil. 2007, 17:39

Table "type_catalogue"
champs1 "type_cat_id", int4
champs2 "type_cat_forme", varchar(30)

Table "type_besoin_traitement_donnee"
champ1 "type_btd_id", int4
champ2 "type_btd_libelle", text

Table "type_besoin_animation"
champ1 "type_ba_id", int4
champ2 "type_ba_libelle", text

J'ai oublié de préciser que les insertions des libellés ("type_btd_libelle" et "type_ba_libelle") fonctionnent très bien. C'est la récupération des identifiants "type_cat_id" et "type_ba_id" qui ne marche pas.

ViPHP
ViPHP | 4674 Messages

23 juil. 2007, 17:50

Apparement, c'est PostgreSQL qui interprète mal ton SQL.

Je ne suis pas un guru du PostgreSQL, j'espère que quelqu'un d'autre va pouvoir t'aider. Mais regarde si ta syntaxe est correcte, car apparement, ce serait l'origine du problème (différence entre MySQL et PostgreSQL).

Il te dit que "" est une mauvaise syntaxe. Il faut comprendre "" comme 0 pour PostgreSQL. Tente de remplacer "" par 0 dans ton code, et regarde ce qu'il se passe.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

23 juil. 2007, 19:09

Je ne pense pas que ce soit ça, étant donné que j'ai déjà fait plusieurs fois ce genre de traitement et qu'il n'y avait pas de problème. Mais bon, je ne suis qu'une débutante donc peut-être mais ça me semblerait bizarre.
En tout cas merci à toi. Et j'espère que quelqu'un d'autre pourra m'aider car je vais bientôt m'arracher mes cheveux.

Eléphant du PHP | 91 Messages

23 juil. 2007, 19:11

Oups!! j'avais oublié de me connecter.
Help me.