Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/09/2011, 12h54   #1
Invité de passage
 
Inscription : novembre 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 6
Points : 0
Points : 0
Par défaut Requête sql en PHP

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 :
Code :
1
2
$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
karnabou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 13h09   #2
Invité régulier
 
Inscription : mai 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 12
Points : 7
Points : 7
Bonjour,

Afficher $resultat ne t'apportera rien.
Tu peux essayer ce code pour afficher les éventuels résultats :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
if(mysql_num_rows($resultat) > 0)
{
    while ($enr = mysql_fetch_assoc($resultat))
    {
        echo '<pre>';
        print_r($enr);
        echo '</pre>';
    }
}
else
    echo 'aucun résultat';
jinfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 19h05   #3
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Salut,

peux tu montrer comment tu te connectes à mysql ?
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 21h32   #4
Invité de passage
 
Inscription : novembre 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 6
Points : 0
Points : 0
J'ai une table munci_entreprise(entrepriseID, socieite,..) et une table munci_membre(membreID, prenom, nom,entrepriseID...).

maintenant, j'ai ce script :

Code :
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
	// 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
karnabou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 21h45   #5
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Dans ton script pas une seule fois tu affectes un quelconque résultat à ta variable $entrepriseID.

Tu es sensé le récupérer avec ta requête SELECT précédente, mais tu ne fais que vérifier qu'il y a un résultat
Donc ta variable est vide, null ou dans ce cas = 0 puisqu' integer
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 22h52   #6
Invité de passage
 
Inscription : novembre 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 6
Points : 0
Points : 0
Par défaut Problème résolu

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'];
karnabou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 23h18   #7
Invité de passage
 
Homme
Développeur informatique
Inscription : septembre 2011
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Enseignement

Informations forums :
Inscription : septembre 2011
Messages : 1
Points : 1
Points : 1
Bonjour à tous,

J'ai un problème pour la même requête mySQL incluant une variable php:

ma variable $courriel contient une adresse email du type toto@qqpart.fr.

Je souhaite vérifier si $courriel est déjà dans la table, pour cela je fais:

$req = $bdd->query("SELECT courriel FROM table WHERE courriel='$courriel'");

Un cas test qui est censé marcher (toto@qqpart.fr EST dans la base) ne marche pas. Est-ce que cela peut venir de l'arobase ?

Merci
KevMoriarty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 08h49   #8
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Bonjour KevMoriarty,

Ca ne devrait pas être l'arobase. Peux-tu nous montrer ton code de récupération du résultat de requête. C'est sans doute là que le bas blesse.
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 09h33   #9
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Citation:
Envoyé par KevMoriarty Voir le message
$req = $bdd->query("SELECT courriel FROM table WHERE courriel='$courriel'");
Tu as déjà entendu parler des injections sql ? S'il te plaît utilises la fonction mysql_escape_string pour te protéger de ces genres d'attaque.

Tu devrais peut être afficher ta requête...
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 12h50   #10
Invité de passage
 
Inscription : novembre 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 6
Points : 0
Points : 0
Bonjour,

Regarde ça peut être ça va t'aider.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$email = $_POST['email'];
$point = strpos($email,".");
$aroba = strpos($email,"@");
 
if($point=='')
{
echo "Votre email doit comporter un <b>point</b>";
}
elseif($aroba=='')
{
echo "Votre email doit comporter un <b>'@'</b>";
}
else
{
echo "Votre email est: '<a href=\"mailto:"."$email"."\"><b>$email</b></a>'";
}
?>
karnabou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 14h09   #11
Membre habitué
 
Avatar de elvan49
 
Laurent
Développeur Web
Inscription : octobre 2006
Messages : 226
Détails du profil
Informations personnelles :
Nom : Laurent
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2006
Messages : 226
Points : 141
Points : 141
Envoyer un message via Skype™ à elvan49
Désolé, mais ça ce n'est pas le script de récupération de la requête. Ca ressemble plutôt à une validation de ton formulaire...
Si tu n'obtiens pas de réponse à ta requête, c'est :
- soit que tes scripts de connexions sont invalides ou mal paramétrés
- soit que ta comparaison de chaine récupéré avec l'email choisi n'est pas bonne
Il faudrait pouvoir jeter un oeil au script où tu affectes une valeur à la variable $courriel pour t'aider d'avantage

PS : Ca n'enlève rien (bien au contraire) au conseil de sécurité de Thes32
__________________
"n'imprimez ces messages que si nécessaire... Préservez notre planète"
elvan49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h25.


 
 
 
 
Partenaires

Hébergement Web