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

matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 1 juin 2009 à 14:26 - Dernière réponse : matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention
- 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
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 29 juin 2009 à 17:19
3
Merci
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

Merci matt53 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de matt53
nautilus99 662 Messages postés vendredi 26 septembre 2008Date d'inscription 18 septembre 2009 Dernière intervention - 1 juin 2009 à 18:08
0
Merci
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']."'";
Commenter la réponse de nautilus99
matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 3 juin 2009 à 08:32
0
Merci
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.
Commenter la réponse de matt53
nautilus99 662 Messages postés vendredi 26 septembre 2008Date d'inscription 18 septembre 2009 Dernière intervention - 3 juin 2009 à 12:26
0
Merci
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 ?
Commenter la réponse de nautilus99
matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 3 juin 2009 à 14:04
0
Merci
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
Commenter la réponse de matt53
matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 14 juin 2009 à 00:07
0
Merci
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?
Commenter la réponse de matt53
nautilus99 662 Messages postés vendredi 26 septembre 2008Date d'inscription 18 septembre 2009 Dernière intervention - 14 juin 2009 à 11:45
0
Merci
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.
Commenter la réponse de nautilus99
matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 15 juin 2009 à 08:24
0
Merci
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?
Commenter la réponse de matt53
nautilus99 662 Messages postés vendredi 26 septembre 2008Date d'inscription 18 septembre 2009 Dernière intervention - 15 juin 2009 à 10:03
0
Merci
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.
Commenter la réponse de nautilus99
matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 15 juin 2009 à 12:08
0
Merci
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']."'";
Commenter la réponse de matt53
nautilus99 662 Messages postés vendredi 26 septembre 2008Date d'inscription 18 septembre 2009 Dernière intervention - 15 juin 2009 à 15:08
0
Merci
Oui, il te faut tracer depuis ton formulaire et savoir pourquoi elle ne passe pas. Est-ce bien un $_GET ou un $_POST ?
Commenter la réponse de nautilus99
matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 15 juin 2009 à 18:59
0
Merci
C'est un $_GET qui récupère la variable enregistrer par $data
Commenter la réponse de matt53
matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 29 juin 2009 à 10:55
0
Merci
Pas d'aide?
Commenter la réponse de matt53
nautilus99 662 Messages postés vendredi 26 septembre 2008Date d'inscription 18 septembre 2009 Dernière intervention - 29 juin 2009 à 11:42
0
Merci
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.
Commenter la réponse de nautilus99
matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 29 juin 2009 à 12:12
0
Merci
A quoi sert $compo? Quel est la différence avec $data?
J'ai effectué les changements mais aucun résultat.
Commenter la réponse de matt53
matt53 13 Messages postés mardi 7 avril 2009Date d'inscription 7 février 2011 Dernière intervention - 29 juin 2009 à 12:13
0
Merci
Je vais essayer de mettre un echo après chaque demande pour voir a partir d'où le problème vient
Commenter la réponse de matt53

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.