Aide MySQL

Par JeremDevWeb, il y a 11 ans


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, il y a 11 ans

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

Alexandre #lbac, il y a 11 ans
$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)

Carouge10, il y a 11 ans

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

JacobDelcroix, il y a 11 ans

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
Carouge10, il y a 11 ans

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>
Carouge10, il y a 11 ans

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

hugopb82, il y a 11 ans

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

JeremDevWeb, il y a 11 ans

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?

JeremDevWeb, il y a 11 ans

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..

JeremDevWeb, il y a 11 ans

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

Carouge10, il y a 11 ans

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

JeremDevWeb, il y a 11 ans

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

hugopb82, il y a 11 ans

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

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

Hugo

JeremDevWeb, il y a 11 ans

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'); } ?>