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 qui me renvoie Resource id #131 [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut requete qui me renvoie Resource id #131
    bonjour à tous. je fais une requete de ce genre dans mon code PHP et ça me donne ceci :
    Resource id #133
    Resource id #1
    Resource id #12 ....

    et par conntre quand je fais la meme requete sous phpmyadmin ou via la ligne de commande ça marche. bizzare tous ça!

    voici mon code PHP :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <?php
    //include("login.php");
     
    $monfichierCSV=getFichierCSV();
    OuvertureFichier($monfichierCSV);
    /* cette fonction sert à recuperer le nom du fichier envoyer par le formulaire et renvoie donc ce nom du fichier*/
    function getFichierCSV()
    {
    	/*on stocke le fichier dans un endroit sur le serveur*/
    	$stock="/var/www/apache2-default/script/";
    	if (move_uploaded_file($_FILES['fichierEnvoi']['tmp_name'], $stock.$_FILES['fichierEnvoi']['name']))
    	{
        		echo "Le fichier ".$_FILES['fichierEnvoi']['name']." a ete telecharge avec succes dans ".$stock."<br /><br /><hr>";
    	}
    	$monfichierCSVF=$_FILES['fichierEnvoi']['name'];
    	return $monfichierCSVF;
    }
     
    function connection()
    {
    	$link=mysql_pconnect("localhost","root","") or die("Connexion au serveur impossible");
    	$db=mysql_select_db("omnipub",$link) or die("Selection de la base impossible");
    }
     
    function OuvertureFichier($fichier)
    {
    	$memeRef=false; //teste si la reference du fichier csv=ref de la table objets
    	//echo "appel de la fonction getReferenceTableObjets <br /><br />";
    	$tabRefObj=getReferenceTableObjets();
    	//echo "Fin appel de la fonction getReferenceTableObjets <br /><br />";
    	$taille=1027;
    	$delimiteur=";";
    	/*ouverture du fichier*/
    	if($fp= fopen($fichier,"r"))
    	{	/* extraction d'une ligne */
    		while($ligne=fgetcsv($fp,$taille,$delimiteur))
    		{	//cette boucle affiche les noms des champs du fichier csv
    			/*for($j=0;$j<sizeof($ligne);$j++)
    			{
    				echo "Le champ du fichier csv numero  " .$j . " = <b>".$ligne[$j] . "</b><br />";
    			}*/
    			//$ligne[0] contient toutes les references contenues dans le fichier csv
    			for($j=0;$j<sizeof($tabRefObj);$j++)
    			{
    				//if($ligne[0]=='ref OM');break;
    				$comp=strcmp($ligne[0],$tabRefObj[$j]);
    				//echo "La reference  csv est <b> : " .$ligne[0];echo "</b> Et      "; echo "La ref dans la table objets via la requete  est : <b> " . $tabRefObj[$j]. "</b>";echo "<br />";
    				if($comp==0)
    				{
    					$memeRef=true;
    					echo "Le Champ reference csv <b> " .$ligne[0]. " </b>= a La reference objets <b>" . $tabRefObj[$j];echo "</b><br />";
    					connection();
    					$resultQuery=mysql_query("update prix set P1=$ligne[11]*2,P2=$ligne[12]*2,P4=$ligne[13]*2,P5=$ligne[14]*1.7,P10=$ligne[15]*1.7,
    					P15=$ligne[16]*1.5,P20=$ligne[17]*1.5, qte=$ligne[9] where ref='$ligne[0]'") 
    					or die("Execution impossible de la requete des mise a jour de la reference " .$ligne[0]. " des produits existants , l'erreur est ". mysql_error());
    				}
    				//else echo "le champ csv <b> ".$ligne[0]."</b> est different de la reference de la table objet <b> ".$tabRefObj[$j] ." </b><br />";
    			}
    			if($memeRef==false)
    			{ 
    				echo " Insertion de la reference :<b> " .$ligne[0]. " </b>dans la base<br /> <br /><br />";
    				connection();
     
    				$reqInsertInt_Obj_Cat="insert into int_obj_cat(cid,ref)values('$ligne[7]','$ligne[0]')";
    				mysql_query($reqInsertInt_Obj_Cat) or die("Erreur insertion de la requete " .$reqInsertInt_Obj_Cat . " l'erreur est ". mysql_error() );
    				$reqInsertInt_Obj_Coul="insert into int_obj_coul values('$ligne[7]','$ligne[0]')";
    				mysql_query($reqInsertInt_Obj_Coul) or die("Erreur insertion de la requete " .$reqInsertInt_Obj_Coul . " l'erreur est ". mysql_error() );
     
     
    				$reqInsertPrix="insert into prix(ref,P1,P2,P4,P5,P10,P15,P20,qte) values('$ligne[0]','$ligne[11]'*2,'$ligne[12]'*2,'$ligne[13]'*2,'$ligne[14]'*1.7,'$ligne[15]'*1.7,'$ligne[16]'*1.5,'$ligne[17]'*1.5,'$ligne[9]')";
    				mysql_query($reqInsertPrix) or die("Erreur insertion de la requete " .$reqInsertPrix . " l'erreur est ". mysql_error() );
     
     
    				$RequeteIdPrix="select id from prix where ref LIKE '$ligne[0]'";echo " la requete est :<b> " . $RequeteIdPrix;echo "</b><br />";
    				$IdPrix=mysql_query($RequeteIdPrix) or die("Selection  impossible de ID prix <br /> l'erreur est ". mysql_error());
    				echo "le id correspondant a la reference <b>".$ligne[0]."</b> est :<b> ". $IdPrix . "</b><br /><br />";
     
    				$reqInsertObjet="insert into `objets`(`ref`, `nom`, `descriptif`, `type`,`prix`,`fournisseur`) values ('".mysql_escape_string($ligne[0])."','".mysql_escape_string($ligne[2])."','".mysql_escape_string($ligne[4])."','".mysql_escape_string($ligne[6])."','".mysql_escape_string($IdPrix)."','".mysql_escape_string($ligne[1])."')";
    				mysql_query($reqInsertObjet) or die("Erreur insertion de la requete " .$reqInsertObjet . " l'erreur est ". mysql_error());
    			}
     
    		}
     
    	}
    	else
    	{
    		echo "Ouverture du fichier ". $fichier ." impossible";
    	}
    	fclose($fp);	
    }
     
    /* cette fonction fonctionne*/
    function getReferenceTableObjets()
    {
    	$tteReferences=array();
    	connection();
    	$i=0;
    	$requete="select distinct ref from objets";
    	$refObjet=mysql_query($requete) or die("Execution de la requete".$requete." dans la fonction getReferenceTableObjets impossible");
    	while($mesRef=mysql_fetch_assoc($refObjet))
    	{
    		$tteReferences[$i]=$mesRef['ref'];
    		//echo "la reference dans la base num ".$i. " est ". $tteReferences[$i];echo "<br />";
    		$i++;
    	}	
    	return $tteReferences;
    }
    le code suspect se trouve ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $RequeteIdPrix="select id from prix where ref LIKE '$ligne[0]'";echo " la requete est :<b> " . $RequeteIdPrix;echo "</b><br />";
    				$IdPrix=mysql_query($RequeteIdPrix) or die("Selection  impossible de ID prix <br /> l'erreur est ". mysql_error());
    ce que jeux faire c'est de recuperer le champ ID de la table prix et l'inserer dans le champ prix de la table objets. et ça pour plusieurs enregistrement.
    indice si ça peux vous aider : le champ id est int auto_increment.
    Merci

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Il faut utiliser mysql_fetch_array() pour traiter la ressources renvoyée par MySQL.
    Tu ne peux pas l'afficher directement ce qui est logique.
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 139
    Par défaut
    j'utilise mysql_fetch_array pour la requete $RequeteIdPrix="select id from prix where ref LIKE '$ligne[0]'";
    je ne comprends pas?normalement ce resultat m'envoie une seule valeur. pourquoi donc mysql_fetch_array?
    par exemple pour la reference OM190031 ça me renvoie 3260
    Merci de votre aide et j'attend votre reponse avec plaisir

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $IdPrix=mysql_query($RequeteIdPrix) or die("Selection  impossible de ID prix <br /> l'erreur est ". mysql_error());
    				echo "le id correspondant a la reference <b>".$ligne[0]."</b> est :<b> ". $IdPrix . "</b><br /><br />";
    La fonction mysql_query() envoie la requête à exécuter au serveur MySQL qui lui renvoi une ressource , il faut exploiter la ressource avec mysql_fetch_array() quelque soit le nombre de lignes ou de champs affectés dans la requête.

    Donc dans le code mis en avant par mes soins , il est normal que $IdPrix renvoi un ressources #n.
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

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

Discussions similaires

  1. Requete qui ne renvoie pas de résultat
    Par bruno782 dans le forum Requêtes
    Réponses: 6
    Dernier message: 01/08/2019, 13h39
  2. [MySQL] Requete qui ne renvoie que les 5 derniers ajouts
    Par zifouzi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/05/2008, 00h30
  3. [PostgreSql] requête simple qui ne renvoie rien ?
    Par tuxout dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/08/2006, 14h06
  4. requete qui renvoi trop de resultats ?
    Par highman dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/05/2006, 10h19
  5. [VB6] recuperer une requete qui renvoie du xml
    Par voyageur dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/12/2004, 10h03

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