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

Requêtes MySQL Discussion :

[SQL/PHP] Supprimer une donnée 'A' d'une ligne quand une donnée 'B' est vide


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de theocbr
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 206
    Par défaut [SQL/PHP] Supprimer une donnée 'A' d'une ligne quand une donnée 'B' est vide
    Bonjour, tout est dans le titre.
    pour le moment j'ai ça :

    OU UNE AUTRE VARIANTE :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php
     $mysqli = new mysqli("localhost", "anniv", "anniversaire", "AUTOMATES");
    /* V?fication de la connexion */
        if ($mysqli->connect_errno) {
        printf("?hec de la connexion : %s\n", $mysqli->connect_error);
        exit();
        }	  
     
     
     // supprimer donnée(s) de la COLONNE=OF  QUAND la COLONNE=DESCRIPTION est VIDE
    if(is_null($row['DESCRIPTION'])) 
    {
     // traitement
     
     
     $sql = $mysqli->query("UPDATE AUTOMATES.TIMERSIMA3 SET OF='0' ");
    $req=mysqli_fetch_array($sql);
    if($req==false){
    echo $sql;
    }
    }
     
    ?>
    Le problème c'est que la ça supprime la ligne entièrement ( même les lignes où la description est pas vide), alors que je ne veux pas supprimer la ligne entière , juste une seul donnée.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 602
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Tout d'abord, attention au vocabulaire :

    • Un attribut marqué "Null" c'est différent d'un attribut vide. Le premier n'a pas de valeur, sa valeur est inconnue, le deuxième a une valeur connue : c'est une chaîne de caractères vide et de longueur zéro.
    • Supprimer concerne une ligne (ordre DELETE) alors que modifier concerne une colonne (ordre UPDATE)


    Selon qu'on veut modifier les attributs marqués null ou ceux dont la valeur est vide la clause WHEREest donc différente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    create table TAB1 (col1 int primary key,
                       col2 char(2)
                      )
           engine=innodb
    ;
    insert into TAB1 (col1, col2)
           values(1, 'AB')
                ,(2, '')
                ,(3, null)
                ,(4, '12')
                ,(5, '  ')
    ;
    select col1
         , col2
         , length(col2)
    from TAB1
    ;
    -- mise à jour col2 marquées "null"
    update TAB1
    set col2 = 'NL'
    where col2 is null
    ;
    -- mise à jour des col2 vides
    update TAB1
    set col2 = 'VD'
    where col2 =''
    ;
    select       * from TAB1
    ;
    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    col1	col2
    1	AB
    2	VD
    3	NL
    4	12
    5	VD

  3. #3
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    La commande UPDATE AUTOMATES.TIMERSIMA3 SET OF='0' exécute la mise à jour sur toutes les lignes de la table.
    Il faut y ajouter une restriction, soit aux lignes qui répondent au critère retenu (where DESCRIPTION is null), soit à la ligne qu'on souhaite modifier (à condition de connaître son identifiant unique).
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  4. #4
    Membre très actif Avatar de theocbr
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 206
    Par défaut
    Merci beaucoup , vos réponses m'ont grandement aidé , je ne connaissais pas la différence entre une valeure vide et une valeur NULL , merci !!

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

Discussions similaires

  1. recuperer table sql et supprimer une ligne
    Par civodul88 dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 10/09/2017, 22h02
  2. Script PHP supprimer une ligne dans un repeater
    Par taka10 dans le forum WordPress
    Réponses: 0
    Dernier message: 20/11/2015, 15h24
  3. Réponses: 8
    Dernier message: 04/07/2007, 12h51
  4. [PL/SQL] Procédure SQL qui supprime une table
    Par lenoil dans le forum Oracle
    Réponses: 3
    Dernier message: 21/08/2006, 13h15
  5. Instruction SQL qui supprime une colonne d'une table
    Par tseg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2003, 20h47

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