Page 1 sur 1

pb fonction affichage

Posté : 13 mars 2005, 21:38
par donatello
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?

fonction php

Posté : 13 mars 2005, 22:19
par donatello
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() ?

Posté : 13 mars 2005, 22:22
par ImBrOgLiO
Montre-nous le code complet de ta fonction.

pb fonction affichage

Posté : 13 mars 2005, 22:47
par donatello
//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.

Posté : 14 mars 2005, 06:51
par ImBrOgLiO
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.

fonction affichage

Posté : 14 mars 2005, 12:47
par donatello
merci pour les conseils!