8791 sujets

Développement web côté serveur, CMS

Salut à tous,

Voilà mon problème est que j'aimerais insérer un fragment de code php dans une variable et que ma page l'exécute.

Quelqu'un c'est comment l'écrire?

Je vais donné un exemple pour être plus clair.


$menu = '
<div>
<a><span>'.$bouton['numero'].'</span></a>
</div>
<?php while($bouton=mysql_fetch_array($numero))  { <div><a><span>'.$bouton['numero'].'</span></a></div> } ?>


Se code est Appeler dans une autre page HTML

Comment faire exécuter mon fragment de code PHP?

Merci Smiley biggrin
Modifié par alexandcote (28 Aug 2010 - 04:34)
Salut alexandcote

Ton script malheureusement est difficile à comprendre.
Tu ne peut pas avoir une variable PHP « $menu » en dehors de la racine PHP

Comme ceci

<?php
 # -- Tout ton code ici --
 # -- Celà comprend ta variable $menu
?>

De plus lorsque tu veut afficher des balises HTML tu dois utiliser « echo »

Comme ceci : remarque que ma variable $titre est à la racine de <?php . . . ?>

<?php
  $titre = 'Les technologies XML';
  # -- Affichage du titre avec div et h1 --
  echo '<div>';
  echo '<h1>' . $titre . '</h1>';
  echo '</div>';
?>

Tu peut très bien l'écrire sur une seule ligne : comme ceci

<?php
  $titre = 'Les technologies XML';
  # -- Affichage du titre avec div et h1 --
  echo '<div><h1>' . $titre . '</h1></div>';
?>

Je ne peux te donner davantage car ton script est fautif et qu'il est difficile de comprendre tes intentions. Je sais que tu utilise une BDD, mais je crois que nous aurions besoin de plus d'informations

Je te laisse cependant avec un script PHP qui utilise un « tableau associatif » pour insérer les données dans un
<a href=""></a>. Exécute le dans un nouveau document si tu veut. Et lance le.

<?php
  # -- Tableau associatif : $site --
  $site = array('Moto GP 2010'=>'http://www.motogp.com', 'Racing Tour 2009'=>'http://www.motoracing.com', 'Red Bull Moto Cup'=>'http://www.redbull.com');
  # --
  foreach ($site as $cle => $adresse)
  {
    echo "<div><a href='$adresse'>" . $cle . '</a></div>';
  }
?>

Place ton pointeur sur un lien et look ta barre d'état en bas de ton navigateur.

Remarque que tout le code, çà comprend les $variable, sont au root du langage PHP. De plus les balises HTML sont sous la tutelle de « echo » qui se chargera de l'affichage à l'écran.

Même si mon code s'éloigne de ta quetion, j'ai fait mon possible pour exprimer certaines erreurs sur ta façon d'écrire. Mon script reprend certaines erreurs sur ton écriture.

1) La variable $menu doit être dans le root de PHP
2) La balise <a> possède un attribut « href="" » obligatoire.
3) On affiche les résultats avec « echo » : y compris les balises HTML.

N'abandonne pas Smiley smile

++
Modifié par zardoz (28 Aug 2010 - 07:37)
Ok je vais essayer d'être plus précis parce que je l'avoue, c'est dure à comprendre Smiley langue

En faite j'ai une page qui s'appel accueil.php. Celle-ci à une menu. Mon menu est sous forme d'une variable $menu. Il est sous une page externe parce que je fais un site bilingue. Mes pages externe sont vars.fr.php et vars.en.php. Dans c'est page j'ai plusieurs variable que j'appelle de cette façon:


<?php
$bouton='Accueil';
$bouton1='Nous Joindre';

$menu = '

<div>

<a herf="accueil.php><span>'.$bouton.'</span></a>

</div>


<div>

<aherf="nous_joindre.php><span>'.$bouton1.'</span></a>

</div>
?>



Dans ma page acceuil, j'ai un code comme ceci :


<?php include ('vars.fr.php')?>;

<body>

<?php echo $menu ?>

</body>




Bon ma question est la suivante, Comment Ajouter un fragment de code PHP dans ma variable $menu pour qu'elle s'exécute. Si je l'écris comme ceci:


<?php

$menu = '

<div>

<a><span>'.$bouton['numero'].'</span></a>

</div>




<?php while($bouton=mysql_fetch_array($numero))  { <div>

<a><span>'.$bouton['numero'].'</span></a>

</div> } ?>

?>


Mon While ne s'exécute pas mais ma première balise div fonctionne très bien. Cette partie du code :



<?php while($bouton=mysql_fetch_array($numero))  { <div>

<a><span>'.$bouton['numero'].'</span></a>

</div> } ?>


Elle apparais dans mon code source telle qu'elle. Donc le code PHP ne passe pas en exécution !
J'aimerais le faire exécuter.

Merci et j'espère être plus clair Smiley biggrin
Salut :

Non ce n'est pas plus claire en fin de compte.
Seulement ce n'est pas non plus ce que je voudrais discuter.

Ta question est bien seulement je me rend compte que tu as des erreurs. Celles-ci ont été définies déjà.

Tu néglige les « ' » ou « " » sans compter les « ; » à la fin d'une instruction. De plus on ne voit pas ton objet de connection MySQL. Pas plus qu'on ne voit ton objet « SELECT ».

Je sais que tu débute et c'est la raison pour lequel j'ai tendance à te suggérer des points important lorsque nous voulons faire des développements en programmation.

Si tu commençais à la base tu ne ferais pas des erreurs sur des sujets aussi simple.

Comme exemple tu fais ceci sur un de tes codes.

# -- Toi tu as fait ceci --
<?php
 <?php 
 # -- Tu ne peux pas imbriquer deux root PHP -- 
 ?>
?>

La raison en est fort simple. Tu néglige l'essentielle qui est la base en programmation.

Il y a des critères que tu dois apprendre avant de pouvoir te connecter à une base. Une de ces critères est la logique en apprentissage de développement de programme. Et cette logique dit que nous devons commencer à la base. Voici quelques éléments de bases.

1) Les variables.
2) Les opérateurs.
3) Les conditions if - else if - switch case - etc.
4) Les fonctions utilisateurs définition, appelle, avec ou sans paramètre, retour de valeurs, etc.
4.1) Les classes (POO) propriétés, méthodes, lecture/écriture (get | set) et j'en passe.
5) ect. 6) etc.

Sans compter les nombreux exercices. À vrai dire je retourne constamment à la base pour garder la main.

Les choses à ne pas faire lorsque nous sommes en apprentissage

1) Penser en terme de site web : en arrière pensée oui mais ce n'est pas le but premier.
2) Sauter des étapes d'apprentissages et précipité la réalisation d'un site.
3) etc. 4) etc.

Les choses à faire lorsque nous sommes en apprentissage

1) Penser en terme développement de programme. Faire des exercices de bases de façon soutenu.
2) Penser en terme modulaire, fragmentaire. En terme d'objet de programmation.
2.1) Développer avec les données brutes. Sans formatage. Le but est de savoir si un programme est fonctionnel.
3) Établir un site de « test » en localhost. Pour un apprentissage sérieux.
4) Établir un site en ligne. Le vrai site, mais d'expérimentations XHTML CSS PHP MySQL.
5) etc. 6) etc.

En développement de programme il faut garder à l'esprit que le but premier est de vérifier le bon fonctionnement d'un programme. Les résultats des données brutes sont largement suffisant. Ne pas oublier non plus que vous devrez vérifier le bon fonctionnement de deux programmes et plus qui sont inter-relier. Très fréquent en (POO). Rien de mieux que les données brutes.

Pour ceux et celles qui connaissent la vérification des données en console comprennent l'importance de vérifier le bon fonctionnement d'un programme en données brutes. En Java comme en C#, ainsi qu'en Flash AS3 nous développons en fonction des consoles de sorties, c'est ainsi lorsque nous développons en ligne de commande. Moi personnellement c'est là que j'ai appris à développer avec les données brutes. Il en est de même en PHP, la console est le navigateur ou cmd.exe (sous windows).

Je n'ai pas la prétention d'avoir tout dit. De plus ces propos sont personnelles. Chacun développera une façon perso d'évoluer en apprentissage. Mais de sauter des étapes en développement de programme est une réaction humaine hélas trop fréquente chez les débutants(es).

Vouloir son site en ligne à tout prix, visualiser les résultats visuels à tout prix, quitte à sauter des étapes importantes en développement, est une très mauvaise habitude.

Quand tu ouvre un livre alexandcote, ne l'ouvre pas au milieu : ouvre le à la première page.

++
Modifié par zardoz (29 Aug 2010 - 14:31)
Une solution simple :

<?php
$menu = '<div>'."\n\n";
$menu.= "\t".'<a><span>'.$bouton['numero'].'</span></a>'."\n";
$menu.= '</div>'."\n\n";

while($bouton = mysql_fetch_array($numero)) 
	{ 
	$menu.= '<div>'."\n\n";
	$menu.= "\t".'<a><span>'.$bouton['numero'].'</span></a>'."\n";
	$menu.= '</div>'."\n\n";
	}
?>


Regarde bien le code, et tu comprendras que je ne fait qu'alimenter la variable.

Après, le code html de sortie sera vraiment pas terrible, mais ça, si tu regarde, tu comprendras pourquoi !
Modifié par Super_baloo8 (08 Sep 2010 - 12:58)