IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Générer des liens automatiquement


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Générer des liens automatiquement
    Je souhaite mettre un générateur de liens automatique pour chaque mot existant dans une table appelée les_mots je voudrais que quand un mot existant dans la table s'affiche avec un lien et que cela se fasse automatiquement comment faire ?

    voici un bout de code de ma page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php 
     
    require('config.php');
    $req= mysql_query("SELECT * FROM ma_table  WHERE mot='$search' OR clef1='$search' OR clef2='$search' OR clef3='$search' OR clef4='$search' ");
    while($donnee= mysql_fetch_array($req))
     
     
    {
     
    ?>
     
     
    <table border="0" width="500"  bordercolor="#000000" align="center" cellspacing="10">
     
    		<tr valign="top">
    			<td>
    			<p align="left"><?php echo $donnee['mot']; ?></td>
    			<td width="297">
    			<p align="right"><b><?php echo $donnee['def']; ?></td>
    		</tr>
     
     
     
    </table>
    <?php
    }
    mysql_close();
     
    ?>
    Dans ce cas le script va faire afficher un mot et une définition alors je veux que les mots de la définition aient des liens vers la même page

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    salut,
    je penses ne pas parler que pour moi...mais j'ai pas tres bien compris ce que tu voulais faire...
    tu veux afficher un lien pour tous les mots de ta requete sql ou pour certains mots de ta requete ??
    Si c'est pour tous les mots de ta requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <tr valign="top">
     <td>
      <p align="left"><?php echo '<A href="une_page.php?mot='.$donnee['mot'].'">'.$donnee['mot'].'</A>'; ?>
     </td>
    </tr>
    et dans "une_page.php" tu recupere la definition de ton mot $_GET["mot"]

    ps: j'ai pas tres bien compris ton probleme donc je sais pas si ca repond a tes attentes :/

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Salut,

    d'abord merci d'avoir répondu ! moi je veux remplacer les mots de la définition par des liens mais seulement les mots qui ont été enregistré dans la table, voici exactement ce que je veux faire :

    http://www.le-dictionnaire.com/defin...t=d%E9velopper

  4. #4
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Il faut tout d'abord utiliser explode() pour découper $donnee['def'] au niveau des espaces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php 
    require('config.php');
    $req= mysql_query("SELECT * FROM ma_table  WHERE mot='$search' OR clef1='$search' OR clef2='$search' OR clef3='$search' OR clef4='$search' ");
    while($donnee= mysql_fetch_array($req))
    $definition = explode(" ", $donnee['def']); 
    {
    ?>
    Ensuite tu utilises foreach() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <table border="0" width="500"  bordercolor="#000000" align="center" cellspacing="10">
    		<tr valign="top">
    			<td>
    			<p align="left"><?php echo $donnee['mot']; ?></td>
    			<td width="297">
    			<p align="right"><b>
    			<?php foreach($definition as $lien_mot) { ?>
                <a href='mapage.php?mot=<?php echo $lien_mot; ?>'><?php echo $lien_mot; ?></a> <?php }?></td>
    		</tr>
    </table>
    EDIT : Tu récupères sur la page à l'aide de $_GET['mot'] ...

  5. #5
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    est-ce que tu recupere les mots de la definition (qui renvoient vers une autre definition) ?

    si c'est le ca, je penses qu'un ereg_replace lien devrait aller
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ta_definition="ta super definition";
    $ta_definition=ereg_replace($ton_mot,"<A href="ta_page.php?mot=".$ton_mot.">".$ton_mot."</A>,$ta_definition);
    (desole, je suis en cours, peux pas trop rester sur dev.net >_<)

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Les deux marchent très bien mais une chose important que vous avez oublié il faut d'abord vérifier si le mot a été déjà enregistré dans la table pour faire un lien avec, sinon ça renverrait vers une page qui n'existe pas il y a une fonction qui s'appelle preg_replace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $texte= "developpez.net La plus grande base de connaissances des développeurs";
     
    $texte = preg_replace('`\b((developpez.net)s?)\b`si','<strong><a href="http://www.developpez.net">$1</a></strong>',$texte);
     
    print $texte ;
     
    ; ?>
    ça c'est clair et facile oui je sais
    mais que dois-je faire pour que celle-ci fonctionnera avec ma page ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php 
     
    require('config.php');
    $req= mysql_query("SELECT * FROM ma_table  WHERE mot='$search' OR clef1='$search' OR clef2='$search' OR clef3='$search' OR clef4='$search' ");
    while($donnee= mysql_fetch_array($req))
     
     
    {
     
    ?>
     
     
    <table border="0" width="500"  bordercolor="#000000" align="center" cellspacing="10">
     
    		<tr valign="top">
    			<td>
    			<p align="left"><?php echo $donnee['mot']; ?></td>
    			<td width="297">
    			<p align="right"><b><?php echo $donnee['def']; ?></td>
    		</tr>
     
     
     
    </table>
    <?php
    }
    mysql_close();
     
    ?>

  7. #7
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    mais une chose important que vous avez oublié il faut d'abord vérifier si le mot a été déjà enregistré dans la table pour faire un lien
    Il ne faut quand même pas exagérer !!!

    Bref, tu peux faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php foreach($definition as $lien_mot) { 
    			$requete = mysql_query("SELECT * FROM ma_table WHERE mot='$lien_mot' ";
    			$total_row = mysql_num_rows($requete);
    			?>
    			<?php if($total_row > 0) { ?><a href='mapage.php?mot=<?php echo $lien_mot; ?>'><?php echo $lien_mot; ?></a> <?php }?>
                <?php if($total_row == 0) { ?><?php echo $lien_mot; ?> <?php }?>
                <?php }?>

Discussions similaires

  1. comment générer des lignes automatique
    Par kikinouqc dans le forum Modélisation
    Réponses: 7
    Dernier message: 12/02/2008, 22h36
  2. [FTP] Qui a le scrit pour créer des liens automatiques ?
    Par JackBeauregard dans le forum Langage
    Réponses: 4
    Dernier message: 03/07/2006, 20h37
  3. Générer des rochers automatiquement
    Par ymerej dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 06/06/2006, 12h04
  4. Réponses: 5
    Dernier message: 24/01/2006, 01h16
  5. créer des liens automatiquement mais sans boucle
    Par psychoBob dans le forum Langage
    Réponses: 8
    Dernier message: 15/12/2005, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo