Pb récupération valeur d'une variable

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 : Pb récupération valeur d'une variable

par Hywan » 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().

par Sékiltoyai » 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)

par Hywan » 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.

par laeti » 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';

par Hywan » 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

par laeti » 24 juil. 2007, 11:55

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

par Hywan » 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 ...

par laeti » 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?

par Hywan » 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.

par laeti » 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?

par Hywan » 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 :)

par laeti » 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?

par Hywan » 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 :)

par laeti » 23 juil. 2007, 19:11

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

par Invité » 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.