syntaxe ou argument?

Eléphant du PHP | 57 Messages

31 juil. 2009, 09:41

Bonjour,

je débute en php (comme d'autres!) et je n'arrive pas à passer le résultat de ma requête sql vers ma page "testannonce.php".



je vous joins le code :
		echo "<span class="Style5"><a href="testannonce.php?referenceannonce=<?php \"$data['reference']\" ?>">Plus de d&eacute;tails...</a></span></p>";

Je pense que je dois un peu me planter question syntaxe et argument.

Donc, si vous voyez où se trouve mon erreur...


Merci beaucoup! :wink:

Le prinicipe de ma page : En fait j'ai une page avec des annonces qui retourne les entrées d'une base sql sous forme de liste. A chaque annonce est associée une référence. Cette référence doit devenir la passerelle entre l'annonce abrégée et l'annonce développée. ]

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

31 juil. 2009, 09:59

ton erreur très simple,

tu a mis :

Code : Tout sélectionner

<?php "$data['reference']\" ?>
Hors la php ne fait rien et même risque de te mettre un erreur !

Si u dis pas à php que faire avec ta variable, il en fera rien ! la tu veux que la valeur de ta varible s'affiche, soit retourner au navigateur dans ton lien. Tu as donc besoin de faire un echo ou print

Code : Tout sélectionner

<?php echo $data['reference'];?>
de plus tu n'a pas besoin de " et \".
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Eléphant du PHP | 57 Messages

31 juil. 2009, 10:24

Merci beaucoup pour cette réponse rapide!

j'ai donc essayé et remplacé le bout de code avec la fonction "echo" mais je n'arrive toujours pas à mon résultat.

j'ai pourtant revérifié si je n'avais pas mis des guillemets en trop ou en moins. Malheureusement, là j'avoue que je ne sais plus trop bien où j'en suis... :(

echo "<span class="Style5"><a href="testannonce.php?referenceannonce=<?php echo $data['reference'];?>">Plus de d&eacute;tails...</a></span></p>";
ce sont donc les modifs faites (à noter que la balise <p> est ouverte plus haut dans mon code)

Eléphant du PHP | 111 Messages

31 juil. 2009, 10:28

Code : Tout sélectionner

[color=red]echo [/color]"<span class="Style5"><a href="testannonce.php?referenceannonce=<?php echo $data['reference'];?>">Plus de d&eacute;tails...</a></span></p>";

Ton echo suggère que php est déjà ouvert.

Pourtant, tu l'ouvres à nouveau un peu plus loin.

Ton problème est là.

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

31 juil. 2009, 10:33

exact j'avais pas faire attention

Code : Tout sélectionner

echo "<span class="Style5"><a href="testannonce.php?referenceannonce=<?php echo $data['reference'];?>">
corrigé comme ca

Code : Tout sélectionner

echo "<span class=\"Style5\"><a href=\"testannonce.php?referenceannonce=".$data['reference']."\">tonlien</a>";
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Mammouth du PHP | 2937 Messages

31 juil. 2009, 10:36

exact j'avais pas faire attention

Code : Tout sélectionner

echo "<span class="Style5"><a href="testannonce.php?referenceannonce=<?php echo $data['reference'];?>">
corrigé comme ca

Code : Tout sélectionner

echo "<span class="Style5"><a href="testannonce.php?referenceannonce=".$data['reference']."">tonlien</a>";
Il y a même mieux :
echo '<span class="Style5"><a href="testannonce.php?referenceannonce='.$data['reference'].'">tonlien</a>';
De quoi éviter d'échapper les guillemets doubles des valeurs d'attributs HTML. ;)

Oui, je sais : je fais partie du club des méticuleurs de mouches. :langue:

Eléphant du PHP | 57 Messages

31 juil. 2009, 10:46

Merci mille fois!

la correction fonctionne et allège la lisibilité mais en plus je comprends mieux mon erreur!

re-merci donc! :D

Juste pour confirmation : pour appeler le fameux referenceannonce dans "testannonce.php" j'ai juste à ecrire:
<?php 
	
	 if(isset($_GET['referenceannonce'])){
		$referenceannonce=$_GET['referenceannonce'];
		}
	
		echo $referenceannonce;
	?>
non?


edit : testé et approuvé!

ViPHP
AB
ViPHP | 5818 Messages

31 juil. 2009, 11:38

Juste pour confirmation : pour appeler le fameux referenceannonce dans "testannonce.php" j'ai juste à ecrire:
<?php 
	
	 if(isset($_GET['referenceannonce'])){
		$referenceannonce=$_GET['referenceannonce'];
		}
	
		echo $referenceannonce;
	?>
non?


edit : testé et approuvé!
Normalement c'est pas bon car si $_GET['referenceannonce'] n'existe pas alors $referenceannonce non plus, or tu fait afficher $referenceannonce dans tous les cas.

Tu pourrais faire plus simple avec une syntaxe du genre
echo isset($_GET['referenceannonce'])? htmlspecialchars($_GET['referenceannonce']) : '' ;