Pb récupération valeur d'une variable

ViPHP
ViPHP | 4674 Messages

23 juil. 2007, 22:33

Re :)

A certains endroits, tu as mis en commentaire echo $var;. Remplace voir par var_dump($var); (après tes SELECTs en fin de compte).
Juste pour voir ce que ça donne.

Sinon, essaye ce que j'avais dis, ie. de partir de ton formulaire, et de vérifier les entrées. Seulement si tout est ok, commence à travailler sur une première requête, tu valides. Puis une seconde etc. Refais ton script pas à pas. Tu verras où le problème se situe :)
« 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

24 juil. 2007, 09:15

Avec les var_dump après mes requêtes, j'obtiens ça:
"Fichier_Excel" NULL string(2) "22" string(2) "20"
Les identifiants des 2 dernières variables sont donc bien récupérer mais pas la première.
Cependant quand je souhaite insérer ces identifiants, j'obtiens ça:

Code : Tout sélectionner

Query failed: ERROR: invalid input syntax for integer: "" Erreur SQL !INSERT INTO questions(type_cat_id, type_btd_id, type_ba_id) VALUES ('','22','')
Ce qui est logique pour type_cat_id mais pas pour type_ba_id.

Quelqu'un a-t-il déjà rencontrer ce genre de problème?

ViPHP
ViPHP | 4674 Messages

24 juil. 2007, 10:16

On va essayer de ce concentrer sur un seul problème à la fois.
Commençons par la première requête.

Normalement, tu dois avoir un équivalent de PhpMyAdmin (PMA) pour PgSQL. Essaye de faire exécuter la commande dedans, pour voir : qu'est-ce que ça te donne ? Tu peux aussi essayer de remplacer les variables par du texte brut dans ton code PHP, toujours pareil ?

Vire pour l'instant les 2 autres requêtes, on va se concentrer que sur la première :)
« 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

24 juil. 2007, 10:28

En passant par PgAdmin et en remplaçant par du texte en dur, la requête me renvoie bien le bon identifiant. Youpi!!!

Mais d'où peut donc venir le problème alors?

ViPHP
ViPHP | 4674 Messages

24 juil. 2007, 10:47

Si dans PgAdmin la requête est bonne : le problème vient de PHP.
On dégrossi encore un peu : la requête est bonne avec du texte brut : le problème vient du contenu des variables.

Maintenant, on sait où est le problème. Tente voir d'encadrer le nom des champs et tables par `str`. Desfois ça nous sauve la vie :P
Ou sinon, copie la requête finale que tu as faite dans PgAdmin, et compare là avec celle que tu as en PHP.
« 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

24 juil. 2007, 11:03

Je ne vois pas trop ce que tu veux dire par encadrer par 'str'. Est-ce que je dois le faire dans mon formulaire ou dans la requête de ma méthode?

ViPHP
ViPHP | 4674 Messages

24 juil. 2007, 11:33

Tu as écrit par exemple :

Code : Tout sélectionner

SELECT table WHERE ...
Essaye

Code : Tout sélectionner

SELECT `table` WHERE ...
C'est bête, amha, ça ne va rien faire de plus, mais sait-on jamais ...
« 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

24 juil. 2007, 11:55

En effet, ça ne change rien!!! Le var_dump me renvoie toujours NULL

ViPHP
ViPHP | 4674 Messages

24 juil. 2007, 12:20

Tu peux m'écrire tes deux SELECT : celui avec la variable, et celui en dur (qui marche pas et qui marche donc).
On va comparer.

Edit : désolé si je réponds en retard, je suis assez occupé :P
« 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

24 juil. 2007, 12:26

Y a pas de problème, je me doute bien.
$sql = "SELECT type_cat_id FROM type_catalogue WHERE type_cat_forme = '".$Type_cat."';";
"SELECT type_cat_id FROM type_catalogue WHERE type_cat_forme = 'Fichier_Excel';

ViPHP
ViPHP | 4674 Messages

24 juil. 2007, 12:44

Là, on a un beau mystère. Il me faudrait le code pour être sûr. Je n'ai pas le temps de t'aider plus aujourd'hui. Désolé. Je t'envoie en message privée mon adresse email, envoies moi tes sources, je jetterais un coup d'oeil.
« 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).

ViPHP
ViPHP | 5924 Messages

24 juil. 2007, 22:42

Tu as écrit par exemple :

Code : Tout sélectionner

SELECT table WHERE ...
Essaye

Code : Tout sélectionner

SELECT `table` WHERE ...
C'est bête, amha, ça ne va rien faire de plus, mais sait-on jamais ...
A priori, PostgreSQL ne gère pas les guillemets obliques (je crois qu'ils ne sont pas dans la norme SQL)

ViPHP
ViPHP | 4674 Messages

26 juil. 2007, 14:27

Après avoir regardé les sources, il semblerait que le problème vient de la fonction pg_fetch_assoc qui retourne constament null. Est-ce que quelqu'un aurait déjà eut ce problème ?

J'attends quelques tests de Laeti pour être fixé sur le problème, mais je suis pratiquement sûr que le soucis vient de pg_fetch_assoc().
« 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).