Problème pour supprimer une ligne de ma base de donnée [Résolu]

Signaler
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011
-
matt53
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011
-
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

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

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
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009

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']."'";
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

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.
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009

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 ?
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

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
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

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?
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009

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.
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

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?
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009

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.
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

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']."'";
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009

Oui, il te faut tracer depuis ton formulaire et savoir pourquoi elle ne passe pas. Est-ce bien un $_GET ou un $_POST ?
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

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

Pas d'aide?
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009

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.
Messages postés
13
Date d'inscription
mardi 7 avril 2009
Statut
Membre
Dernière intervention
7 février 2011

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

Je vais essayer de mettre un echo après chaque demande pour voir a partir d'où le problème vient