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
    Membre averti
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    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 émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    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...

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    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 émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    C'est à dire ?

  5. #5
    Membre averti
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    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 chevronné Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    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?

  7. #7
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    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.

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

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    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...

  10. #10
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    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.

  11. #11
    Membre averti
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    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 émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    Remets-nous ton code parce que là je suis perdu.

  13. #13
    Membre averti
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    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 : 43
    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
    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 émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    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 === ?

  16. #16
    Membre averti
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 53
    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