Passage avec paramétre id en PHP AIDE SVP

ALLOUCHLARBI Messages postés 7 Statut Membre -  
IpIpIpIpOne Messages postés 480 Statut Membre -
Bonjour,

Je suis débutant en PHP et j'ai un problème au niveau d'un projet qu'on viens de me confier, je vous expose mon problème on attendant de l'aide de votre part et MERCI :

Ecrire le code HTML et php du fichier affiche.php qui permet d’afficher dans un tableau tous les enregistrements d'une table. En face à chaque enregistrement, il faut ajouter un lien HTML sur supprimer vers les fichier Supprime.php avec un paramètre id dont la valeur est celle du champ ID_VISITEUR de
l ‘enregistrement en cours de la table visiteurs.

Je vous fais un copier/coller du fichier Affiche.php :

<center><table border="1" bgcolor="#00ffc0">
<?php

$c=mysql_connect("localhost","root","mysql");
$db=mysql_select_db("livre",$c);
$req="SELECT * From visiteurs";
$res=mysql_query($req,$c);
$id = (int) $_GET['id'];
while($ligne=mysql_fetch_row($res))
{

echo"<tr>";
for($i=0;$i<mysql_num_fields($res);$i++)
echo"<td>",$ligne[$i],"</td>";

echo"<td>";
echo"<a href=\"Supprime.php?id='$id'\">SUPPRIMER","</a>";
"</td>";

echo"</tr>";
}
?>

Le fichier Supprime.php :

<?php

$c=mysql_connect("localhost","root","mysql");
$db=mysql_select_db("livre",$c);

if(isset($_GET['id']))
{
$sql="DELETE FROM visiteurs WHERE ID_VISITEUR = '$id'";
$query = mysql_query($sql) or die(mysql_error());
header('Location: Affichage.php');
}
?>


Merci de bien vouloir m'aider j'en serai trés reconnaissant. BOnne journée.
A voir également:

12 réponses

IpIpIpIpOne Messages postés 480 Statut Membre 116
 
<?php

$c=mysql_connect("localhost","root","mysql");
$db=mysql_select_db("livre");
$req="SELECT pseudo_visiteur,id_visiteur FROM visiteurs";
$res=mysql_query($req);
echo '<table>';
while($ligne=mysql_fetch_array($res))echo '<tr><td>'.$ligne['pseudo_visiteur'].'</td><td><a href="Supprime.php?id='.$ligne['id_visiteur'].'">SUPPRIMER</a></td></tr>";
echo '</table>';

?>
0
ALLOUCHLARBI Messages postés 7 Statut Membre
 
Merci pour ta réponse IpIpIpIpOne :( mais ca marche toujours pas.. j'aimerai bien avoir une reponse plus claire vu que je suis un débutant en PHP..
Me dire carement quoi modifier dans le fichier affichage.php ainsi que le fichier supprime.php , ET MERCI encore une fois.
0
IpIpIpIpOne Messages postés 480 Statut Membre 116
 
<center><table border="1" bgcolor="#00ffc0">
<?php

$c=mysql_connect("localhost","root","mysql");
$db=mysql_select_db("livre",$c);
$req="SELECT * From visiteurs";
$res=mysql_query($req,$c);
//$id = (int) $_GET['id'];
//ca ça sert à rien
while($ligne=mysql_fetch_row($res)){
//plutôt uliser mysql_fetch_array()
echo"<tr>";
//for($i=0;$i<mysql_num_fields($res);$i++)
//echo"<td>",$ligne[$i],"</td>";
//ca je vois pas top à quoi ça sert


echo"<td>";
//echo"<a href=\"Supprime.php?id='$id'\">SUPPRIMER","</a>";
//tu dois aller récupérer l'id du visiteur dans le résultat de ta requête sql et les ' autour de id sont pas utiles
//-> echo "<a href=\"Supprime.php?id=$ligne['id_visiteur']\">SUPPRIMER</a>";

"</td>";

echo"</tr>";
}
//echo '</table>';
?>

Le fichier Supprime.php :

<?php

$c=mysql_connect("localhost","root","mysql");
$db=mysql_select_db("livre",$c);

if(isset($_GET['id']))
{
$sql="DELETE FROM visiteurs WHERE ID_VISITEUR = '$id'";
$query = mysql_query($sql) or die(mysql_error());
header('Location: Affichage.php');
//ça ça me parait bon mais par facilité, c'est plus lisible de mettre la "structure" de ta requête sql en majuscules et les noms de tes champs en minuscules.
}
?>

Essaye aussi d'éviter les majuscules dans les noms de tes fichiers.

J'espère avoir été un peu plus clair cette fois-ci.

Cordialement,

IpIpIp Ipone
0
ALLOUCHLARBI Messages postés 7 Statut Membre
 
Merci beaucoup pour ton aide cher IpIpIpIpOne. J'ai eu ce message d'erreur ca peux etre du a quoi STP ?


Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\TP PHP\TP 1 PHP\Affichage.php on line 20
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
IpIpIpIpOne Messages postés 480 Statut Membre 116
 
On pourrait sans doutes t'aider plus facilement si tu disais quelle est la ligne 20 dans ton script ... et dans quel fichier ...

Il s'agit certainement d'un " ou d'un ' mal placé ou mal fermé.
0
ALLOUCHLARBI Messages postés 7 Statut Membre
 
Oops je m'excuse :) alors voila la ligne :

LIGNE20 = echo "<a href=\"Supprime.php?id=$ligne['ID_VISITEURS']\">SUPPRIMER</a>";

fichier affichage.php

MERCIIII
0
IpIpIpIpOne Messages postés 480 Statut Membre 116
 
Essaye

echo '<a href="Supprime.php?id='.$ligne['ID_VISITEURS'].'">SUPPRIMER</a>';

Niveau performance, c'est (légèrement) mieux de faire comme ça. Vu que tu débutes, autant que tu prennes directement les bonnes habitudes. Plutôt que d'utiliser des points pour relier tes variables et tes chaines de caractères, tu peux aussi plutôt utiliser des virgules (avec echo).

echo '<a href="Supprime.php?id=',$ligne['ID_VISITEURS'],'">SUPPRIMER</a>';
0
ALLOUCHLARBI Messages postés 7 Statut Membre
 
Alors voila j'ai suivi tes instructions à la lettre, à priori ça marche le tableau s'affiche mais y'a une notice juste au dessus du liens SUPPRIMER ou y'a ecris :

Notice: Undefined index: ID_VISITEURS in C:\TP PHP\TP 1 PHP\Affichage.php on line 20
toujours par rapport à la ligne 20

quand je clique sur supprimer.. y'as pas de supression c'est normal je crois.. je sais pas pourquoi il reconnait pas ID_VISITEUR alors qu'elle est déclaré dans la table de la BD.

un dernier petit truc IpIpIpIpOne STP, dans le fichier supprime.php :

if(isset($_GET['id'])) // $_GET['id'] ou $_GET['ID_VISITEUR'] ??
{
$sql="DELETE FROM visiteurs WHERE ID_VISITEUR = '$id'"; // $_GET['id'] ou $_GET['ID_VISITEUR']
$query = mysql_query($sql) or die(mysql_error());

Merci pour ton aide cher ami !!
0
IpIpIpIpOne Messages postés 480 Statut Membre 116
 
Bon, ça rame ferme il me semble ... t'aurais pas brossé quelques cours par hasard ? ;)

Notice: Undefined index: ID_VISITEURS in C:\TP PHP\TP 1 PHP\Affichage.php on line 20
toujours par rapport à la ligne 20


Ben ça c'est certainement parce que le nom du champ est incorrect.

SELECT id_visiteurs FROM table (id_visiteurs doit correspondre au nom d'un des champs de ta table !)

if(isset($_GET['id'])) // $_GET['id'] ou $_GET['ID_VISITEUR'] ??

Ca c'est comme tu veux, mais ici, on a choisi d'utiliser '$_GET['id']' (echo '<a href="Supprime.php?id='.$ligne['ID_VISITEURS'].'">SUPPRIMER</a>';)

On aurait pu tout aussi bien utiliser $_GET['ID_VISITEUR'] mais on aurait du faire alors : echo '<a href="Supprime.php?ID_VISITEUR='.$ligne['ID_VISITEURS'].'">SUPPRIMER</a>';

$_GET est un tableau 'superglobal' qui permet d'accéder aux variables contenues dans l'url de la page (les variables sont placées après le '?' et séparés par des '&')

Allez, ami Terrien, courage !
0
ALLOUCHLARBI Messages postés 7 Statut Membre
 
je te promet cher ami que j'ai suivi toute tes instruction à la lettre j'ai résolu le blem de la notice, par contre la fonction supprimer elle marche pas :( :(

Voici l'attribution du parametre id dans affichage.php:

echo '<a href="Supprime.php?id='.$ligne['ID_VISITEUR'].'">SUPPRIMER</a>';



SUPPRIME.PHP

<?php

$c=mysql_connect("localhost","root","mysql");
$db=mysql_select_db("livre",$c);

if(isset($_GET['id']))
{
$sql="DELETE FROM visiteurs WHERE ID_VISITEUR = '$id'";
$query = mysql_query($sql) or die(mysql_error());
header('Location: Affichage.php');

}
?>

alors que tout est NIKEL :(
0
ALLOUCHLARBI Messages postés 7 Statut Membre
 
C'est bon ca marche il manquait juste une petite déclaration dans supprime.php :


$id= (int) $_GET['id'];


Merci pour ton aide. Merci pour ce forum. Vous êtes les meilleurs !!!
0
IpIpIpIpOne Messages postés 480 Statut Membre 116
 
J'étais le meilleur ... je sens que je ne vais pas tarder à me faire virer d'ici :D
0