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 31/05/2011, 15h05   #1
Invité régulier
 
Homme Pierre
Étudiant
Inscription : mai 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : mai 2011
Messages : 15
Points : 5
Points : 5
Par défaut requete pour verifier la presence d'une donnée avant de l'inserer

bonjour j'ai un léger soucis lorsque j'essaie de faire un contrôle avant d'insérer une donnée dans ma base de donnée mysql . j'ai une erreur qui s'affiche(x3 avec ma boucle):
Warning: mysql_result() expects parameter 1 to be resource, string given in C:\wamp\www\mysql.php on line 84


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
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
<?php
	$fp = fopen("test.xml","r"); //ouverture en lecture
	$xmlstr = "";
	while (!feof($fp)) { //on parcourt toutes les lignes
		$xmlstr .= fgets($fp, 4096); // lecture du contenu de la ligne
	}
 
	$xmlObject=new SimpleXMLElement($xmlstr);
 
	$db=mysql_connect("localhost", "root") or die("connection impossible");
	mysql_select_db("projet",$db) or die ("base non trouvé");
 
	class agent
{
public $matricule;
public $dateentree;
public $civilite;
public $nomusuel;
public $nompatronymique;
public $nommarital;
public $prenom;
}
$i=0;
 
 
		$result = $xmlObject->xpath('//dsml:dsml/dsml:directory-entries/dsml:entry/dsml:attr[@name="matricule"]/dsml:value');
		$result1= $xmlObject->xpath('//dsml:dsml/dsml:directory-entries/dsml:entry/dsml:attr[@name="entree"]/dsml:value');			
		$result2= $xmlObject->xpath('//dsml:dsml/dsml:directory-entries/dsml:entry/dsml:attr[@name="civilite"]/dsml:value');
		$result3= $xmlObject->xpath('//dsml:dsml/dsml:directory-entries/dsml:entry/dsml:attr[@name="nomUsuel"]/dsml:value');
		$result4= $xmlObject->xpath('//dsml:dsml/dsml:directory-entries/dsml:entry/dsml:attr[@name="nomPatronymique"]/dsml:value');
		$result5= $xmlObject->xpath('//dsml:dsml/dsml:directory-entries/dsml:entry/dsml:attr[@name="nomMarital"]/dsml:value');
		$result6= $xmlObject->xpath('//dsml:dsml/dsml:directory-entries/dsml:entry/dsml:attr[@name="prenom"]/dsml:value');
 
		foreach ($result as $title) {  
		$ag[$i]=new agent;
		$ag[$i]->matricule=$title;
		$i+=1;
		echo $title . "\n"; }
		$i=0;
		foreach ($result1 as $title1) { 
 
		$ag[$i]->dateentree=$title1;
		$i+=1;
		echo $title1 . "\n"; }
		$i=0;	
		foreach ($result2 as $title2) { 
 
		$ag[$i]->civilite=$title2;
		$i+=1;		
		echo $title2 . "\n";  }
		$i=0;
		foreach ($result3 as $title3) {  
		$ag[$i]->nomusuel=$title3;
		$i+=1;
		echo $title3 . "\n";  }
		$i=0;
		foreach ($result4 as $title4) {  
		$ag[$i]->nompatronymique=$title4;
		$i+=1;
		echo $title4 . "\n";  }
		$i=0;
		foreach ($result5 as $title5) {  
		$ag[$i]->nommarital=$title5;
		$i+=1;
		echo $title5 . "\n";  }
		$i=0;
		foreach ($result6 as $title6) {  
		$ag[$i]->prenom=$title6;
		$i+=1;
		echo $title6 . "\n";  }
		$i=0;
		for($i=0;$i < 3;$i++) 
		{
		$title=$ag[$i]->matricule;
		$title1=$ag[$i]->dateentree;
		$title2=$ag[$i]->civilite;
		$title3=$ag[$i]->nomusuel;
		$title4=$ag[$i]->nompatronymique;
		$title5=$ag[$i]->nommarital;
		$title6=$ag[$i]->prenom;
		$controle="select matricule 
		from agent
		where matricule=$title";
mysql_query($controle) or die("erreur sur la requete sql");
		$res=mysql_result($controle ,0);
		echo $res;
		if ($res=$title)
		{echo"enregistrement de ja present pour cet agent";
		}
		else{
		$sql="INSERT INTO AGENT (idagent,matricule,entree,civilite,nomUsuel,nomPatronymique,nomMarital,prenom)
		values('$i','$title','$title1','$title2','$title3','$title4','$title5','$title6')";
		mysql_query($sql) or die("erreur sur la requete sql");
		}
		}
 
 
 
	mysql_close($db);
	fclose($fp);
 
?>
Je recherche juste a se qu'il ni ait pas de doublon dans la base de donnée.Apparemment l'erreur viendrait du type de la valeur retournée mais je n'en suis pas sur et ne voit pas comment la résoudre .
Krabbos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 15h14   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonsoir,

Tu dois lancer la requête avec mysql_query et c'est le résultat que tu dois utiliser avec mysql_result.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 15h24   #3
Invité régulier
 
Homme Pierre
Étudiant
Inscription : mai 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : mai 2011
Messages : 15
Points : 5
Points : 5
merci j'avais une erreur dans le copier coller du code j'avais oublier mysql_query mais l'erreur reste la meme toujours un probleme au niveau de mysq_lresult ligne 85 maintenan avec l'ajout de mysql_query
Krabbos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 15h33   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
Citation:
Envoyé par andry.aime Voir le message
Tu dois lancer la requête avec mysql_query et c'est le résultat que tu dois utiliser avec mysql_result.
Code :
1
2
$result = mysql_query($controle) or die("erreur sur la requete sql");
$res=mysql_result($result, 0);
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 15h33   #5
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Code :
1
2
3
4
5
$controle="select matricule 
		from agent
		where matricule=$title";
$result=mysql_query($controle) or die("erreur sur la requete sql");
		$res=mysql_result($result ,0);
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 15h55   #6
Invité régulier
 
Homme Pierre
Étudiant
Inscription : mai 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : mai 2011
Messages : 15
Points : 5
Points : 5
Merci de répondre aussi rapidement j'ai testé se que vous m'avez dit et voila une nouvelle erreur :
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 6 in C:\wamp\www\mysql.php on line 85


Commençant avec mysql je ne voit pas trop d'où vient l'erreur.
Krabbos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h10   #7
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Parce que la requête ne retourne pas un enregistrement.
Si le champ matricule n'est pas un entier, tu dois la valeur a testé dans deux single quote. N'utilise pas mysqul_result mais mysql_num_rows
Code :
1
2
3
4
5
6
7
$controle="select matricule 
		from agent
		where matricule=$title";
$result=mysql_query($controle) or die("erreur sur la requete sql");
if(mysql_num_rows ($result )>0){
echo"enregistrement de ja present pour cet agent";
}
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/05/2011, 16h23   #8
Invité régulier
 
Homme Pierre
Étudiant
Inscription : mai 2011
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : mai 2011
Messages : 15
Points : 5
Points : 5
vraiment merci de cette spontanéité.
Sa marche maintenant.
Krabbos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h42.


 
 
 
 
Partenaires

Hébergement Web