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 :

Requête qui ne s'exécute pas MAIS qui renvoie true pour mysql_query()


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Par défaut Requête qui ne s'exécute pas MAIS qui renvoie true pour mysql_query()
    Soit mon code suivant qui boucle sur des variables POST :

    Ce code marchait très bien et voilà que il y a 10 jours un erreur de déterminisme de l'informatique me rends fou.:

    Ce code ci dessous s'exécute.. parfaitement et le mysql_query() me renvoi bien TRUE

    sauf que évidemment (et mon problème réside ici) aucune exécution réelle.

    Un copier coller dansl'interpréteur SQL de phpmyadmin me montre bien que la requete est sans erreur.. (difficile sur une requête aussi courte me direz-vous ^^). De plus un echo mysql_affected_rows(); renvoi 1.


    - une partie du code qui pose problème..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while(list($key,$service)=@each($_POST['services_associes'])) {
    		if (!empty($service)) {
    				$sql = "insert into r_entreprise_service (fk_entreprise,fk_service)	VALUES ('".$moduleInfo[id]."', '".$service."')"; 
    				if(mysql_query($sql)) {
    					$id_inserted=mysql_insert_id();
    					show("#Requete ".$service." --> <br>".$sql.";"."#Id inseré ; ".$id_inserted."<br>","pink");
    				}
    		}
    	}
    - Affichage du out php (1)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     #Requete 88 --> 
    insert into r_entreprise_service (fk_entreprise,fk_service)	VALUES ('4', '88');
     
    #Requete 28 --> 
    insert into r_entreprise_service (fk_entreprise,fk_service)	VALUES ('4', '28');

    Voici un modèle de la table utilisée..
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE `r_entreprise_service` (
      `id_entreprise_service` int(10) unsigned NOT NULL auto_increment,
      `fk_entreprise` int(10) unsigned NOT NULL default '0',
      `fk_service` int(10) unsigned NOT NULL default '0',
      PRIMARY KEY  (`id_entreprise_service`),
      KEY `fk_entreprise` (`fk_entreprise`),
      KEY `fk_service` (`fk_service`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=43 ;

    Je demande à quelqu'un de clairvoyant si il aurait une idée lumineuse sur ce qui peut se passer....aucun enregistrement affecté et mysql_affected_rows qui devient gaga..

    Des pistes ???? SVP...

    Merci..

  2. #2
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    bonsoir,

    Au lieu de taper:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(list($key,$service)=@each($_POST['services_associes']))
    Il ne faudrait pas mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(list($key,$service)==@each($_POST['services_associes']))
    J'ai pas bien regardé ton code, mais cette syntaxe me parait bizar ...

    ++

  3. #3
    Futur Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Par défaut
    Un each est censé renvoyé un booléen lorsque il peut parcourir le tableau.

    Et puis de toute façon j'arrive bien à boucler sur mon tableau et effectuer des requêtes.. Le resultat du out par la fonction Show() .

    c'est sûrement du coté de mysql mais alors pourquoi cette requête pourtant si basique refus de s'executer TOUT en me renvoyant une confirmation d'insertion avec même un bon mysql_insert_id() un numéro qui semble cohérent..

    Je précise que cette requête a été testé sous différents environnements. (Mysql4x, 5.2).

    Il y a un truc que je ne saisis pas vraiment ... le link identifier ? il est bon...


    Merci à ceux que mon problème peut intriguer.

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/10/2014, 18h14
  2. Réponses: 4
    Dernier message: 10/05/2010, 14h50
  3. Réponses: 3
    Dernier message: 14/05/2008, 13h41
  4. Réponses: 1
    Dernier message: 03/05/2007, 11h21
  5. fonction qui ne s'execute pas mais qui ne retourne pas d'erreur
    Par duplo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/06/2006, 21h43

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