IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

mysql delete sans action [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut mysql delete sans action
    Bonsoir,
    Je n'arrive pas à supprimer une ligne avec caractères spéciaux (, ? ' " )
    Voici les parties de mon écriture:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ......
    $message = htmlspecialchars($_POST['message']);
    ......
    if ($pseudo_sec == 'tartanpion' or $pseudo_sec == 'Moderateur')
    {
    $requete = "DELETE FROM rapport WHERE  message like '%".$message."%' order by days DESC limit 1";
    $resultat = $db->query($requete);
    $db->close();
    }
    ......
    Exemple de ligne qui ne se supprime pas:
    Jean-Claude, as tu reçu la compréhension ? as tu le code de MàJ ?

    Merci d'avance pour la solution
    Annette

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 319
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 319
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = htmlspecialchars($_POST['message']);
    Cela n'a aucun intérêt dans le script collé ici. htmlspecialchars( ) n'est utile qu'à l'affichage du HTML.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "DELETE FROM rapport WHERE message like '%".$message."%' order by days DESC limit 1";
    Sous quelle forme les message sont-ils enregistrés dans la BdD ? Peux-tu donner un exemple ?
    Et puis le procédé m'a l'air douteux, que se passe-t-il si $message vaut '' (chaîne vide) ?

  3. #3
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    il a raison...

    ça vient de comment sont codés " et ' qui servent de délimiteur de chaine...

    ce que tu cherches dans ta table doit être en concordance avec la façon dont c'est stocké...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut En réponse à SEB
    Bonjour,
    Les messages sont enregistrés avec un test de présence (caractères obligatoirement présents).

    J'ai corrigé l'écriture inutile.
    Après essai:

    aaaaaa (est supprimé)

    ?Week end relativement bon malgre les absences.Dommage pour les 2 D1.Apres il est facile de dire si on avait su.L'an prochain en phase 1 il faudra blinder une D1 pour monter en R4 (non supprimé)

    Pour la table:

    1 id int(11) Non Aucune AUTO_INCREMENT
    2 days datetime Non Aucune
    3 pseudo varchar(255) latin1_german1_ci Oui NULL
    4 message varchar(255) latin1_german1_ci Oui NULL

    Les " et ' sont ils correctes ?
    $requete = "DELETE FROM rapport WHERE message like '%".$message."%' order by days DESC limit 1";

    A bientôt.
    Annette

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 319
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 319
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par an.pi Voir le message
    Les messages sont enregistrés avec un test de présence (caractères obligatoirement présents).
    Comprends pas. De quels caractères parles-tu ?

    Pour la table:

    1 id int(11) Non Aucune AUTO_INCREMENT
    2 days datetime Non Aucune
    3 pseudo varchar(255) latin1_german1_ci Oui NULL
    4 message varchar(255) latin1_german1_ci Oui NULL
    Faudrait plutôt voir le contenu dans la BdD de l'enregistrement que tu souhaites supprimer.

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 319
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 319
    Billets dans le blog
    17
    Par défaut
    latin1_german1_ci <= C'est voulu ? Est-ce en accord avec tes scripts, formulaires, etc. ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut suite
    Re-Bonjour

    Lorsque le joueur valide son texte, je contrôle que la zone est saisie.

    Pour la zone dans la base voici un copié/collé.

    ?Week end relativement bon malgre les absences.Dommage pour les 2 D1.Apres il est facile de dire si on avait su.L'an prochain en phase 1 il faudra blinder une D1 pour monter en R4

    latin1_german1_ci <= C'est voulu ? Est-ce en accord avec tes scripts, formulaires, etc. ?
    Je ne touche pas aux informations présentes dans mysql (présentes dans la construction de la table)
    Annette

  8. #8
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    utilise # dans les icones de la zone texte pour insérer ton code dans le forum

    avant de faire des delete... like est un opérateur pas très évident à manipuler parfois...

    essaye de faire, à la place du delete, un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    "select count(*) from rapport WHERE message like '%".$message."%'"

    dans ta phrase non supprimée il y a un '

    à toi de voir s'il est échappé: \' ou doublé: '' par exemple

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut ericd69
    Le résultat du select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select count(*) from minichat WHERE message like '%?Week end relativement bon malgre les absences.Dommage pour les 2 D1.Apres il est facile de dire si on avait su.L'an prochain en phase 1 il faudra blinder une D1 pour monter en R4 %'
    AHHH en effet il y a une '
    Que dois je faire ?


    Dois je permuter les " et ' ?
    (fait , toujours non supprimé)

  10. #10
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    teste avec le select en remplaçant le ' par dans \' déjà si ça marche pas teste en doublant le ''

    comme je sais pas avec quoi a été envoyé le texte dans table et ce qui a donc été appliqué dessus...

    après tu devras appliquer le traitement adéquate sur ta chaine avant de la mettre dans ta requête...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] DELETE en cascade..ma requete ne marche pas
    Par debie1108 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/10/2006, 16h54
  2. Affichage de données sans action ?
    Par SnorkyTouch dans le forum Struts 1
    Réponses: 1
    Dernier message: 12/10/2006, 14h14
  3. [mysql] Sélectionner sans répétitions
    Par Colbix dans le forum Langage
    Réponses: 2
    Dernier message: 31/07/2006, 19h59
  4. page en ASP connexion MYSQL mais sans odbc...
    Par lunatichs dans le forum Installation
    Réponses: 1
    Dernier message: 31/03/2006, 22h49
  5. [MYSQL] Connexion sans lien ODBC
    Par Shadowritter dans le forum JDBC
    Réponses: 4
    Dernier message: 07/06/2005, 08h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo