Requete sql en PHP

Petit nouveau ! | 8 Messages

01 sept. 2011, 13:26

Chers amis,

Je vous écrits pour vous demander votre aide au sujet d'une requête sql en PHP qui ne donne pas de résultat..
C'est pourtant très simple :
$requete = "SELECT entrepriseID FROM munci_entreprise WHERE societe='$societe'";
$resultat = mysql_query($requete) or die('Erreur SQL !'.$requete.'<br>'.mysql_error());
On arrive pas à récupérer l'entrepriseID (integer) !

On a vérifié par un Echo : le $societe est bien rempli quand on teste avec une société existant dans la table.
Ce qui donne par exemple une requête du type : SELECT entrepriseID FROM munci_entreprise WHERE societe='Alten'
Cette requête renvoie bien l'entrepriseID si on l'execute dans phpmyadmin, mais bizarrement elle ne le renvoie pas dans le script php !

Par ailleurs, si on affiche le contenu de $resultat , on obtient "Resource id #46" ... impossible à trouver de quoi il s'agit.

Auriez-vous une explication SVP ?

Merci vivement pour toute aide,
Régis

ViPHP
ViPHP | 4039 Messages

01 sept. 2011, 13:49

"on" ?
Enfin soit, tu pourrais juste me renseigner sur quoi vous vous basez pour arriver à un tel code ?
Je le demande car il témoigne de certaines lacunes en PHP, je présume donc que vous êtes débutants, et quand on en est à ce stade il vaut mieux se baser sur de bonnes ressources documentaires.

Genre la documentation officielle de Php. Qui explique en détail pourquoi votre approche laisse à désirer. :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

01 sept. 2011, 14:31

Modération :
Comme, en un seul message, vous avez trouvé le moyen d'enfreindre plusieurs règles du forum (message posté au mauvais endroit, non utilisation des balises [php] et [code], je vous invite vivement à consulter les règlements du forum.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 8 Messages

01 sept. 2011, 21:51

Bonsoir,

J'ai une table munci_entreprise(entrepriseID, socieite,..) et une table munci_membre(membreID, prenom, nom,entrepriseID...).

maintenant, j'ai ce script :
	// On commence par récupérer les champs
if(isset($_POST['societe']))      $societe=$_POST['societe'];
else      $societe="";

if(isset($_POST['groupe']))      $groupe=$_POST['groupe'];
else      $groupe="";

if(isset($_POST['convention']))      $convention=$_POST['convention'];
else      $convention="";
	
$societe = addslashes($societe); 
$groupe = addslashes($groupe); 

 // on regarde si la societé existe déjà

$requete = 'SELECT entrepriseID FROM munci_entreprise WHERE societe = \'' . $societe . '\''; 
$resultat = mysql_query($requete) or die('Erreur SQL !'.$requete.'<br>'.mysql_error()); 
    
	    // on compte le nombre de résultats
//$ligne = mysql_num_rows($resultat);
//$source = $ligne[0];
if(mysql_num_rows($resultat) > 0)
{
    while ($enr = mysql_fetch_assoc($resultat))
    {
	
	   //if($ligne!=0 )  // la societé et le groupe existent déjà, on affiche un message d'erreur

	$requete = "UPDATE munci_entreprise SET groupe='$groupe', convention='$convention' WHERE societe='$societe' AND entrepriseID = '$entrepriseID'";
		 mysql_query($requete) or die('Erreur SQL !'.$requete.'<br>'.mysql_error()); 

        echo '<font color="red">Désolé, mais cette SOCIETE et GROUPE existent déjà dans notre base.</font>';
//$entrepriseID = mysql_insert_id();

			$entreprise_id = $bd->idDerniereLigne(); //mysql_insert_id();



				}
	}
			
			else
			        {   
        $requete = "INSERT INTO munci_entreprise(entrepriseID,societe, groupe,convention) VALUES('','$societe','$groupe','$convention')";
        mysql_query($requete) or die('Erreur SQL !'.$requete.'<br>'.mysql_error()); 
        
	
        // on affiche le résultat pour le visiteur
        echo '<font color="red">SOCIETE et GROUPE on été ajoutés.</font>';
	
//$entrepriseID = mysql_insert_id();
	
			
			}
quand je fais insert je récupère entrepriseID dans dans la table munci_membre par contre avec update je récupère entrepriseID = 0 dans la table munci_membre.
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

01 sept. 2011, 22:20

mysql_query($requete) or die('Erreur SQL !'.$requete.'<br>'.mysql_error());

$entreprise_id = $bd->idDerniereLigne(); //mysql_insert_id();
y a comme un mélange la ^^

mysql_insert_id ne peux fonctionner sur un update, d'ailleurs tu la deja pour faire l'update....

au final je ne comprend pas ta question :mrgreen:

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 8 Messages

01 sept. 2011, 22:29

Quand je fais insert je récupère l'ID, mais avec update ça me donne 0.

Petit nouveau ! | 8 Messages

01 sept. 2011, 22:32

$entreprise_id = $bd->idDerniereLigne();

c'est déjà déclare en haut

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

04 sept. 2011, 19:06

Modération :
karnabou, si tu n'utilise pas les balises [php] et [code] pour tes prochains messages, et que tu continues à ignorer mes interventions, je cloture la demande. :evil:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 sept. 2011, 20:50

$entreprise_id = $bd->idDerniereLigne(); //mysql_insert_id();
http://php.net/mysql_insert_id
L'ID généré pour une colonne AUTO_INCREMENT par la dernière requête en cas de succès, 0 si la dernière requête n'a pas généré de valeur AUTO_INCREMENT, ou FALSE si aucune connexion MySQL n'a été établie.
donc clairement mysql_insert_id retourne zéro quand la requête n'est pas INSERT (bon ça fonctionne avec replace si insertion !)
tu fait un UPDATE donc ça retourne zéro c'est normal.

de plus tu à DÉJÀ cet id en cas d'update puisqu'il provient de la requête SELECT !!!!!

donc la je pense que tu ne comprend pas non plus ce que tu fait ?

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 8 Messages

05 sept. 2011, 23:10

Bonsoir les amis

Je vous remercie tous, j'ai trouvé la solution, c'était la déclaration du $entreprise_id qui était définie dans un autre fichier :

$entreprise_id = $row['entrepriseID'];