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 :

requete sql qui ne s'exécute pas [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 30
    Points
    30
    Par défaut requete sql qui ne s'exécute pas
    Bonjour,

    Je fais une connexion a un serveur ici local et je me sert de deux base diférente donc je n'ai pas fais de delect_db().

    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
    31
    32
    33
    34
    35
     
    $connect=@mysql_connect($host,$user,$pass) or erreur("Erreur de connexion au serveur de base de données : ".$host);;
     
    if($connect) 
    {
    echo ("Connexion établie sur le serveur : ".$host);
    //************************************************************
    //Importation des domaines
    //************************************************************
    $req=mysql_query('SELECT WORKGROUP FROM '.$base_ocs.'.hardware');
    $nbligne=mysql_num_rows($req);
    for($i=0;$i<=$nbligne;$i++)
    {
    	$curseur=mysql_fetch_array($req);	
    	$cur= strtolower($curseur['WORKGROUP']);	//strtolower met tous en minuscule
     
    	$req2=mysql_query('SELECT name FROM '.$base_glpi.'.glpi_dropdown_domain');
    	$nbligne2=mysql_num_rows($req2);
    	$test=0;	
    	for($j=0;$j<=$nbligne2;$j++)
    	{
    		$curseur2=mysql_fetch_array($req2);
    		$cur2=strtolower($curseur2['name']);
    		if ($cur==$cur2)
    		{
    			$test=1;
    		}
    	}
    	if ($test==0)
    	{
    		mysql_query('insert into '.$base_glpi.'.glpi_dropdown_domain ("name") value ("'.$cur.'")');   //s'exécute pas
    	}
     
    }
    mysql_query('insert into '.$base_glpi.'.glpi_dropdown_domain ("name") value ("essai derentré un enregistrement")');    //s'exécute pas
    }

    Merci

  2. #2
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Il faudrait déjà savoir si tu rentres dans ton test :

    <?php
    &#160;&#160;&#160;
    if&#160;($test==0)
    &#160;&#160;&#160;{&#160;echo&#160;
    'ok'&#160;;&#160;//&#160;On&#160;est&#160;dans&#160;le&#160;test&#160;!!!
    &#160;&#160;&#160;&#160;&#160;&#160;
    mysql_query('insert&#160;into&#160;'.$base_glpi.'.glpi_dropdown_domain&#160;("name")&#160;value&#160;("'.$cur.'")');&#160;&#160;&#160;//s'exécute&#160;pas
    &#160;&#160;&#160;
    }
    ?>

    Phpsyntaxcolor powered by decabodi.com
    Puis extraire la requête de mysql_query :

    <?php
    &#160;&#160;&#160;
    if&#160;($test==0)
    &#160;&#160;&#160;{&#160;echo&#160;
    'ok'&#160;;
    &#160;&#160;&#160;
    $sql&#160;=&#160;'insert&#160;into&#160;'.$base_glpi.'.glpi_dropdown_domain&#160;("name")&#160;value&#160;("'.$cur.'")'&#160;;
    &#160;&#160;&#160;&#160;&#160;&#160;
    mysql_query($sql);&#160;&#160;&#160;//s'exécute&#160;pas
    &#160;&#160;&#160;
    }
    ?>

    Phpsyntaxcolor powered by decabodi.com
    Faire un or die :

    <?php
    &#160;&#160;&#160;
    if&#160;($test==0)
    &#160;&#160;&#160;{&#160;echo&#160;
    'ok'&#160;;
    &#160;&#160;&#160;
    $sql&#160;=&#160;'insert&#160;into&#160;'.$base_glpi.'.glpi_dropdown_domain&#160;("name")&#160;value&#160;("'.$cur.'")'&#160;;
    &#160;&#160;&#160;&#160;&#160;&#160;
    mysql_query($sql)&#160;or&#160;die&#160;(&#160;mysql_error()&#160;.&#160;$sql&#160;);&#160;&#160;&#160;//s'exécute&#160;pas
    &#160;&#160;&#160;
    }
    ?>

    Phpsyntaxcolor powered by decabodi.com
    Puis écrire la requête correctement :

    <?php
    &#160;&#160;&#160;
    if&#160;($test==0)
    &#160;&#160;&#160;{&#160;echo&#160;
    'ok'&#160;;
    &#160;&#160;&#160;
    $sql&#160;=&#160;"INSERT&#160;INTO&#160;"&#160;.&#160;$base_glpi&#160;.&#160;".glpi_dropdown_domain&#160;(&#160;name&#160&#160;VALUES&#160;(&#160;'"&#160;.&#160;$cur&#160;.&#160;"'&#160"&#160;;
    &#160;&#160;&#160;&#160;&#160;&#160;
    mysql_query($sql)&#160;or&#160;die&#160;(&#160;mysql_error()&#160;.&#160;$sql&#160;);&#160;&#160;&#160;//s'exécute&#160;pas
    &#160;&#160;&#160;
    }
    ?>

    Phpsyntaxcolor powered by decabodi.com
    Avec le mot clé VALUES et non VALUE...
    Consultant idéaliste.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 30
    Points
    30
    Par défaut probleme de variable qui se décharge et se recharge
    merci pour l'info,

    par contre j'ai un probléme c'est que j'ai une variable dont la valeur disparait( c'est à dire qui est vide)quand je rentre dans un if et cette variable retrouve sa valeur quand il sort du si.

    merci

  4. #4
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    C'est à dire ?
    Consultant idéaliste.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    $test="Ok";
    echo $test;     //affiche OK
    if ($i==$j)
    {
    echo $test;     //affiche rien du tout car la variale $test est vide et pk?
    }
    echo $test;     //affiche OK
    voila

  6. #6
    Membre averti Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Points : 448
    Points
    448
    Par défaut
    peut-etre que le programme n'entre jamais dans ta boucle (la condition n'ets pas vérifiée..
    essaies ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $test="Ok";
    echo $test;     //affiche OK
    if ($i==$j)
    {
    echo "ici   :".$test;     //affiche rien du tout car la variale $test est vide et pk?
    }
    echo $test;     //affiche OK
    est-ce q ici s'"affiche?
    mais pourquoi tu cours?

  7. #7
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Modifie ainsi :
    <?php
    $test
    = 'Ok' ;
    echo
    $test ; //affiche OK
    if ( $i == $j )
    {
    echo
    '$test = ' . $test ; //affiche rien du tout car la variale $test est vide et pk?
    echo '<br />$i = ' . $i ;
    echo
    '<br />$j = ' . $j ;
    }
    echo
    $test ;
    ?>

    Phpsyntaxcolor powered by decabodi.com
    On saura alors ce qui va pas.

    edit -> grilled. Ca va pas se passer comme ça.
    Consultant idéaliste.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Il ne trouve toujour rien mais j'ai l'impression qu'il a remplacé par un espace.

  9. #9
    Membre averti Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Points : 448
    Points
    448
    Par défaut
    mais est-ce que le script entre bien dans la boucle? si t'as utlisé le code que je t'ai donné, est-ce que "ici" s'affiche?

    @macbook : je rentre chez moi dans tres bientot, je vais surement plus te griller...
    mais pourquoi tu cours?

  10. #10
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Tu as fais quelle modif ?

    Citation Envoyé par gofono_bass
    @macbook : je rentre chez moi dans tres bientot, je vais surement plus te griller...
    Bon ça va pour cette fois, mais gaffe ! J'ai l'oeil.
    Consultant idéaliste.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    oui le test rentre bien dans la boucle .Sa c'est sur mais pourquoi il ne trouve pas de valeur pour ma variable test alor qu'il la retrouve un e fois sortide la condition?

  12. #12
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Remets-nous ton code parce que là je suis perdu.
    Consultant idéaliste.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Voici mon code exact:

    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
    31
    32
    33
    34
     
    $req=mysql_query('SELECT WORKGROUP FROM '.$base_ocs.'.hardware');
    $nbligne=mysql_num_rows($req);
    for($i=0;$i<=$nbligne;$i++)
    {
    	$curseur=mysql_fetch_array($req);	
    	$cur= strtolower($curseur['WORKGROUP']);	//strtolower met tous en minuscule
     
    	$req2=mysql_query('SELECT name FROM '.$base_glpi.'.glpi_dropdown_domain');
    	$nbligne2=mysql_num_rows($req2);
    	$trouve=0;	
    	for($j=0;$j<=$nbligne2;$j++)
    	{
     
    		$curseur2=mysql_fetch_array($req2);
     
    		$cur2=strtolower($curseur2['name']);
     
    		if ($cur==$cur2)
    		{
    			$trouve=1;
    		}
    	}
     
    	if ($trouve==1)
    	{
    		echo ('<br>cur = '.$cur);  //ne trouve aucune valeur pour $cur
    		echo ('<br> trouve = '.$trouve);
     
     
    	}
                    echo ('<br>Test fin cur = '.$cur);   //trouve la valeur de $cur kan pass pas dans if
     
    }
    Je viens de m'apercevoir que c'est lorsque je passe dans mon if que la variable $cur n'a aucune valeur.

  14. #14
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    fais un echo de tes variables $cur et $cur2 avant le if.
    tu sauras déjà ainsi si tu rentres dans le if (a priori tu n'y rentre pas)

  15. #15
    Membre éprouvé Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Comprends rien à ton histoire. Désolé. Cette condition n'est jamais remplie ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          if ($cur==$cur2)
          {
             $trouve=1;
          }
    A propos il vaut mieux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $trouve = false ;
     
    ...
     
     
          if ( $cur == $cur2 )
          {
             $trouve = true ;
          }
    Sinon tests avec === ?
    Consultant idéaliste.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 30
    Points
    30
    Par défaut
    Merci de vos réponse, grace a vous j'ai pu trouver d'ou provené mon erreur

    C'est que quelque fois ma variable $cur n'avait aucune valeur et faisait planter tout mon programmme

    Merci

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

Discussions similaires

  1. [Doctrine] Requete Update qui ne s'exécute pas.
    Par Tyra3l dans le forum ORM
    Réponses: 4
    Dernier message: 17/06/2011, 13h31
  2. [A-03] Requete SQL qui ne s'execute pas
    Par Flo435 dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/02/2009, 15h37
  3. [hibernate]requete SQL qui ne passe pas
    Par Gromitou dans le forum Hibernate
    Réponses: 8
    Dernier message: 09/06/2006, 12h18
  4. probleme de requete mysql qui ne s'exécute pas
    Par anto48_4 dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/03/2006, 10h51
  5. Réponses: 2
    Dernier message: 04/06/2004, 11h11

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