Problème pour supprimer une ligne de ma base de donnée

Résolu
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011
- 1 juin 2009 à 14:26
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011
- 29 juin 2009 à 17:19
Bonjour à tous,
Voici mon problème, je n'arrive pas à supprimer une ligne dans ma base de donnée quand je clique sur une image.
Je pense que c un problème de variable mais je n'arrive pas à le résoudre. Si quelqu'un pouvai m'aider sa serai cool merci.
voici mon code:

    <?php
    $i=0;
    while ( $compo=mysql_fetch_array($result))
        {
            if($i%2) $color=white;            //color une ligne sur deux
            else $color=aqua;
            $i++;
            echo"<tr bgcolor=$color>";
            echo"<td width='10%'>".$compo['nom']."</td>";
            echo"<td width='10%'>".$compo['prenom']."</td>";
            echo"<td width='8%'>".$compo['organi']."</td>";
            echo"<td width='10%'>".$compo['interlocuteur']."</td>";
            echo"<td width='10%'>".$compo['status']."</td>";
            echo"<td width='10%'>".$compo['adresse']."</td>";
            echo"<td width='8%'>".$compo['postale']."</td>";
            echo"<td width='10%'>".$compo['ville']."</td>";
            echo"<td width='8%'>".$compo['telephone']."</td>";
            echo"<td width='10%'>".$compo['fax']."</td>";
            echo"<td width='10%'>".$compo['mail']."</td>";
            echo"<td width='10%'>".$compo['internet']."</td>";
            echo"<td width='50%'>".$compo['objet']."</td>";
            echo"<td>MON PROBLEME VIENT DE CETTE LIGNE
</td>";
            echo"</tr>";
        }
 echo"</table>";
 mysql_close();
}

La ligne en question appel une page ici supp.php:

<?php
include ("config.php");
$link=mysql_connect($host,$login,$pass) or die(mysql_error());
 if (!$link) {
                die('Impossible de se connecter : ' . mysql_error());
             }

 // Rendre la base de données contact, la base courante
 $db_selected = mysql_select_db('ilo_kids', $link);
 if (!$db_selected) {
                     die ('Impossible de selectionner la base de donnees : ' . mysql_error());
                    }

$sql="DELETE FROM contact WHERE telephone=".$_GET['ref'].";";
mysql_query($sql)or die(mysql_error());
header("Location: contactprivee.php");
?>

Si vous avez des solutions n'hésitez pas, g planché pas mal de tps, je suis sur que la solution est simple

16 réponses

matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

29 juin 2009 à 17:19
C bon, je vient de trouver !
La page de suppression ne recevait rien donc je me suis penché sur la page d'envoie.
Après quelques recherches g remarqué que j'avais des erreurs de slache.

Merci pour ton aide
3
nautilus99
Messages postés
661
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
1 juin 2009 à 18:08
Que racont ele mysql_error ?

A priori, le numéro de téléphone doit être déclaré en char ou varchar dans ta base..
dans ce cas, il manque les single quotes:

$sql="DELETE FROM contact WHERE telephone='".$_GET['ref']."'";
0
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

3 juin 2009 à 08:32
j'ai effectué les modifications mais cela ne supprime rien, je ne comprend pas car quand je fait une requète direct sur ma base de donnée mysql, sa supprime bien, est ce que sa serai un problème de connection? je ne pense pas, car sinon il m'afficherai un message d'erreur.
0
nautilus99
Messages postés
661
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
3 juin 2009 à 12:26
Et en mode debug, un echo de ton sql généré, puis test de ce sql généré en ligne de commande ou dans phpmyadmin ?
0

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

Posez votre question
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

3 juin 2009 à 14:04
C bon! Merci beaucoup pour ta première réponse. j'avais bien un problème de type. et normal que je ne pouvais pas effacé car les lignes déjà présente que je voulait effacé était en int. Merci pour ton aide. bonne journée
0
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

14 juin 2009 à 00:07
la suppression d'une ligne en fonction d'un élément fonctionne mais seulement si il est vide. est ce que je doi changer de type de variable dans ma table? si oui , pourquoi?
0
nautilus99
Messages postés
661
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
14 juin 2009 à 11:45
Bonjour,

Tentes d'être clair, est-ce qu etu veux dire que la ligne ne s'efface que si les éléments sont vides ?
Dans ce cas, regardes bien (un echo par exemple) ta requête avant d el'exécuter, il ets probable que la clause WHERE n'est pas réellement comme tu la penses.
0
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

15 juin 2009 à 08:24
bonjour,
oui c bien sa, la ligne ne se supprime que lorsque le champ sélectionné (ici telephone) est vide.sinon, qu'est ce que tu entend par la clause WHERE n'est pas réellement comme je penses?
0
nautilus99
Messages postés
661
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
15 juin 2009 à 10:03
Bonjour,

Ce qu ej'entends par là, c'est qu'en regardant le code généré, et en le testant en direct, on peut souvent trouver des erreurs d'inatention, ou de champs de saisie pas controlés, d'où dans ces cas là, un exament direct de la requête permet de déterminer où est l'erreur.
En particulier, si le champ choisi n'est accepté que s'il est vide, il doit y avoir un problème avec le passage de paramètres.
0
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

15 juin 2009 à 12:08
alors, j'ai essayé de faire en direct la requète sur ma base de donné et sa fonctionne, donc mon problème est le fait de prendre et d'utiliser la variable telephone.

donc mon problème ma variable

echo"<td></td>";
$sql="DELETE FROM contact WHERE telephone='".$_GET['ref']."'";
0
nautilus99
Messages postés
661
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
15 juin 2009 à 15:08
Oui, il te faut tracer depuis ton formulaire et savoir pourquoi elle ne passe pas. Est-ce bien un $_GET ou un $_POST ?
0
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

15 juin 2009 à 18:59
C'est un $_GET qui récupère la variable enregistrer par $data
0
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

29 juin 2009 à 10:55
Pas d'aide?
0
nautilus99
Messages postés
661
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
29 juin 2009 à 11:42
En lisant et relisant ton code:

$data['telephone']



ne devrait pa sêtre plutôt :

$compo['telephone']

dans le formulaire ? Auquel cas, ç aexpliqureait totalement le fait que ta variable $_GET soit vide si la source est elle-même vide.
0
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

29 juin 2009 à 12:12
A quoi sert $compo? Quel est la différence avec $data?
J'ai effectué les changements mais aucun résultat.
0
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

29 juin 2009 à 12:13
Je vais essayer de mettre un echo après chaque demande pour voir a partir d'où le problème vient
0