Aller au contenu

fonctions PHP contenant plusieurs requête SQL ....


Sujets conseillés

Posté (modifié)

Bonjour à tous !

Bon me voilà à mon tour dans la panade. Je suis entrain d'essayer de développer une fonction qui puisse me permettre de supprimer une rubrique. Pourquoi une fonction? Parceque la rubrique que je veux supprimer peut avoir 0 ou plusieurs sous rubriques qui elle même peuvent avoir des sous rubrique ou des pages "cible".... Bref, la seule issue à cette spirale infernale était une fonction récursive...

:nonono:


function deleteTree($id_rubrique)
{

$sql= "SELECT id_rubrique, fichier, rubrique_id FROM rubriques WHERE rubrique_id = ".$id_rubrique.";";
$result= mysql_query($sql,$conn);



while($row = mysql_fetch_object($result)){
deleteTree($row->id_rubrique);
$sql2 = "SELECT id_cible, type, fichier FROM cibles WHERE rubrique_id = ".$row->id_rubrique.";";
$result2 = mysql_query($sql2,$conn);
while($row2 = mysql_fetch_object($result)){
if(unlink('medias/'.$row2->type.'/'.$row2->fichier)){
$sql3 = "DELETE FROM cibles WHERE id_cible =".$row2->id_cible." ;";
$result3 = mysql_query($sql3,$conn);
$row3 = mysql_affected_rows($conn);
}


}
if(unlink('medias/rubrique/'.$row->fichier)){
$sql4 = "DELETE FROM rubriques WHERE id_rubrique =".$row->id_rubrique." ;";
$result4 = mysql_query($sql4,$conn);
$msg = "opération terminée";
}
}
}

cela me donne un message d'erreur MySQL:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\blabla\site\bo\_rubriques.php on line 24

J'avoue que je suis un peu perdu là. Vous l'aurez compris, je n'ais pas rédigé souvent des fonctions et pour être tout à fait franc, il s'agit de ma toute remière fonction récursive !

Des suggestions? :unsure:

Merci à tous

Edit modérateur : lorsque tu as une grande quantité de code à poster, tu dois l'entourer de balises CODEBOX. Cela facilite la lecture de ton code pour ceux qui pourront t'aider. j'ai édité ton post en ce sens.

Modifié par captain_torche
Posté

Humm... Je pense que l'erreur vient à la fin de tes lignes de requette, tu mets deux fois ";";

essai comme cela

$sql= "SELECT id_rubrique, fichier, rubrique_id FROM rubriques WHERE rubrique_id = ".$id_rubrique."";

Cela marchera surement mieux :)

Sébastien

Posté

Merci de ta réponse.

En fait non, je clôture une première fois ma requête SQL par ";" puis ma ligne PHP par ";".

Si je fais un echo de ma requête SQL une fois éxécutée j'ai bien une requête qui s'éxécute sans problème en direct dan WAMPServer.

D'ailleurs le problème est le même si je met une requête toute conne comme:

SELECT * FROM rubriques;

J'ai exactement le même message.

Mes requêtes sont correcte c'est mas ressource qui ne fonctionne pas dans une fonction... j'ai l'impression...

Posté

Bon bah j'ai trouvé ma réponse:

En fait pour utiliser à l'uintérieure d'une fonction une ressource déclarée à l'extérieur, il faut signaler à cette fonction que cette ressource est GLOBAL

si j'ai:

$conn = bablalbalblab ;

et que je veux utiliser $conn dans une fonction, il faudra que j'écrive:

function maFonction()

{

GLOBAL $conn;

$conn .= blalbalbalba ;

......

}

Voilou, c'était tout bête mais fallait le savoir. C'était pas mon cas :) !!!

Merci à tous,

Salut,

Robin

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...