Rechercher : dans
Par :

Fonction dans ma boucle marche pas

Dernière réponse le 6 jui 2009 à 16:36:11 sinifer, le 6 jui 2009 à 14:13:09 
 Signaler ce message aux modérateurs

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++;
}

Configuration: Windows XP
Firefox 3.0.11

Meilleures réponses pour « fonction dans ma boucle marche pas » dans :
Trier un tableau sans utiliser la fonction sort VoirTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle...
Faire fonctionner une application Windows sous Linux avec Wine VoirWine est un logiciel permettant de faire fonctionner certaines applications Windows sous Linux. Contrairement à VMWare ou VirtualBox, Wine n'émule pas un PC complet, mais seulement les API Win32 (appels système Windows). L'émulation n'est pas...
Javascript - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...

1

le père, le 6 jui 2009 à 14:18:21

Bonjour

C'est bien de nous dire que $valeur te pose un problème, ce serait mieux de nous dire lequel .

Répondre à le père

2

sinifer, le 6 jui 2009 à 14:27:53

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)

Répondre à sinifer

3

le père, le 6 jui 2009 à 14:33:08

As-tu fait dans ta boucle un echo $resultat[0]; pour t'assurer que tu récupères bien une valeur ?

Répondre à le père

4

sinifer, le 6 jui 2009 à 14:39:20

Oui sa marche et ma fonction marche aussi si je la mets dans value

Répondre à sinifer

5

le père, le 6 jui 2009 à 14:49:30

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

Répondre à le père

6

sinifer, le 6 jui 2009 à 15:03:17

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";

}

Répondre à sinifer

7

sinifer, le 6 jui 2009 à 15:19:12

Mais sa s'affiche pas comme je le veut??
sa ce mets tou a la ligne et j'a plus rien dans value

Répondre à sinifer

8

le père, le 6 jui 2009 à 15:21:03

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...

Répondre à le père

9

le père, le 6 jui 2009 à 15:22:49

Le echo $value; direct, c'était juste pour voir. Tu peux remettre les balises <option> et </option>

Répondre à le père

10

sinifer, le 6 jui 2009 à 15:40:05

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>

Répondre à sinifer

11

le père, le 6 jui 2009 à 16:07:10

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 .

Répondre à le père

12

sinifer, le 6 jui 2009 à 16:12:33

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;

}

Répondre à sinifer

13

le père, le 6 jui 2009 à 16:17:57

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.

Répondre à le père

14

sinifer, le 6 jui 2009 à 16:23:52

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

Répondre à sinifer

15

 le père, le 6 jui 2009 à 16:36:11

Bonne continuation et à bientôt sans doute ;)

Répondre à le père
Collection CommentÇaMarche.net