Procedure stockée (fin) [Résolu]

Signaler
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
    C'est encore moi.....

Impossible de lancer ma proc stockée a partir d'une page web dont voici l'erreur :


requête SQL:


call sdz( 9 )


MySQL a répondu:Documentation

#1312 - PROCEDURE essai.sdz can't return a result set in the given context requête SQL:


call sdz( 9 )


MySQL a répondu:Documentation

#1312 - PROCEDURE essai.sdz can't return a result set in the given context

et le code :
<html>
<head>
</head>

<?
    include("connexion.php");
    Echo "Appel de la procedure stockée";
    $appel = "CALL sdz(9);";
    $req = mysql_query($appel,$res) or die ("Execution impossible de la requete");
    $resultat = mysql_result($req,0,0);
    echo "Le resultat est de ".$resultat;
?>

</html>

je me suis trompé où ?

3 réponses

Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
Salut,

Fauderais que tu montre ta procedure pour qu'on puisse mieu comprendre!

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  

begin
select cote*cote;
end
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
salut
faudrait un code complet... ca serait plus facile pour t'aider...

c'est pas comme ca qu'on fait une requete dans une procedure, c'est plutot comme ca :

CREATE FUNCTION ListCategories(param INT UNSIGNED, mask TEXT)
RETURNS TEXT DETERMINISTIC
BEGIN
    DECLARE t TEXT;
    DECLARE r TEXT;
    DECLARE i INT;

    DECLARE done INT DEFAULT 0;
    DECLARE cur CURSOR FOR SELECT (SELECT `name` FROM `quotes_categories` WHERE `id`=`id_quote_category` LIMIT 1) as `name`, `id_quote_category` FROM `quotes_categorised` WHERE `id_quote` = param;
    DECLARE CONTINUE HANDLER FOR SQLSTATE \'02000\' SET done = 1;
   
    OPEN cur;
    set r="";
    REPEAT
        FETCH cur INTO t, i;
        IF NOT done THEN
            SET t=REPLACE(mask, "{NAME}", t);
            SET t=REPLACE(t, "{ID}", i);
            SET r=CONCAT(t, " | ", r);
        END IF;
    UNTIL done END REPEAT;
    CLOSE cur;
    RETURN r;
END;

et toi ce que tu aurais du faire :

SET code=cote*cote;

j'imagine

/**
* @author coucou747 <coucou747@hotmail.com>
* @see irc://cominweb.uni-irc.net/#programmation
*/