Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1155 connectés 

  FORUM HardWare.fr
  Programmation

  [php] concaténation de variables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[php] concaténation de variables

n°10171
nikko
Posté le 18-01-2001 à 13:03:53  profilanswer
 

Bonjour,
voila, je récupère plusieurs variables,depuis un formulaire, dont le nom est généré automatiquement : plage1, plage2, plage3 etc.. qui contiennent des titres de morceaux.
et je voudarais utiliser ces variables dans une boucle genre :ss
 
for($i=1,$i<=20;$i++)
{
 echo($"plage$i" ); //je veux afficher le titre du morceau
}
 
mais ça marche pas. J'ai essayé $plage.$i, $"plage".$i et toujours rien... Je ne réussi qu'à afficher plage1, plage2 ...
et j'ai pas envie de me taper du code pour chaque nom....
Si vous aviez une solution, ça serait pas mal
Merci

mood
Publicité
Posté le 18-01-2001 à 13:03:53  profilanswer
 

n°10174
kadreg
profil: Utilisateur
Posté le 18-01-2001 à 13:13:14  profilanswer
 

Moi aussi, ca me manque que l'on ne puisse pas evaluer du php en php. :D
 
Si quelqu'un a une idée ...

 

n°10177
kadreg
profil: Utilisateur
Posté le 18-01-2001 à 13:19:42  profilanswer
 

Citation :


$generatedCode = "";
for ($i = 1; $i <= 20; $i++) {
    $generatedCode = $generatedCode."echo "plage$i";
";
}
$fic = fopen ("temp.php3", "w" );
fwrite ($fic, $generatedCode);
fclose ($fic);
 
include ("temp.php3" );

 



 
Ca marche ça ? Je suis au taf, j'ai pas mon serveur sous la main pour tester mon horreur :D
 
Et pour faire les choses bien, faudrait des semaphores, parceque si yen a deux qui appellent la fonction en meme tezmps, ca va pas être bo ;)
 
Ou alors une fonction qui genere un nom différent à chaque fois pour le fichier, et qui le supprime après le include.

 


--Message édité par kadreg--

n°10179
nikko
Posté le 18-01-2001 à 13:28:53  profilanswer
 

Le fou !!! ;)
Moi c pareil, j'suis au boulot, donc je peu pas testé ça.
Mais on verra, c une idée...

n°10180
Lord II
PIB2000
Posté le 18-01-2001 à 13:33:41  profilanswer
 

essaie ca
 
for ($i=0;$i<=3 ;$i++ )
{
$name="plage" .$i;
echo $name;
echo "<br>";
}

 

n°10181
Lord II
PIB2000
Posté le 18-01-2001 à 13:35:42  profilanswer
 

Ah il manque un truc
 
<HTML><BODY>
<?
$plage0="test0";
$plage1="test1";
$plage2="test2";
$plage3="test3";
 
for ($i=0;$i<=3 ;$i++ )
{
$name="plage" .$i;
echo $$name;
echo "<br>";
}
?>
</BODY></HTML>

 

n°10182
Lord II
PIB2000
Posté le 18-01-2001 à 13:38:52  profilanswer
 

Toutes les variables sont la pour les tests

 

n°10184
nikko
Posté le 18-01-2001 à 13:49:48  profilanswer
 

Merci Lord II,
je testerais tout ça ce soir, je vous tiendrais au courant.
Si qqu'un à d'autres idées..

n°10186
kadreg
profil: Utilisateur
Posté le 18-01-2001 à 13:57:57  profilanswer
 

Celle de LordII elle est mieux quand même. Je vais tacher de m'en souvenir du $$.

n°10196
Pentiore
Posté le 18-01-2001 à 14:28:36  profilanswer
 

remplace ta ligne echo par :
echo($plage[$i]);
 
Du coup plage devient un tableau (array).

 

mood
Publicité
Posté le 18-01-2001 à 14:28:36  profilanswer
 

n°10236
kadreg
profil: Utilisateur
Posté le 18-01-2001 à 19:41:14  profilanswer
 

J'ai corrigé mon code, il fonctionne maintenant :)
 

Citation :


<HTML>
<BODY>
<?
 
$plage1 = "test1";
$plage2 = "test2";
$plage3 = "test3";
$plage4 = "test4";
$plage5 = "test5";
 
$sem = sem_get (42);
 
$generatedCode = "<?";
for ($i = 1; $i <= 5; $i++) {
  $generatedCode = $generatedCode."echo"$plage$i<BR>";
";
}
$generatedCode = $generatedCode."?>";
sem_acquire ($sem);
$fic = fopen ("temp.php3", "w" );  
fwrite ($fic, $generatedCode);  
fclose ($fic);  
include ("temp.php3" );
sem_release ($sem);
?>
</BODY>
</HTML>

 



 
PS : c'est pas pour ça qu'il faut l'utiliser hein :D
 

 


--Message édité par kadreg--

n°10292
nikko
Posté le 19-01-2001 à 10:33:35  profilanswer
 

Bon, j'ai testé tout ça et le $$ ça marche :)
Mais j'ai encore un problème :
qd je lui demande de mettre le titre dans ma base, là ça marche plus : :cry:
je fais
 
for ($i=0;$i<=20;$i++)
{
 $titre="plage".$i;ss
 echo ($$name); //ça affiche bien le titre
 //connexion à MySQL et tout le truc...
 $req="INSERT INTO titre VALUES ('$num_cd','$i','$$name';)"
 //exécution de la requête
}
 
et là, ds la base, il inscrit plage1, plage 2... :gun:
 
Lord II à l'aide !!!

n°10310
Lord II
PIB2000
Posté le 19-01-2001 à 11:36:16  profilanswer
 

ca ca marche verifie la syntaxe, il faut utiliser l'opérateur de concaténation car le double opérateur est une syntaxe complexe. Pour quelle soit correctement interprété dans une chaine il faut lui mettre des accolades ou des crochets je ne sais plus donc concaténation..
 
$req="INSERT INTO titre VALUES ('$num_cd','$i','" .$$name ."';)";
 
Dans cette requete il faut que tu spécifie tpus les champs des colones. Je pense qu'il est plus clair de spécifier à chaque fois de mettre les colones concernées.
 
Si il n'insère toujours pas correctement cela peut provenir de la cartéristique du champ dans la base, genre int pour varchar etc...

 

n°10312
Lord II
PIB2000
Posté le 19-01-2001 à 11:37:09  profilanswer
 

A la place du smiley il y a parenthèse, guillemet et ppoint virgule !!!

 

n°10439
nikko
Posté le 20-01-2001 à 12:10:02  profilanswer
 

Merci Lord II, ça marche nickel !!!
:jap: :jap: :jap: :jap: :jap: :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [php] concaténation de variables

 

Sujets relatifs
[PHP] probleme avec les variables...Passage de variables entre frames
Plus de sujets relatifs à : [php] concaténation de variables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR