Auteur Sujet: Fonctions  (Lu 5331 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Bouki

  • Habitué
  • **
  • Messages: 244
    • http://www.scripetudes.net
Fonctions
« le: 10 mai 2003 à 23:08:16 »
Voilà j'ai créé ces deux fonctions :

function Requete($Requete)
{
if (!$Requete)
{Erreur("Vous devez entré une requête !");}
$Ok = mysql_query($Requete) or die ("Erreur : Requete invalide pour la requete '".$Requete."'<BR>Mysql renvoie l'erreur suivante : ".mysql_error());
if (!$Ok)
{Erreur("Vous devez entré une requête valide !");}
return $Ok;
}

function Nombre_enregistrements($Requete)
{
if (!$Requete)
{Erreur("Vous devez entré une requête pour afficher le nombre d'enregistrements !");}
$Reussi = mysql_num_rows($Requete) or die ("Erreur : Ne peut définir le nombre d'enregistrements pour la requete '".$Requete."'<BR>MySQL renvoie l'erreur suivante : ".mysql_error());
if (!$Ok)
{Erreur("Vous devez entré une requête valide !");}
return $Reussi;
}

malheureusement elles ne marchent pas très bien. Quelqu'un pourrait me dire où est l'erreur ?
J'obtient ça :

Erreur : Ne peut définir le nombre d'enregistrements pour la requete 'Resource id #2'
MySQL renvoie l'erreur suivante :

Je pense que l'erreur est dans la 2ème fonction mais je ne comprends pas ce qui plante. D'autre part pour les return je ne suis pas sur d'avoir retourné les bonnes choses :s
Quelqu'un peut m'aider ?
Bouki
oO .:: [ Mage développeur Bouki ] ::. Oo


Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Fonctions
« Réponse #1 le: 10 mai 2003 à 23:18:22 »
A tout hasard , tu es sur que $Requete est bien donné par la forme :
$Requete = mysql_query($...);    ?

Pour ta fonction Nombre_enregistrements
« Modifié: 10 mai 2003 à 23:20:01 par Ice »

Hors ligne Bouki

  • Habitué
  • **
  • Messages: 244
    • http://www.scripetudes.net
Fonctions
« Réponse #2 le: 10 mai 2003 à 23:28:56 »
$Requete = Requete("SELECT * FROM Administration WHERE Pseudo='".$HTTP_POST_VARS["Pseudo_administration"]."' AND Mot_de_passe='$Mot_de_passe_administration_crypte'");
if (Nombre_enregistrements($Requete) == 1)

voilà un extrait, si $Requete n'est pas fourni de toute façon ca renvoie une erreur (la fonction Erreur() le fait)
 
Bouki
oO .:: [ Mage développeur Bouki ] ::. Oo


Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Fonctions
« Réponse #3 le: 10 mai 2003 à 23:37:47 »
si je comprends bien :

$Requete = Requete("SELECT * FROM Administration WHERE Pseudo='".$HTTP_POST_VARS["Pseudo_administration"]."' AND Mot_de_passe='$Mot_de_passe_administration_crypte'");

va te donner $Requete = $Ok = 0 ou 1

Ensuite , tu fais Nombre_enregistrements($Requete) soit Nombre_enregistrements($Ok) mais $Ok est un booleen et non une requete ...

Soit j'ai mal pigé ton algo (desolé, il est tard) soit tu as cette erreur.
« Modifié: 10 mai 2003 à 23:45:23 par Ice »

Hors ligne Bouki

  • Habitué
  • **
  • Messages: 244
    • http://www.scripetudes.net
Fonctions
« Réponse #4 le: 10 mai 2003 à 23:40:33 »
arf t'as raison, je dois être trop shité dsl :s
Bouki
oO .:: [ Mage développeur Bouki ] ::. Oo


Hors ligne Bouki

  • Habitué
  • **
  • Messages: 244
    • http://www.scripetudes.net
Fonctions
« Réponse #5 le: 10 mai 2003 à 23:48:44 »
mais comment on fait alors ?
Bouki
oO .:: [ Mage développeur Bouki ] ::. Oo


Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Fonctions
« Réponse #6 le: 11 mai 2003 à 00:00:18 »
Quelque chose comme :

$Requete = "SELECT * FROM Administration WHERE Pseudo='".$HTTP_POST_VARS["Pseudo_administration"]."' AND Mot_de_passe='$Mot_de_passe_administration_crypte'";
$temp_requete = Requete($Requete);

$result = mysql_query($Requete);
if (Nombre_enregistrements($result) == 1)

Hors ligne Bouki

  • Habitué
  • **
  • Messages: 244
    • http://www.scripetudes.net
Fonctions
« Réponse #7 le: 11 mai 2003 à 00:05:40 »
déjà tu passe par plein de variables alors qu'1 ligne peut suffir.
et je veux pas utiliser mysql_query sinon ma fonction n'a pas d'intérêt.
J'ai fait cela pour gérer les erreurs mais si j'utilise mysql_query...
Alors comment faire... Retourner quoi ?
Bouki
oO .:: [ Mage développeur Bouki ] ::. Oo


Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Fonctions
« Réponse #8 le: 11 mai 2003 à 00:25:11 »
Disons déjà que je ne vois pas trop l'interet de tes fonctions !  :o
Environ 20 lignes pour tester s'il y a une requete ou s'il y a des enregistrements, ca fait bcp.  B)
 

Hors ligne Bouki

  • Habitué
  • **
  • Messages: 244
    • http://www.scripetudes.net
Fonctions
« Réponse #9 le: 11 mai 2003 à 00:28:27 »
arf
c pour gérer les erreurs mysql. Si tu sais pas répondre faut pas critiquer pour trouver une échapatoire.

La fonction Requete remplace mysql_result
La fonction Nombre_enregistrements remplace mysql_num_rows

c simple
Bouki
oO .:: [ Mage développeur Bouki ] ::. Oo


Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Fonctions
« Réponse #10 le: 11 mai 2003 à 00:34:15 »
Je ne cherche pas une échappatoire .. j'ai deja essayé de te répondre.

Citer
La fonction Requete remplace mysql_result
La fonction Nombre_enregistrements remplace mysql_num_rows
Bref , en gros, tu remplaces des fonctions par d'autres fonctions  :D


Pour ta fonction Requete , je ne vois que modifier ta fonction pour obtenir return $Requete au lieu de return $Ok

Hors ligne Bouki

  • Habitué
  • **
  • Messages: 244
    • http://www.scripetudes.net
Fonctions
« Réponse #11 le: 11 mai 2003 à 00:35:46 »
ok
Bouki
oO .:: [ Mage développeur Bouki ] ::. Oo


Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Fonctions
« Réponse #12 le: 11 mai 2003 à 00:40:58 »
Ca peut ressembler à qq chose comme çà :


function Requete($Requete)
{
if (!$Requete)
{Erreur("Vous devez entré une requête !");}
$Ok = mysql_query($Requete) or die ("Erreur : Requete invalide pour la requete '".$Requete."'<BR>Mysql renvoie l'erreur suivante : ".mysql_error());
if (!$Ok)
{Erreur("Vous devez entré une requête valide !");}
else {$Ok = mysql_query($Requete) ; }
return $Ok;
}

----------------------
$Requete = Requete("SELECT * FROM Administration WHERE Pseudo='".$HTTP_POST_VARS["Pseudo_administration"]."' AND Mot_de_passe='$Mot_de_passe_administration_crypte'");
if ($Ok!="0") {
    if (Nombre_enregistrements($Requete) == 1)
    ...
« Modifié: 11 mai 2003 à 00:41:10 par Ice »

Hors ligne Ice

  • VIP
  • *****
  • Messages: 2 403
    • ATFX
Fonctions
« Réponse #13 le: 11 mai 2003 à 00:43:55 »
Arf , non , ca ne peut pas marcher , puisque $Ok n'est pas reconnu lorsqu'on est pas dans la fonction :(

Hors ligne Bouki

  • Habitué
  • **
  • Messages: 244
    • http://www.scripetudes.net
Fonctions
« Réponse #14 le: 11 mai 2003 à 00:45:23 »
donc je fais comment ?
Bouki
oO .:: [ Mage développeur Bouki ] ::. Oo