pb fonction affichage

donatello
Invité n'ayant pas de compte PHPfrance

13 mars 2005, 21:38

Bonjour à tous,

j'ai écrit un bout de code pour afficher les résultats d'une requête mysql:

while ($retour = mysql_fetch_array ($result)) {
echo $retour['champ1'];
echo $retour['champ2'];
}

j'utilise ce bout de code assez souvent donc je l'ai mis dans une fonction AfficheResultat() { //fonction placée dans un fichier externe appelé avec require
echo $retour['champ1'];
echo $retour['champ2'];
}

la fonction ne donne aucun résultat mais n'affiche pas non plus d'erreur...je suis perdu. Quelqu'un peut m'aider?

donatello
Invité n'ayant pas de compte PHPfrance

13 mars 2005, 22:19

Bon, je repose ma question différamment.

j'ai écrit un bout de code pour afficher les résultats d'une requête mysql:

while ($retour = mysql_fetch_array ($result)) {
echo $retour['champ1'];
echo $retour['champ2'];
}

dès que je mets les lignes echo dans une fonction, l'affichage des echo est perturbé: certains champs s'affichent, d'autres pas.

Ma question: ya-t-il des problèmes quand une fonction utilise des varibales qui viennent de mysql_fetch_array() ?

Eléphant du PHP | 205 Messages

13 mars 2005, 22:22

Montre-nous le code complet de ta fonction.
Si vous pensez que l'éducation coûte cher, essayez l'ignorance!

donatello
Invité n'ayant pas de compte PHPfrance

13 mars 2005, 22:47

//la requête

$query ="SELECT * FROM $table WHERE Prix $prix_mini AND Prix $prix_maxi AND Surface $surface_mini AND Surface $surface_maxi" .
" AND Type LIKE '%" .$HTTP_GET_VARS["type"]. "%'" .
" AND Pieces LIKE '%" .$HTTP_GET_VARS["pieces"]. "%'" .
" AND Ville LIKE '%" .$HTTP_GET_VARS["ville"]. "%'" .
" AND Cpostal LIKE '%" .$HTTP_GET_VARS["cp"]. "%'" .
" LIMIT $start, $nb_results_p_page";


$result = mysql_query($query);

//l'affichage

while ($ret = mysql_fetch_array ($result)) {


echo "<table class='resultat' width='87%' cellspacing='0' cellpadding='0'>";
echo "<tr><td class='libelles' width='70%'>";
echo $ret["Type"];
echo "</td>";

echo "<td class='libelles' align='right' colspan='3'>";
echo $ret["Prix"] . " Euros" . " - " . $ret["Surface"] . "m2";
echo "</td></tr>";


echo "<tr><td colspan='4'>";
echo "<table width='100%' align='center' bgcolor='#ffffff' border='0' cellspacing='0' cellpadding='3'>";
echo "<tr><td class='annonce'>";
echo $ret["Annonce"];
echo "</td></tr>";
echo "</table>";
echo "</td></tr>";



echo "<tr><td class='libelles' align='left' width='150px'>";
echo "Tél: " . TEL_AGENCE;

echo "| Réf " . $ret["Idannonce"] . "</td>";
echo "<td class='libelles' colspan='2' align='right' valign='bottom'>";
echo "<a href='pratique.php?texte=contact&reference=$reference'></a>";

echo "</td></tr></table>";
echo "<hr>";


}

mon problème: dès que je mets les echo de l'affichage dans une fonction, l'affichage est peturbé: tout s'affiche sauf $ret["Annonce"];
Pas d'erreur annoncée non plus.

Eléphant du PHP | 205 Messages

14 mars 2005, 06:51

Tututut! Pas très propre comme code!
D'abord vire les $HTTP_GET_VARS...à moins si tu travailles aves de vieilles versions de PHP...sinion opte pour $_GET['variable]... $HTTP_GET_VARS est totalement désuette..

Ensuite, il me semble que l'on devrait utiliser $ret['variable']...et non $ret["variable"].

Enfin, utilise le moins possible PHP...un exemple:
<?php
 while ($ret = mysql_fetch_array ($result)) {
?>

<table class="resultat" width="87%" cellspacing="0" cellpadding="0">
<tr><td class="libelles" width="70%">
<?php echo $ret['Type']; ?>
</td>
<!-- etc... -->

Essaie ça, tout en vérifiant que Annonce existe bien dans ta base, et qu'elle est non nulle...Après on verra.
Si vous pensez que l'éducation coûte cher, essayez l'ignorance!

donatello
Invité n'ayant pas de compte PHPfrance

14 mars 2005, 12:47

merci pour les conseils!