[PHP] Affichage / ou pas d'un lien HELP PLZ

Résolu/Fermé
Signaler
Messages postés
19
Date d'inscription
mercredi 2 avril 2008
Statut
Membre
Dernière intervention
5 août 2008
-
Messages postés
19
Date d'inscription
mercredi 2 avril 2008
Statut
Membre
Dernière intervention
5 août 2008
-
Bonjour,
Voila après de nombreuses heures passé, à essayé de voir où était mon problème, je ne vois pas je vous demande votre aide.
En fait je veux que si un lien existe ( dans la bdd ) alors afficher le lien sinon afficher message disant que c'est indisponible. Le problème qui se pose en fait ce que la page n'affiche que le message "Ici" qu'il y ait un lien dans la bdd ou pas, vu que je suis un néophyte en php je ne vois pas ou est mon erreur, si vous pouviez m'éclairer.

Merci d'avance.

Voici mon code:

<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("coursphp"); // Sélection de la base coursphp

$id = intval($_GET['id']);
$reponse = mysql_query('SELECT lien FROM episode WHERE id='.$id.' ORDER BY id DESC') or die (mysql_error()); // Requête SQL

if (mysql_num_rows($reponse) > 0)
{
$donnees = mysql_fetch_assoc($reponse);

echo '<strong>Lien :</strong> <a href="'.stripslashes($donnees['lien']).'">Ici</a> ';
}
else
{
echo 'Indisponible';
}

mysql_close();
?>

2 réponses

Messages postés
48
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
19 avril 2010
28
Ta ligne de lien m'a l'air un peu trop compliquée
echo '<strong>Lien :</strong> <a href="'.stripslashes($donnees['lien']).'">Ici</a> ';
Es tu sur de l'exécution de la fonction stripslashes ?

Je te propose plutôt ceci :
$lien = stripslashes($donnees['lien']);
echo "<strong>Lien :</strong> <a href='$lien'>Ici</a>";

J'ai utilisé des double-quotes (") après echo et en fin de ligne,
simple quote pour encadrer $lien.

Habituellement, pour travailler sur une base de données, c'est plutôt

$link = mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("coursphp", $link); // Sélection de la base coursphp

Messages postés
19
Date d'inscription
mercredi 2 avril 2008
Statut
Membre
Dernière intervention
5 août 2008
5
Merci pour ta réponse, mais c'est toujours la même chose, en fait ton code et celui juste en haut marche mais seulement:
- lorsqu'il y a bel et bien un lien dans la table, ça affiche donc "Lien : ici"
- et dans le cas ou il n'y a aucune donnée dans la table (j'ai essayé avec une nouvelle table), ici appellé "episode" ça affiche "Indisponible"
or sachant que moi dans ma table "episode" il y a plus d'une centaine d'épisodes ça m'embête un peu >_<
Je veux qu'à la fin sa donne quelque chose comme ça : http://www.huecomundo.free.fr/onepiece-episode.php?id=364&titre_episode=Oz%20hurle%20%21%21%20Montre-toi%2C%20%E9quipage%20du%20chapeau%20de%20paille
Et encore merci pour ta réponse.
Messages postés
48
Date d'inscription
samedi 2 août 2008
Statut
Membre
Dernière intervention
19 avril 2010
28
Je te propose ceci, si j'ai bien compris

$lien = stripslashes($donnees['lien']);
$lien = trim($lien);
if (!empty($lien)) {
echo "<strong>Lien :</strong> <a href='$lien'>$lien</a>";
} else {
// pas de lien ---> mettre ici ce que tu prévois
}

Messages postés
19
Date d'inscription
mercredi 2 avril 2008
Statut
Membre
Dernière intervention
5 août 2008
5
Miracle !!!!!!!!! ça marche !!!! Je te remercierait jamais assez.

Voici mon code final :
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("coursphp"); // Sélection de la base coursphp

$id = intval($_GET['id']);
$reponse = mysql_query('SELECT lien FROM episode WHERE id='.$id.' ORDER BY id DESC') or die (mysql_error()); // Requête SQL

$donnees = mysql_fetch_assoc($reponse);
$lien = stripslashes($donnees['lien']);
$lien = trim($lien);
if (!empty($lien)) {
echo "<strong>Lien :</strong> <a href='$lien'>$lien</a>";
}
else
{
echo "Indisponible";
}

mysql_close();
?>

Et encore une fois merci beaucoup