Problème pour supprimer une ligne dans ma BDD

Répondre
Choumi
le 28/06/2013 à 15:36
Choumi
Bonjour
Je débute en PHP et j'ai un problème sur mon script pour effacer une ligne sur ma base et dans l'affichage de mon tableau
Quelqu'un pourrait il m'aider SVP
Merci
<?php require_once('config.php'); 
//Connexion à la base de donnée
$db_link = @mysql_connect(SQL_SERVER,SQL_USER,SQL_PASS);
mysql_select_db(SQL_BDD); ?>
<?php
//-----------------------------commandes suppression donnees bd
if (isset($_GET['suppr']))
{
$requete2="DELETE FROM ma_base WHERE id='".$_GET['id']."'";
mysql_query($requete2);
}

//-----------------------------commandes extraction donnees bd

$requete="SELECT * FROM ma_base ORDER BY date";
$resultat=mysql_query($requete);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>

<body>
<!--------------------------------tableau de donnees------------>
<table width="622" border="1">
<tr>
<td width="50">Date</td>
<td width="44">Heure</td>
<td width="127">Nom</td>
<td width="77">Téléphone</td>
<td width="103">Email</td>
<td width="55">Quantité</td>
<td width="51">Place</td>
</tr>

<tr>
<?php
//---------------------------boucle de recuperation des donnees base-------------
while($monborestau_clients=mysql_fetch_array($resultat)) { ?>
<td><?php echo $ma_base ['date']; ?></td>
<td><?php echo $ma_base ['heure']; ?></td>
<td><?php echo $ma_base ['nom']; ?></td>
<td><?php echo $ma_base ['telephone']; ?></td>
<td><?php echo $ma_base ['email']; ?></td>
<td><?php echo $ma_base ['quantite']; ?></td>
<td><?php echo $ma_base ['emplacement']; ?></td>
<td width="63"><a href="index.php?ref=<?php echo $ma_base ['id']; ?>&suppr=ok">Suppr</a></td>
</tr>
<?php } ?>
</table>
</body></p>
Michel
Choumi
le 28/06/2013 à 16:16
Choumi
Oups ! J'ai oublié les balises pour entourer mon code !

(edit admin: ben évite de dupliquer ;) )
Michel
LupusMic
le 29/06/2013 à 05:45
LupusMic
Elle sort d'où la variable $ma_base ?

Tu devrais activer l'affichage des erreurs et mettre au niveau le plus élevé possible l'affichage des erreurs. Directives de configuration error_reporting, html_errors et display_errors.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Choumi
le 29/06/2013 à 10:04
Choumi
Bonjour et merci de vous penchez sur mon problème.
ma_base c'est le nom provisoire de ma base de donnée sql.
Je précise que ce script fonctionne très bien en ce qui concerne l'affichage du tableaux de données, lesquelles sont injectées dans la BDD par un autre script sur une autre page.
Mon seul problème est que le code(récupéré à partir d'un autre script)pour effacer les lignes du tableaux ne fonctionne pas, quand je clique sur le lien "suppr" rien ne se passe mais il n'y a pas non plus de message d'erreur.
Dernière précision, ce script a été créé à partir d'un autre qui fonctionner très bien, je n'ai changé que les variables telles que nom de table etc...
Je débute et je ne suis pas encore capable de créer de toutes pièces un script !
Michel
Choumi
le 29/06/2013 à 10:21
Choumi
Oups je viens de me rendre compte que j'ai changé le nom de ma base par "ma_base" sauf dans mysql fetch array, sorry !
Michel
Choumi
le 29/06/2013 à 10:27
Choumi
Cela dit "monborestau_clients" est aussi un nom provisoire !
Michel
LupusMic
le 30/06/2013 à 03:22
LupusMic
On s'en fiche que le nom de la variable soit provisoire ou non.

Si je parle d'une variable, ce n'est pas du nom de la base que je demande. Donc le code que tu as exposé, la variable $ma_base sort de nulle part, ce qui fait qu'on ne sait pas à quoi elle correspond.

On s'en cogne que le code « fonctionne » dans d'autres conditions.

C'est normal qu'aucun message d'erreur ne s'affiche, puisque tu ne gères pas les erreurs : je t'invite à lire la documentation de mysql_query à ce sujet (code retour).
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Choumi
le 30/06/2013 à 11:01
Choumi
A l'attention de Monsieur LupusMic.
BONJOUR (on appelle cela de la politesse !)
Ensuite je précise à nouveau : Je suis DE-BU-TANT en PHP sinon je ne serai pas à demander de l'aide sur ce forum !
Au risque de me répéter, mon code fonctionne très bien tel qu'il est à l'exception de la fonction DELETE et comme je DEBUTE je ne sais pas comment gérer les erreurs.
Je vais donc prendre le temps de lire la doc de mysql_query et attendre que quelqu'un de COURTOIS ET PATIENT veuille bien se pencher sur mon problème, sinon j'irai voir sur d'autres forum ou la Netiquette est de mise.
CORDIALEMENT
Michel
LupusMic
le 01/07/2013 à 09:36
LupusMic
La netiquette précise justement qu'on dit bonjour quand on initie une discussion, mais qu'ensuite on s'abstient parce que c'est lourd et inutile dans une discussion.
C'est à celui qui mendie de l'aide qui doit faire preuve de politesse.

S'il fonctionne très bien tu n'as pas besoin d'aide.

Je m'en fiches que tu sois débutant : si je suis sec c'est parce que c'est nécessaire, et que l'erreur est évidente à trouver en suivant mon conseil.

Si tu préfère des forums où les gens te cire les pompes en ne t'apportant pas d'aide, vas-y donc.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Keika
le 01/07/2013 à 09:56
Keika
J'adore!

Suis pas venu sur le forum depuis des annees mais je vois que l'ambiance est toujours au beau fixe!

Alors pour aider le jeune homme.

1: C'est etonnant que ton tableau fonctionne car on ne voit nul part ou est $ma_base declaree. Lupusmic t'as demande d'ou venait "$ma_base", avec le symbole $, ce qui signifie la variable.\, pas le nom de ta BDD.

2: Tu as un morceau de SQL. Tu essayes d'effacer une ligne, mais tu lui donnes un delimiteur ID. Mais est-ce que cet ID est defini? Peut etre faut-il chercher autour de ca? Tu sais comment faire un echo? Peut etre peux-tu verifier si tout ce dont tu as besoin est bien envoye correctement avant d'effacer quoi que ce soit..?

3: Ne verifier que si un GET est present pour un effacement en BDD n'est pas securise du tout. Tout le monde peut taper dans une URL www.tonbeauresto.com?suppr=ok. Je suggere que tu verifies quelque chose d'autre avant d'effacer une ligne.

Bon courage.
Le PHP --> C'est dur !
Répondre
LoadingChargement en cours