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 :

Problème avec opérateur de condition [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 48
    Points : 37
    Points
    37
    Par défaut Problème avec opérateur de condition
    Bonjour voila mon problème, je voudrais executer une requête si et seulement si une variable donnée (ici $Obs_1 et $Obs_2) contient une chaine de caractère :

    voici le code que je pensais faire, mais qui ne semble pas fonctionner (en effet, meme lorsque les variables contiennent une chaine de caractère, la requete ne semble pas inserer de données dans la base, il n'y a pourtant pas de message d'erreur et la page affichée est "La donnée à été correctement ajoutée à la base.")

    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
    30
    <?
    if(isset($_POST['Obs_1']))      $Obs_1=$_POST['Obs_1'];
    else      $Obs_1="";
     
    if(isset($_POST['Obs_2']))    $Obs_2=$_POST['Obs_2'];
    else      $Obs_2="";
     
     
    $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
    	  mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error());
     
     
    if ($Obs_1!="")
    {	  
    $sql = "insert into test(obs) Values ('$Obs_1')";
    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    }
     
    if ($Obs_2!="")
    {
    $sql = "insert into test(obs) Values ('$Obs_2')";
    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    }
     
     
    	echo '<center><b>La donnée à été correctement ajoutée à la base.</b></center>'; 
    	echo'<center><form><input type="button" value="Retour" OnClick="javascript:history.back()"></form></center>';
        mysql_close();  // on ferme la connexion 
     
    ?>

  2. #2
    Membre actif Avatar de Purple Haze
    Profil pro
    Inscrit en
    Février 2007
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 293
    Points : 242
    Points
    242
    Par défaut

    tu devrais essayer de mettre le nom de la table dans le INSERT :
    INSERT INTO tbl_(MaTable)

  3. #3
    Membre actif Avatar de More
    Inscrit en
    Janvier 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 252
    Points : 268
    Points
    268
    Par défaut


    la requete doit etre comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into table(champ1,...) values(value1,...)
    pour plus d'info voici un lien qui pourra t'aider : Sql

    Bonne Chance

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    euh en fait ma requete est bel et bien ecrite comme vous me le dite ^^

    ma table s'appelle "test" et le champ ds lequel je veux inserer des données se nomme "test" également ^^

    p-e la confusion vient-elle d'ici ?

  5. #5
    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
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par Dhumkazaar
    euh en fait ma requete est bel et bien ecrite comme vous me le dite ^^

    ma table s'appelle "test" et le champ ds lequel je veux inserer des données se nomme "test" également ^^

    p-e la confusion vient-elle d'ici ?
    Euh là pour l'instant ton champ s'appelle obs et pas test

  6. #6
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Et puis je pense que ta requête devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "insert into test(obs) Values ('".$Obs_1."')";
    Sinon il risque de t'insérer la chaine $Obs_1 et non la valeur.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    oups je me suis mal exprimé :

    donc la base de donnée se nomme "test", la table se nomme "test" et le champ de la table concerné se nomme "obs"

  8. #8
    Membre actif Avatar de More
    Inscrit en
    Janvier 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 252
    Points : 268
    Points
    268
    Par défaut
    Citation Envoyé par Dhumkazaar
    oups je me suis mal exprimé :

    donc la base de donnée se nomme "test", la table se nomme "test" et le champ de la table concerné se nomme "obs"


    je ne sais pas quoi dire, renommer votre base et eloigne le plus possible de cette confusion

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Alors je tiens au courant de l'evolution de la situation :

    j'ai renommé ma base "test" en "testbis" histoire d'éviter toute confusion entre le nom de la table et le nom de la base.

    je me suis aperçu en revanche que je faisais référence à mes variables comme "Obs" alors qu'il s'agissait en fait de "obs", donc meaculpa sur ce coup là...

    Donc maintenant, la requete insere bien des données dans la base, mais le hic, c'est qu'elle en insère non pas une mais 32767 exactement !!!!!

    d'ou pourrait provenir ce problème ??

  10. #10
    Membre actif Avatar de Purple Haze
    Profil pro
    Inscrit en
    Février 2007
    Messages
    293
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 293
    Points : 242
    Points
    242
    Par défaut
    montre nous un peu de code !!!

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Eh bien ma foi, je crois que je devrais vraiment me reposer ^^

    en retapant mon code, j'ai par megarde créé des boucles en remplacant les "if" par des "while" .... Vu que mon champ était codé en smallint, il allait donc au maximum de ses possibilités ^^

    le problème est réglé, et merci à vous tous pour vos contributions ^^

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

Discussions similaires

  1. Ecriture Classeur fermé problème avec opérateurs logiques VRAI/FAUX
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/03/2014, 19h59
  2. Problème avec opérateur LIKE
    Par sibama dans le forum VB.NET
    Réponses: 3
    Dernier message: 19/06/2011, 03h17
  3. Problème avec un nom condition (88)
    Par beegees dans le forum Cobol
    Réponses: 13
    Dernier message: 18/01/2008, 11h37
  4. Problème avec une condition
    Par ghan77 dans le forum Débuter
    Réponses: 2
    Dernier message: 16/12/2005, 16h18
  5. [Opérateur] problème avec 'ou' (||)
    Par clairette dans le forum Langage
    Réponses: 7
    Dernier message: 04/07/2005, 12h33

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