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 :

[SQL] Vérifier si un enregistrement existe [Débutant(e)]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Par défaut [SQL] Vérifier si un enregistrement existe
    Bonjour à tous,

    Voilà mon problème, je souhaiterais crée un site qui contient du php mais on n'a pas trop étudier ce type de langage en cours.

    Je me déclare donc débutant total en la matière.

    Donc voilà je voudrais inséré les donnees contenue dans ma table sql dans la cellule d'un tableau, or il peut y avoir des cas ou l'enregistrement au sein de la table soit inexistant et je n'arrive pas à afficher un message d'erreur du type "Aucune données actuellement" une des entré est au format date.

    Je possède une table Calendrier avec les champs suivants :

    Id_Calendrier (qui porte la propriété auto_increrment format small int)
    Ca_Date_Debut (format DATE)
    Ca_Date_Fin (format DATE)
    Ca_Lieux (format varchar)
    Ca_Division (format varchar) soit Nationnal D1, D2 ou D3
    Ca_Region (format varchar)


    Je souhaite donc afficher dans le tableaux dans une cellules la date et dans l'autre le lieux si l'enregistrement n'existe pas je souhaite afficher : "Aucune données actuellement".

  2. #2
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut
    Tu utilise une variable $lieu par exemple.
    Donc tu vérifie si le champ lieu et vide, s'il l'est tu fait $lieu = "Aucune données actuellement" sinon tu fais $lieu = $tmy_array['Ca_Lieux'] et ensuite ya plus qu'à l'afficher.


    $retour = mysql_query('SELECT * FROM my_base');
    while ($my_array = mysql_fetch_array($retour)) {
    if ($my_array['Ca_Lieux'] = "") { $lieux = "Aucune données actuellement" }
    else { $lieux = $my_array['Ca_Lieux'] }

    // affichage
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Par défaut
    Bonjour Momodedf

    Merci de ta réponse, elle me semble intérressante car jamais essayer mais hélas il semblerait qu'il y ait un probleme avec une accolade et je ne vois pas ou.
    Voici le code que j'ai un peu modifier car il me paraît plus lisible comme ca et tu verra comment je procède pour l' affichage si c'est la bonne méthode.

    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
     
    <?php
    $retour = mysql_query("SELECT Ca_Date_Debut FROM calendrier WHERE `Ca_Division` = 'Nationnal' AND `Ca_Region` = 'Sud Ouest'") or die(mysql_error());
    while ($my_array = mysql_fetch_array($retour)) 
    {
    if ($my_array['Ca_Lieux'] = "") 
    { 
    $lieux = "Aucune données actuellement" 
    }
    else 
    { 
    $lieux = $my_array['Ca_Lieux'] 
    }
    echo $lieux // affichage
    }
    ?>
    Sinon j'ai cette méthode qui affiche bien quand l'enregistrement existe mais aucun message quand il existe pas

    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
     
    <?php
    $reponse = mysql_query("SELECT Ca_Date_Debut FROM calendrier WHERE `Ca_Division` = 'Nationnal' AND `Ca_Region` = 'Sud Ouest'") or die(mysql_error());
    while ($donnees = mysql_fetch_array($reponse) )
    {
    if (empty($donnees['Ca_Date_Debut']))
    {
    echo 'Aucune données actuellement';
    }
    else
    {
    echo $donnees['Ca_Date_Debut']; 
    }
    }
    ?php>

  4. #4
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Dans le premier code il te manque les points virgules en bout de ligne et le test d'égalité c'est == et pas =.

    Par contre pour le deuxième code c'est bizarre que tu n'ai rien dans le cas où la chaine est vide, tu es sûr qu'elle est vide justement et que c'est pas un espace par exemple ?


    Pour l'orthographe on écrit "aucune donnée", et il y a un seul N à National.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Par défaut
    Amara merci de ta réponse,

    Bon l'ajout du point virgule en fin de ligne à résolu le problème d'affichage mais cela n'affiche toujours pas le message d'erreurs.

    Voici donc le code que j'ai corriger pour l'égalité et ou j'ai ajouter les ';'

    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
     
    <?php
    $retour = mysql_query("SELECT Ca_Date_Debut FROM calendrier WHERE `Ca_Division` = 'National' AND `Ca_Region` = 'Sud Ouest'") or die(mysql_error());
    while ($my_array = mysql_fetch_array($retour)) 
    {
    if ($my_array['Ca_Lieux'] == "") 
    { 
    $lieux = "Aucune donnée actuellement" ;
    }
    else 
    { 
    $lieux = $my_array['Ca_Lieux'] ;
    }
     
    echo $lieux; // affichage
     
    }
    ?>
    Sinon voici le deuxième bout de code qui te semblait bizarre

    Par contre pour le deuxième code c'est bizarre que tu n'ai rien dans le cas où la chaine est vide, tu es sûr qu'elle est vide justement et que c'est pas un espace par exemple ?
    Alors je me suis peu etre mal exprimé donc pour bien faire compremdre mon idée, dans ma base cela donne un tableau comme ceci
    ------------------------------------------------------------------------
    Id_Calendrier | Ca_Date_Debut |......Ca_Lieux......|.Ca_Division.|.Ca_Region
    ------------------------------------------------------------------------
    ........2........|...2007-08-25....|...berck sur mer...|......D1......|....France
    ........3........|...2007-09-15....|.villeneuve d'ascq.|.....D2......|.....France
    ........4........|...2007-10-21....|.villeneuve d'ascq.|.....D3.......|....France
    ........9........|...2008-06-08....|.......Brest........|Coupe de France|France
    .......10.......|....2007-08-29...|.......rouen..........|..National...|.......Nord
    .......12.......|....2007-08-29...|........Paris..........|..National...|Ile de France
    -------------------------------------------------------------------------

    Dsl pour la présentation du tableau

    Pour completement illustrer en Nationnal les régions sont : Bretagne, Centre, Ile de France, Nord, Sud Ouest et Sud Est.
    Moi dans mon code html je met dans la case du tableaux le bout de code php afin d'afficher l'information que je veux en modifiant ma requete SQL. Ici pour les régions Nord et Ile de France les informations s'affiche mais pour les autres régions il n'y a rien car les "lignes du tableau de ma base de données" sont inexistante c'est donc dans ce cas là que je souhaite afficher le message "Aucune donnée actuellement".

    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
     
    <?php
    $reponse = mysql_query("SELECT Ca_Date_Debut FROM calendrier WHERE `Ca_Division` = 'National' AND `Ca_Region` = 'Sud Ouest'") or die(mysql_error());
    while ($donnees = mysql_fetch_array($reponse) )
    {
    if (empty($donnees['Ca_Date_Debut']))
    {
    echo 'Aucune donnée actuellement';
    }
    else
    {
    echo $donnees['Ca_Date_Debut']; 
    }
    }
    ?>
    Merci d'avoir signaler ces quelques fautes d'ortographe car j'avoue que je suis pas champion et en plus j'ai en aucun cas vérifier

    Merci

  6. #6
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Ok je comprends, pour tester il faut que tu utilises mysql_num_rows pour récupérer le nombre d'enregistrements répondant à la requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while ($my_array = mysql_fetch_array($retour)) 
    $retour = mysql_query("SELECT Ca_Date_Debut FROM calendrier WHERE `Ca_Division` = 'National' AND `Ca_Region` = 'Sud Ouest'") or die(mysql_error());
    if(mysql_num_rows($retour) == 0)
       echo "Aucune donnée actuellement";
    else
    {
      while ($my_array = mysql_fetch_array($retour)) 
         $echo $my_array['Ca_Lieux'];
    }

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

Discussions similaires

  1. Vérifier si un enregistrement existe dans une table
    Par developpeur_débutant dans le forum PL/SQL
    Réponses: 4
    Dernier message: 08/06/2010, 12h05
  2. [PDO] Vérifier que l'enregistrement existe avant de l'exploiter
    Par php_de_travers dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 31/12/2009, 10h28
  3. [MySQL] Vérifier si un enregistrement existe
    Par mrsoyer dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/05/2008, 15h09
  4. Réponses: 6
    Dernier message: 09/01/2008, 11h56
  5. [SQL] Vérifier qu'il n'existe pas dans la base
    Par Nemrod13 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 11/06/2007, 17h13

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