je suis toujours à PHP4 pour le moment. J'voudrais afficher mes articles sur une page et cliquer sur le titre pour aller sur ?id=nombre et afficher la news concernée avec $_GET
La table s'appelle news il y a id titre auteur contenu
Après avoir fini le blog en PHP4 je le ferais en PDO mais j'apprend php avec cette solution ! Merci à ceux qui m'aideront.

14 réponses


JeremDevWeb
Auteur
Réponse acceptée

J'ai trouvé la solution merci pour votre aide les développeurs ;)

<?php
require 'global.php';
$bdd = mysql_connect($host,$user,$pass);
    mysql_select_db($db,$bdd);
        $id = intval(mysql_real_escape_string($_GET['id']));
        $sql = "SELECT * FROM news WHERE id='$id'";
        $req = mysql_query($sql);
        while($donnees = mysql_fetch_array($req)) {
            echo $donnees['titre'];
        }
        if(empty($_GET['id']) =="index") {
            header('Location:index.php');
        }
?>

Tu n'arrives pas à quoi ? Faire ta requête ? Si c'est ça tu n'es pas dans la bonne section.

Sinon pour récupérer tes news :

SELECT id, titre, auteur, contenu FROM news ORDER BY id DESC

Ensuite tu boucles en PHP avec un foreach et tu crées ton lien avec l'ID de chaque news récupéré... Rien de bien sorcier.
Pour afficher l'article complet sur ta nouvelle page, tu peux faire un :

SELECT id, titre, auteur, contenu FROM news WHERE id = $ton_id

Procédure :

  • Une requête pour récupérer les éléments de la table news
  • Une boucle foreach pour afficher les résultats de celle-ci
  • Dans la boucle, crée un lien vers la nouvelle page:
    <a href="article.php?id=<?= $data->id; ?>" ><?= $data->-titre; ?></a>

$id n'est pas affecté. Il faut lui passer $_GET['id']

Peux-tu envoyer le code complet à partir de chez toi quand tu pourras pour qu'on sache quelles erreurs corriger. Merci
Hugo

J'suis sur pc voici le code :

<?php
if(isset($_GET['id'])) {
    $bdd = mysql_connect($host,$user,$pass);
    mysql_select_db($db,$bdd);
    $sql="SELECT FROM news WHERE id={$_GET['id']}";
    $req = mysql_query($sql);
    while($donnees = mysql_fetch_array($req) {
    }
}
?>

Le code voilà ;) Quelqu'un peut m'aider?

Donc j'veux que en tapant ?id=1 par exemple sa affiche la news 1 et quand j'vais sur index.php sa affiche tous les articles mais j'arrive pas sa donne l'erreur : Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in.
Malheureusement j'ai cherché l'erreur sur internet je comprends pas..

Salut sa marche pas :( Quelqu'un peut essayer le code chez lui avec une bdd rapide?

$sql = 'SELECT * FROM news WHERE id=\'' . intval($_GET['id']) . '\'';

il manquait les champs sélectionnés dans ta requête et je ne suis pas fan des doubles quotes pour une requête ;) (avis perso)

Vous voulez pas qu'on fasse votre site non plus. Il faut essayer de chercher quand il y a des erreurs.

carouge ici c'est un forum pour aider...donc ;)

Rien de méchant, mais quand je lis "j'voudrais... je veux...", c'est plus de l'exigeance que de l'aide.

sa marche mais sa fais bien 10 jours que je trouve pas la solution alors j'voudrais savoir ;)

Dans une requête SQL tu dois spécifier les champs à selectionner. Tu pourrais donc faire :

$sql = "SELECT id,title FROM news);

Hugo