[RESOLU] url ne s'affiche pas :-(

Eléphanteau du PHP | 19 Messages

20 juin 2013, 10:31

Bonjour , je n'arrive pas à afficher et lier un lien href :

Je dois récupérer une adresse url dans phpmyadmin, qui pointe sur un article de mon blog Wordpress, et l'afficher sur la page dans un bouton, avec un texte sur le bouton (si la condition est ok) genre "consulter l'article"
Mais je tourne en rond, le lien n'apparait pas...je me plante de syntaxe.

Qui peut m'aider..? Merci

Code : Tout sélectionner

<?php if ($r["$tab_champs[22]"]!='') { echo '<a href="<?=($r["$tab_champs[22]"])?>">DECOUVREZ L ARTICLE COMPLET</a>'; } ?>
22 contient le champ article dans la base

Mammouth du PHP | 1967 Messages

20 juin 2013, 10:48

je comprends pas du tout l'utilité des "<?=" et "?>" de ton code
de plus, il faut que tu revoie l'utilisation des simple et double quote
essaie avec le code ci dessous

Dans tous les cas, regarde le code source produit par ton code et non pas l'affichage de ton navigateur (ctrl+U sur Firefox)
	<?php if ($r["$tab_champs[22]"]!='') { echo 
'<a href="'.$r["$tab_champs[22]"].'">DECOUVREZ L ARTICLE COMPLET</a>';
}
?>
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 juin 2013, 11:26

bon conseil que de revoir l'utilisation des chaines de caractères, mais dans ce cas autant utiliser la concaténation, l'imbrication des variables dans une chaines de caractères n'étant pas top au niveau fonctionnement (d'ailleurs $r["$tab_champs[22]"] ne fournit pas forcément ce que tu veux ;) ).
de plus utiliser une chaine de caractère pour l'utilisation affichage d'une variable c'est inutile et anti performant :)

=> $r[$tab_champs[22]]
<?php
if (!empty($tab_champs[22]) && !empty($r[$tab_champs[22]])) {
    echo '<a href="' . $r[$tab_champs[22]] . '">DECOUVREZ L\'ARTICLE COMPLET</a>';
}
?>

@+
Il en faut peu pour être heureux ......

chnateur06
Invité n'ayant pas de compte PHPfrance

20 juin 2013, 14:03

..NAN...toujours pas ; le texte "decouvrez l article " ne s'affiche pas, et il n'y a pas de lien du tout :-(

ViPHP
ViPHP | 2577 Messages

20 juin 2013, 14:14

..NAN...toujours pas ; le texte "decouvrez l article " ne s'affiche pas, et il n'y a pas de lien du tout :-(
Il faut regarder le code html reçu par le navigateur (click droit + afficher le code source de la page). Il suffit parfois d'une erreur html pour cacher une partie de l'affichage (", < ou > en moins ou en trop). C'est beaucoup plus facile à déboguer en regardant le html généré que le php.

Eléphanteau du PHP | 19 Messages

20 juin 2013, 14:20

bah ...il est vide dans le code source ^^
<div id="article_bouton">

</div>

...mais pourquoi...?

Alors , en fait, il y a une fiche qui représente chaque entité, la page est construite avec une liste de champs à récupérer

Code : Tout sélectionner

// champs à sélectionner / à afficher $tab_champs = array("id","title","city","note","description","address","phone","website","cap","menu_entree","menu_plat","menu_dessert","youtube_link","resa","horferm","pain","prix","serviette","latable","qualite_service","aime","article","ofinal","latitude","longitude","chef","chefAge","chefEtoile","chefParcours","chefSpecialites","vu","recommande","prix_formule_un","prix_formule_deux","prix_formule_trois","midi_entree_moins_cher","midi_entree_plus_cher","midi_plat_moins_cher","midi_plat_plus_cher","prix_dessert","vin_moins_cher","vin_plus_cher");
celui dont j ai besoin est en 22e position ^^ (ça fonctionne bien avec les autres parametres)

Dans ma table, le champ en question (le 22) est nommé "article"
Le but est de dire : si article est renseigné (avec l'url du blog WP) , alors tu me montre le cadre/bouton que je pourrais cliquer en affichant "découvrez l'article" sur la page de cette fiche.

Comment fait on pour récupérer l'url et rediriger sur l'article du blog? Je pensais qu'en récupérant simplement dans le href, c'etait bon...mais ça doit pas être la bonne syntaxe...ou la bonne méthode...

ViPHP
ViPHP | 2577 Messages

20 juin 2013, 14:37

<?php
if (empty($tab_champs[22])) {
   echo '$tab_champs[22] est vide';
   var_dump($tab_champs);
} else {
   $cle = $tab_champs[22];  
   if (empty($r[$cle])) {
      echo '$r[',$cle,'] est vide';
      var_dump($r);
   } else {
       echo '<a href="' . $r[$cle] . '">DECOUVREZ L\'ARTICLE COMPLET</a>';
   }
}
?>
Ca peut permettre de comprendre un peu mieux.

Eléphanteau du PHP | 19 Messages

20 juin 2013, 20:42

si je place ce code, la source me réponds ça , en partie >>
["article"]=>
string(43) "blog/restaurant-le-jardin-hotel-de-mougins/"
["ofinal"]=>
string(0) ""
["latitude"]=>
string(18) "43.60392391691676 "
["longitude"]=>
string(18) "7.0107632875442505"

...et je l'interprete comment...? Merci ^^

Eléphanteau du PHP | 19 Messages

20 juin 2013, 21:09

En fait , par exemple, pour faire un lien sur une adresse contenu dans un champ de base de données , vous faites comment?

Moi j ai mon champ "article" , qui contient l'adresse url (blog/patin-couffin-fait-des-petits) ; "article" a le numero 22 dans la liste en array, je pensais simplement recupérer avec un echo, mais y doit manquer un truc du genre urlencode ou htmlentities...non?

ViPHP
ViPHP | 2577 Messages

20 juin 2013, 21:19

et tu n'as pas : $tab_champs[22] est vide
ou $r[article] est vide ?

Ca veut dire $r["article"] vaut "blog/restaurant-le-jardin-hotel-de-mougins/"
ou $tab_champs["article"] vaut "blog/restaurant-le-jardin-hotel-de-mougins/"

Edit : en fait je ne sais pas si ton affichage correspond à var_dump($tab_champs); ou à var_dump($r);

Eléphanteau du PHP | 19 Messages

20 juin 2013, 22:06

Bon...autant pour moi, c'est une phrase que j'avais essayé mais encore avec la mauvaise syntaxe :-(

Avec cette écriture , Miracle ! ça fonctionne effectivement. Le code de la page a été fait par quelqu'un d'autre, qui se casse la tête avec des variables qui passent par ici, et que reviennent par là...donc ça m'a enduit d'erreurs...
La solution est bien logique..et simple ;-) On récupère bêtement la variable correspondant au champ de la base, dans lequel est noté l'url ^^ Milles merci à tous!

Code : Tout sélectionner

echo '<a href="' . $r['article'] . '">blablabla</a>';

ViPHP
ViPHP | 2577 Messages

20 juin 2013, 23:38

<?PHP
if (!empty($r['article'])) {
    echo '<a href="' . $r['article'] . '">blablabla</a>';
}
?>
Comme suggéré par Moogli. C'est pour le cas ou $r['article'] n'existerai pas.