SQL dans boucle while grâce à une fonction

Fermé
IceDeamon Messages postés 4 Date d'inscription samedi 8 août 2009 Statut Membre Dernière intervention 17 octobre 2009 - 17 oct. 2009 à 23:02
Olendam Messages postés 108 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 4 novembre 2009 - 17 oct. 2009 à 23:59
Bonsoir les gens,

J'ai un problème, ou plutôt une question.
Actuellement, je sais comment afficher une liste de données, avec SQL, en utilisant la boucle While :

<?php
$reponse = mysql_query("SELECT * FROM table WHERE parametre='x'");
while($sql = mysql_fetch_array($reponse)
{
     echo $sql[2];
}
?>

Bon, je pense que ce code est correct.

Maintenant, j'essaie de faire un scrit, qui fait le même travail, mais la requête se trouve dans une fonction.
L'idéal étant :

<?php
while(fonction())
{
       getTitle();
}
?>



Où fonction() renvoie "$sql = mysql_fetch_array", et getTitle "$sql['title']";


Ma question est donc : comment coder fonction() ?

Merci de votre réponse,
IceDeamon.

3 réponses

Olendam Messages postés 108 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 4 novembre 2009 1
17 oct. 2009 à 23:54
Voici un exemple tiré du site du zéro pour t'aider :
<?php
mysql_connect("localhost", "pseudo", "mot_de_passe"); 
mysql_select_db("coursphp"); 
 
$reponse = mysql_query("SELECT * FROM jeux_video"); 
 
while ($donnees = mysql_fetch_array($reponse) )
{
?>
    <p>
    <strong>Jeu</strong> : <?php echo $donnees['nom']; ?><br />
    Le possesseur de ce jeu est : <?php echo $donnees['possesseur']; ?>, et il le vend à <?php echo $donnees['prix']; ?>   euros !<br />
    Ce jeu fonctionne sur <?php echo $donnees['console']; ?> et on peut y jouer à <?php echo $donnees['nbre_joueurs_max']; ?> au maximum<br />
    <?php echo $donnees['possesseur']; ?> a laissé ces commentaires sur <?php echo $donnees['nom']; ?> : <em><?php echo    $donnees['commentaires']; ?></em>
   </p>
<?php
}
 
mysql_close();
?>
0
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
17 oct. 2009 à 23:57
Salut

Je vois en gros ce que tu voudrais faire mais sa risque de coincer a plusieurs endroits :

Si tu code fonction de cette maniere

function fonction() {
$reponse = mysql_query("SELECT * FROM table WHERE parametre='x'");
$sql = mysql_fetch_array($reponse);
return $sql;
}

La boucle tournera a l'infini car la requete va se re initialiser a chaque tour de boucle... Il ne faut donc pas executer la requete a l'interieur ce qui donnerai :

function fonction($reponse) {
$sql = mysql_fetch_array($reponse);
return $sql;
}

$reponse = mysql_query("SELECT * FROM table WHERE parametre='x'");
while($sql = fonction($reponse))
{
echo $sql[2];
}

L'interet du truc est tout de suite plus limité...

Il y a une raison precise pour que tu veuille faire ça ?
0
Olendam Messages postés 108 Date d'inscription samedi 17 octobre 2009 Statut Membre Dernière intervention 4 novembre 2009 1
17 oct. 2009 à 23:59
Pourquoi veut tu absolument mettre dans la boucle, tu n'a qu'à le mettre à l'extérieur et l'appeller.
0