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 :

href d'une donnée de ma table vers une autre donnée de ma table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut href d'une donnée de ma table vers une autre donnée de ma table
    Bonjour,

    Je suis en train de réaliser un site en php/mysql et il y a dans ce site une apge de news. Voici la table:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE `news` (
      `id` int(100) NOT NULL auto_increment,
      `date` varchar(15) character set utf8 collate utf8_unicode_ci NOT NULL,
      `title` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL,
      `description` varchar(1000) character set utf8 collate utf8_unicode_ci NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

    Je souhaite sur une première page afficher juste la date et le titre de la news, en référence a la description de celle-ci. Voici le code de ma premiere 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
     
    <?php
    include("config/dbconnect_up.php");
    $sql = "SELECT * FROM news ORDER BY id DESC";
    $req = mysql_query($sql) or die("Erreur SQL !".$sql."".mysql_error());
    echo '<br /><table>';
    while ($data = mysql_fetch_array($req)){
    echo '<tr><td><a href="index.php?dir=&page=news_descr">';
    echo $data['date'];
    echo '</a></td><td>';
    echo $data['title'];
    echo '</td></tr>';
    }
    echo '</table>';
    ?>
    Chaque news faisant référence a sa description dans cette page:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo $data['description'];
    ?>
    J'espere avoir été assez clair, merci de m'aider, a+

  2. #2
    Membre régulier
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Points : 82
    Points
    82
    Par défaut
    Salut, à première vue tes deux premiers bout de code me semblent bon. Le troisième est sur une autre page?

    Si oui fait un formulaire (GET ou POST) et met un champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='hidden' name='id_news' value='<?php echo $data['id']; ?>'/>
    puis un submit.

    Sur la seconde page tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_news=$_POST['id_news']; //ou $_GET['id'news'];
    puis refait un select pour récupérer le contenue de ta news dans la base de donnée


    De plus, je te conseil de mettre le nom de tes champs plutôt que '*', tu vera mieux ce que tu fait et tu ne prendra pas des valeur inutiles, ici dans ta première page tu n'utilise pas 'description' qui est quand même lourd!!

    J'espère ne pas être hors sujet !

    bonne chance à toi !

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut litlechicken !!

    Merci pour ta réponse, ca m'a fait deja bien avancé ! Excuse moi de repondre que maintenant mais je pensais que j'allais etre averti par mail quand il y aurait une réponse et ce que aujourd'hui que je vois que tu m'a répondu !

    Bref, il y a bien en effet une troisième page appellé, voici le code que j'y ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if($_POST && !empty($_POST['id_news']))
    {
    	include("config/dbconnect.php");
    	$id_news=$_POST['id_news'];
    	$sql = "SELECT description FROM news WHERE id=$id_news";
    	$req = mysql_query($sql) or die("Erreur SQL !".$sql."".mysql_error());
    	echo $data['description'];
    }
    else
    	echo 'marche pas !';
    ?>
    Le submit sur ma page précédente envoie bien la variable globale id_news car nous rentrons dans mon "if" et non dans mon "else". Par contre rien ne s'affiche et je crois que cela est du a ma requete sql. Il n'y a pas d'erreur SQL mais je pense qu'il n'arrive pas a reconnaitre ma condition "WHERE". J'ai tenté avec des entrecote, des guillemets, mais rien n'y change.

    Sais tu comment formuler cette requete?

    Merci bien en tout cas, a la prochaine !

  4. #4
    Membre régulier Avatar de nimbus_77
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par <-mini-> Voir le message
    Salut litlechicken !!

    Merci pour ta réponse, ca m'a fait deja bien avancé ! Excuse moi de repondre que maintenant mais je pensais que j'allais etre averti par mail quand il y aurait une réponse et ce que aujourd'hui que je vois que tu m'a répondu !

    Bref, il y a bien en effet une troisième page appellé, voici le code que j'y ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
     
    if($_POST && !empty($_POST['id_news']))
    {
    	include("config/dbconnect.php");
    	$id_news=$_POST['id_news'];
    	$sql = "SELECT description FROM news WHERE id=$id_news";
    	$req = mysql_query($sql) or die("Erreur SQL !".$sql."".mysql_error());
    	echo $data['description'];
    }
    else
    	echo 'marche pas !';
    ?>
    Le submit sur ma page précédente envoie bien la variable globale id_news car nous rentrons dans mon "if" et non dans mon "else". Par contre rien ne s'affiche et je crois que cela est du a ma requete sql. Il n'y a pas d'erreur SQL mais je pense qu'il n'arrive pas a reconnaitre ma condition "WHERE". J'ai tenté avec des entrecote, des guillemets, mais rien n'y change.

    Sais tu comment formuler cette requete?

    Merci bien en tout cas, a la prochaine !
    Déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ....
    //simple cote sur la variable $id_news
            $sql = "SELECT description FROM news WHERE id='$id_news' ";
           	$req = mysql_query($sql) or die("Erreur SQL !".$sql."".mysql_error());
    //charger le résultat : 
                 while ($data = mysql_fetch_array($req))
                     {
    // et appeler le champs 'description' ainsi : 
                 echo $data->description  ;
                      }
    cela ira mieux peut être,

    et fait un echo sur ta récupération pour vérifier ce que tu récupère (ce n'est pas parce que ton $_POST n'est pas vide qu'il renvoi ce que tu attends) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if($_POST && !empty($_POST['id_news']))
    	$id_news=$_POST['id_news'];
            echo  $id_news;
    Avant même de lancer ta requète.

    Si cela peut aider

    nimbus

    PS : le tag 'code' se entre [ ] et pas entre < >
    <reve>Quand je serais grand je f'rais TOUT avec une seule ligne de commande</reve>

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut, merci bien pour la réponse, c'est vrai que ca marche mieux avec tout ca !

    j'étais vraiment mal reveillé pour avoir oublié "$data = mysql_fetch_array($req)" , c'est un peu difficile de vouloir afficher un echo $data['description']; si je lui disait pas ce que c'est que data !!!

    ca marche niquel maintenant mais avec ta technique du echo $id_news; je me suis rendu compte que ma page précédente avait un problème

    J'affiche tout le temps la meme nouvelle, voici le code de ma page precedente (avec les bonnes balises )

    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
    <?php
    include("config/dbconnect.php");
    $sql = "SELECT date,title,id FROM news ORDER BY id DESC";
    $req = mysql_query($sql) or die("Erreur SQL !".$sql."".mysql_error());
    echo '<form method="post" action="index.php?dir=&page=news_descr">';
    echo '<br /><table cellspacing="10" style="margin-left:100px; width:600px;">';
    while ($data = mysql_fetch_array($req)){
    echo '<tr><td>';
    echo $data['date'];
    echo '</td><td>';
    echo $data['title'];
    echo '<input type="hidden" name="id_news" value="';
    echo $data['id'];
    echo '"/></td><td><input type="submit" value="voir plus" name="valid"/></td></tr>';
    }
    echo '</table></form>';
    ?>
    J'ai bien un bouton submit a chaque news mais tous envoi le meme id vers mon autre page...

    A la prochaine, ciao

  6. #6
    Membre régulier
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Points : 82
    Points
    82
    Par défaut
    tu dois faire un form par bouton puisque ton (tes) 'hidden' possede(nt) le même identifiant !!!! donc tu recupère un seul vu qu'ils sont TOUS liés au même submit
    d'où la nécessité d'un submit par ID ^^

    de plus pour ton problème de cote sur la requette avec $variable à la fin tu peux faire $requette = 'balbla ='.$tavariable;

    bonne chance.

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Excellent !!!!!!!!!!!!!

    Merci a vous deux, ca marche super !! Premier site que je fais, désolé si mes questions ne parraissaient pas tres durs !

    Sujet résolu, a la prochaine et bonne continuation !!

  8. #8
    Membre régulier
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 71
    Points : 82
    Points
    82
    Par défaut
    aucune questions ne parrait dur si on l'as déjà résolut, ta question repose sur un truk que j'ai fait dans le mois donc ca aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Transferer des données d'un table vers une autre
    Par pooi1 dans le forum VBA Access
    Réponses: 4
    Dernier message: 31/05/2007, 01h05
  2. Réponses: 4
    Dernier message: 25/01/2007, 13h38
  3. copie données d'une table vers une autre
    Par wasaa dans le forum Access
    Réponses: 5
    Dernier message: 14/09/2006, 17h04
  4. [PostGreSQL] Transfert de données d'un table vers une autre
    Par psychomatt dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/03/2006, 16h57
  5. copier une table vers une autre base de données
    Par Herveg dans le forum Oracle
    Réponses: 3
    Dernier message: 11/01/2005, 14h20

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