Fonction dans ma boucle marche pas

Résolu/Fermé
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 - 6 juil. 2009 à 14:13
 le père - 6 juil. 2009 à 16:36
Bonjour,

j'ai un petit problème quand je met ma fonction qui marche trés bien dans ma boucle elle marche plus ai-je fais une erreur??

c'est le $valeur qui me pose problème
voici mon code pour ceu qu'ils veulent bien m'aider

Merci

// Récupération des informations triées par ordre alphabétique
$sql = "SELECT emv_campaign FROM `emv` WHERE 1 group by emv_campaign";
$ReqLog = mysql_query($sql);
$i='1';
while ($resultat = mysql_fetch_row($ReqLog)) {
$campaign_name = $resultat[0];
$valeur = remplaceNom($campaign_name);
echo '<option value="'.$campaign_name.'">'.$valeur;
echo '</option>'."\n";
$i++;
}
A voir également:

15 réponses

Bonjour

C'est bien de nous dire que $valeur te pose un problème, ce serait mieux de nous dire lequel .
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
6 juil. 2009 à 14:27
excuse moi voilà ma fonction consiste a enlevé les "[-/,;+_ .*]"
quand je verifie si sa marche bien il y a pas de problème ma fonction marche bien mais dès que je la mets dans ma boucle le résultat s'affiche pas j'ai rien que du blanc.

alors que si j'ai ex: test-pour-voir
sa doi me donner ex: test pour voir
et dans mon cas sa me donne: (rien)
0
As-tu fait dans ta boucle un echo $resultat[0]; pour t'assurer que tu récupères bien une valeur ?
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
6 juil. 2009 à 14:39
oui sa marche et ma fonction marche aussi si je la mets dans value
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Et si tu fais un echo $valeur; sans le <OPTION value = etc... ni le </option> bien sûr, vois-tu les valeurs ?
enlève aussi le <select> et le </select> qu'il devrait y avoir autour de tout ça
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
6 juil. 2009 à 15:03
oui sa marche quand j'enlève ce que tu ma dis

while ($resultat = mysql_fetch_row($ReqLog)) {
$campaign_name = $resultat[3];
$valeur = remplaceNom($campaign_name);
echo $valeur;
//echo '<option value="'.$campaign_name.'">'.$valeur;
// echo '</option>'."\n";

}
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
6 juil. 2009 à 15:19
mais sa s'affiche pas comme je le veut??
sa ce mets tou a la ligne et j'a plus rien dans value
0
Donc ta fonction marche bien, même dans la boucle...
As tu bien un <SELECT> avant et un </SELECT> après ? (<OPTION>...</OPTION> doivent être à l'intérieur d'une balise SELECT)

As-tu des caractères spéciaux dans $resultat[0] ? si tu as des " ou des > en particulier, ça risque de ne pas de marcher car le " sera pris comme la fin de value, > sera pris comme fin de ta balise, etc...
0
le echo $value; direct, c'était juste pour voir. Tu peux remettre les balises <option> et </option>
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
6 juil. 2009 à 15:40
voila mon code sans ma fonction qui marche bien

mais dès que je mets ma fonction tous bouscule

?>
<form method="POST" action="emv_stats.php">
<select size=1 name="emv">
<?php

echo '<option value="tous">Tous les résultats<option>'."\n";
// Récupération des informations triées par ordre alphabétique
$sql = "SELECT * FROM `emv` WHERE 1 group by emv_campaign";
$ReqLog = mysql_query($sql);

while ($resultat = mysql_fetch_row($ReqLog)) {
// $campaign_name = $resultat[3];
//$value =remplaceNom($campaign_name);

echo '<option value="'.$resultat[3].'">'.$resultat[3];
echo '</option>'."\n";

}

?>

</select>
<input name="Envoyer" type="submit" value="Envoyer" />
</form>
0
Encore une histoire de fou ;) ...
Peux-tu montrer le code de la fonction remplaceNom ? Même si je ne vois pas très bien pourquoi il aurait cet effet .
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
6 juil. 2009 à 16:12
voilà ma fonction

function remplaceNom($campaign_name)
{
$new_nam = $campaign_name;
$pattern="emv";
$new_nam=ereg_replace($pattern," ",$new_nam);

$pattern="[-/,;+_ .*]";
$new_nam=ereg_replace($pattern," ",$new_nam);

echo $new_nam;

}
0
Ta fonction est une c**ie
Si tu veux utiliser la valeur retournée par une fonction, encore faut-il qu'elle t'en retourne une !!!
Elle doit retourner une valeur avec return, pas l'afficher avec echo !
remplace echo $new_nam; par return $new_nam;

Et (je ne te l'ai pas encore suggéré ? ) commence par apprendre les bases du langage avant de te lancer dans des choses un petit peu évoluées. Sinon, tu vas te casser les dents sur chaque ligne que tu écris, j'ai bien l'impression que c'est ce qui est en train de se produire.
0
sinifer Messages postés 312 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2013 11
6 juil. 2009 à 16:23
au moment ou tu ma dis pour le return c'est là ou je l'ai vue j'étais tellement pris par le fait que la fonction marchait que j'ai oublié de regardé si tout étais correct dans ma fonction.
Merci
0
Bonne continuation et à bientôt sans doute ;)
0