Bonjour,
Dans le code que tu nous montre, "2" est l'id de l'article que tu veux afficher.
Si tu veux faire une seule page qui peut afficher tout les articles de ta base, il faut que tu sois capable de passer cet id à ta page et de le recupérer dans ton code pour pouvoir rendre ta page dynamique.
Prennons un exemple : sur la liste de tes articles, tu as 5 articles, numérotés de 1 à 5.
Tu veux tous les rediriger sur la page
http://www.monsite.com/affiche_article.php.
Afin que la page affiche_article.php sache quel article afficher, il faut que tu lui indiques, en passant un paramètre, de cette manière :
De cette manière, tu demandes l'affichage de l'article dont l'id est 1.
Maintenant, dans la page "affiche_page", il faut que tu récupères ce paramètre. Comme le paramètre en question est dans l'URL, il va être disponible à PHP dans la variable $_GET['id_article']
Une fois cet id récupéré, tu peux le passer à ta requête pour que la requête récupère l'article dont l'id est passé en paramètre
ATTENTION : ceci est le principe de base, que j'ai volontairement laissé simple pour que tu puisse comprendre. Or, il faut que tu ajoutes quelques notions de sécurité.
Actuellement, on récupère directement ce qui est dans l'url et on le passe à la requete, sans aucune protection. Cette manière de faire est très dangereuse.
Nous devons donc protéger ce qui viens de l'url pour que si un petit malin tente des choses, que ça ne réussisse pas. Pour cela, il suffit de protéger ta variable avec mysql_real_escape_string()
$id_article = mysql_real_escape_string( $_GET['id_article'] );
$sql="SELECT * FROM biens WHERE id='".$id_article."'";
Le code final ressemblera donc à ça :
<?php
$id_article = mysql_real_escape_string( $_GET['id_article'] );
$sql="SELECT * FROM biens WHERE id='".$id_article."'";
$resultat = mysql_query($sql) or die ('Erreur '.$sql.' '.mysql_error());
while ($ligne = mysql_fetch_assoc($resultat)) {
?>