problème en ACCESS

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 : problème en ACCESS

par Skit » 28 déc. 2005, 22:44

non étrangement le probleme venait du fait qu'il y'avait deux conditions après le WHERE

m'enfin merci quand même je me suis arrangé autrement et une bonne année à tous :wink:

par ouckileou » 27 déc. 2005, 02:54

Et là il ne dit pas qu'il y en a trop, il dit qu'il n'y en a pas assez :lol:
Et qu'il en attend 1... donc a priori tu ne lui en passes aucun

Essaye donc d'afficher le code SQL de la requête que tu envoies, pour voir ce qu'il y a dedans
$value13 = "UPDATE Flags SET FlagValue=0 WHERE UserID=$ID AND FlagID=30026" ;
echo $value13;
A tous les coups ta variable $ID est vide ;)

par Truc » 27 déc. 2005, 02:42

tu est sur de l'orthographe des champs de la requete que tu nous a donné ?!
$value13 = "UPDATE Flags SET FlagValue=0 WHERE UserID=$ID AND FlagID=30026" ;

par Skit » 27 déc. 2005, 02:16

voila voila
donc le message d'erreur
Warning: SQL error: [Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu., SQL state 07001 in SQLExecDirect in d:\documents and settings\user\mes documents\phptest\fichier02.php on line 97

par ouckileou » 27 déc. 2005, 02:06

On peut voir le message d'erreur ? je comprend pas là

Et utilise plutôt les balises
 que [code] pour poster du code PHP, c'est plus lisible

Inscirs-toi, comme ça tu pourras éditer tes messages ;)
Je le fais pour ceux là

par Skit » 27 déc. 2005, 02:01

désolé pour le double post mais je détaille un peu mon code pour simplifier
  //Vérification et reprise du compte:
 $Ancien =  "SELECT Password FROM Users WHERE Account='$Account'";// Je selectionne la table Password de la base de donnée Users où le champs Account vaut la variable $Account (préalablement entrée par l'utilisateur)
   $requete2 = odbc_do($cnx, $Ancien) or die( "odbc_error(Ancien)" ) ;// Je me connecte à la base par l'ODBC puis j'effectue l'action attachée à la variable $Ancien
   $requete3=odbc_fetch_row($requete2);//Je lui demande d'aller me chercher le numéro de la ligne associée à la $requete2
   $Ancien= odbc_result($requete2, "Password");// je lui demande de placer dans la variable $Ancien la valeur comprise dans la ligne numéro $requete2 et dans le champs nommé Password
  //ferme la connection:
  odbc_close( $cnx);//Je ferme la connection avec l'ODBC
   if ($Password==$Ancien)//Si la valeur $Password corresponds à la valeur $Ancien
   {
   }
  else//Si ce n'est pas le cas
   {
   }

par Skit » 27 déc. 2005, 01:55

pour mon système de vérification du compte c'était ça
  //Vérification et reprise du compte:
 $Ancien =  "SELECT Password FROM Users WHERE Account='$Account'";
   $requete2 = odbc_do($cnx, $Ancien) or die( "odbc_error(Ancien)" ) ;
   $requete3=odbc_fetch_row($requete2);
   $Ancien= odbc_result($requete2, "Password");
  //ferme la connection:
  odbc_close( $cnx);
   if ($Password==$Ancien)
   {
   }
  else
   {
   }
vala si ça peut en aider

et mon problème
   $value13 = "UPDATE Flags SET FlagValue=0 WHERE UserID=$ID AND FlagID=30026" ;
il dit qu'il y'a un paramètre de trop :?

par ouckileou » 27 déc. 2005, 01:30

Bien sûr que tu peuxmettre 2 conditions

Si tu nous montrais ce que tu as essayé avec le AND ? ça serait plus facile pour t'aider :)

Et quand tu trouves la solution tout seul, poste ton code, ça pourra toujours aider quelqu'un un jour

par Skit » 27 déc. 2005, 01:29

pfiou après un gros travail voila mon code totalement débuggé
seule petite chose qui subsiste c'est que pour une update dans la base de données j'ai besoin de préciser deux paramètres dans le where et il refuse plus d'un paramètre hors je veux définir où User_ID=$ID et FlagID='x'

j'ai essayé la virgule, la parenthèse et le AND
y'a bien une technique qui me permettrait de définir les deux non?

par Truc » 27 déc. 2005, 00:15

Salut,
as tu regardé la doc pour ces fonctions, tu trouveras par toi meme les explication :wink:

par Skit » 26 déc. 2005, 23:29

Euh... c'est re-moi!

Code : Tout sélectionner

$Ancien = "SELECT Password FROM T4Cusers WHERE Account='$Account'"; $requete2 = odbc_do($cnx, $Ancien) or die( "odbc_error(Ancien)" ) ; $Ancien2= odbc_fetch_row($requete2); echo $Ancien2;
il m'écrit;
1

j'avoue que c'est pas terrible comme mot de passe... cette fois-ci où ai-je foiré? :?

par Skit » 26 déc. 2005, 23:11

vi j'avais essayé aussi $DetectID mais le résultat n'était pas mieux
(bon ben ça explique également pourquoi la vérification de mot de passe ne marche pas)

mici beaucoup :-)

par ouckileou » 26 déc. 2005, 22:44

Salut,

c'est normal, dans $ID tu met le code de ta requête SQL.
Et c'est la fonction odbc_do qui va exécuter cette requête et renvoyer le résultat dans $DetectID.

Résultat qui sera surement à traiter avec une autre fonction comme odbc_fetch_row pour pouvoir récupérer les valeurs ;)

problème en ACCESS

par Skit » 26 déc. 2005, 22:38

pfiou je risque la dépression sur ce coup là
après des heures à me triturer la cervelle je ne comprends toujours pas dans
 $ID= "SELECT UserID FROM PlayingCharacters WHERE PlayerName='$Perso'";
    $DetectID = odbc_do($cnx, $ID) or die( "odbc_error(ID)" ) ;
	  odbc_close( $cnx);
pourquoi $ID ne prends pas une valeur (un chiffre donc) à la place de prendre SELECT UserID FROM PlayingCharacters WHERE PlayerName='$Perso' comme valeur

quelqun sait me dire où j'ai foiré? snif snif

et joyeux noël en passant (même si c'est un peu tard)