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 12/02/2011, 15h44   #1
Invité de passage
 
Inscription : février 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 11
Points : 1
Points : 1
Par défaut Pb pour récuperer une variable

Bonjour,

Le but de ce script est d'ajouter le terme "Achat" dans la table 'Objet' sur la colonne 'Satut', ainsi que le nom de l'acheteur dans la colonne 'NomAcheteur'.

La page 'traitement1.php' est une menu déroulant qui affiche les objets de la personne sélectionné sur la page précédente, ainsi qu'un checkbox a la fin de chaque ligne. Lorsque l'utilisateur choisie l'objet qui désir acheter à la personne sélectionné, il doit cliquer sur "envoyer".

Ensuite il est redirigé sur "fenetre.php"

Cette page vérifie si l'objet n'a pas déjà était acheté, sinon il ajoute 'Achat' et 'NomAcheteur' comme dit au début dans la base de données.

Enfaite le problème est que je n'arrive pas à récupérer l'objet sélectionné dans le menu déroulant, enfin il me semble. Voici mes scripts:

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
 
<?php
	session_start();
	if (!isset($_SESSION['login'])) {
	header ('index.php');
	exit();
	}
	include("config.php")
	?>
 
<?php
mysql_connect($host, $user, $password); 
mysql_select_db ($database) or die ("connection imposible");
 
$rq=$_POST['Personne'];
$ki=$_SESSION['login'];
 
 
if ($_POST['envoi']=="Voir objet"){
$Verif="SELECT user,ami FROM Amis WHERE user='$ki' AND ami='$rq'";
$ty=mysql_query($Verif);
$data = mysql_fetch_array($ty);
if ($data){
	echo "<form action='fenetre.php' method='post' >";
	$rz="SELECT nom,categorie,vignette,lien FROM Objet INNER JOIN Membre ON Objet.id_Membre=Membre.id_Membre WHERE login='$rq'";
	$result=mysql_query($rz) or die (" Execution de la requete impossible");
	$rq=ucfirst($rq);
	echo "<h1>$rq</h1>";
	echo "<table cellspacing='15'>";
	echo "<tr><td colspan='4'><hr></td></tr>";
	while ($ligne=mysql_fetch_assoc($result))
	{ extract($ligne);
	echo "<tr>\n
		<td>$nom</td>\n
		<td>$categorie</td>\n
		<td>$vignette<\td>\n
		<td>$lien<\td>\n
		<td><input type='checkbox' name='Acheter[]' value='".$ligne['nom']."'></td>";
 
	echo "<tr><td colspan='3'><hr></td></tr>\n";
	}
	echo "<input type='submit'";
	echo "</form>\n";
	echo "</table>\n";
	}
	else{
	echo "Ce membre ne fait pas partie de vaut amie, ajouter le pour voir c'est objet";
	}
	}
if ($_POST['envoi']=="Ajouter en amis"){
 
	echo "vous, $ki, avez ajouter $rq à vos amis";
	$rqami='INSERT INTO Amis VALUES ("'.mysql_escape_string($ki).'","'.mysql_escape_string($rq).'")' or die ("impossible d'ajouter un ami");
	mysql_query($rqami) or die ("erreur2.");
 
	}
?>
<html>	
	<head>
	<title> bienvenue dans votre espace pour voir vaut amis </title>
	</head>
	<body>
<p> <a href='amis.php' > retour </a> </p>
</body>
</html>
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
 
<?php
session_start();
if (!isset($_SESSION['login'])) {
	header ('index.php');
	exit();
}
include("config.php")
?>
 
 
<?php 
mysql_connect($host, $user, $password); 
mysql_select_db ($database) or die ("connection imposible");
include("traitement1.php");
 
 
foreach (Acheter as $valeur){
$rt="SELECT Statut FROM Objet WHERE nom='$valeur'";
$res=mysql_query($rt);
$pi=mysql_fetch_assoc($res);
if($pi[0]="NULL"){
echo "l'objet $valeur est déja acheté";
}
else{
$qui=$_SESSION['login']
$sql="UPDATE Objet SET Statut='Achat',NomAcheteur='$qui' WHERE nom='$valeur'";
mysql_query($sql) or die ("erreur2.");
 
}
 
echo "<h4> Vous avais confirmé votre achat </h4>";
}
 
?>
<html>	
	<head>
	<title> bienvenue dans votre espace pour acheter un objet </title>
	</head>
	<body>
<p> <a href='traitement1.php' > retour </a> </p>
</body>
</html>
Merci si vous pouvez me sortir de cette galère
stark57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 17h16   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Je pense que tu verras un problème ici :
Code :
foreach (Acheter as $valeur){
Au passage, active l'affichage de la totalité des erreurs quand tu developpes, cette ligne aurait du t'avertir d'une constante non définie.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 17h29   #3
Invité de passage
 
Inscription : février 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 11
Points : 1
Points : 1
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
foreach ($Acheter as $valeur){
$rt="SELECT Statut FROM Objet WHERE nom='$valeur'";
$res=mysql_query($rt);
$pi=mysql_fetch_assoc($res);
if($pi[0]="NULL"){
echo "l'objet $valeur est déja acheté";
}
else{
$qui=$_SESSION['login'];
$sql="UPDATE Objet SET Statut='Achat',NomAcheteur='$qui' WHERE nom='$valeur'";
mysql_query($sql) or die ("erreur2.");
 
}
J'ai un peu modifié la partie du foreach.

L'erreur est la suivante:
Citation:
Warning: Invalid argument supplied for foreach()
stark57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2011, 19h02   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Le retour du formulaire est dans la variable $_POST
Code :
foreach ($_POST['Acheter'] as $valeur){
Encore une fois, configure ton serveur pour afficher toutes les erreurs, ta correction egalement doit provoquer une erreur puisque la variable $Acheter n'existe pas.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 10h40   #5
Invité de passage
 
Inscription : février 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 11
Points : 1
Points : 1
J'ai modifier ce que vous m'avais dit, et j'ai afficher les toutes les erreurs ( je connaissais pas cette possibilité désolé).

Voila donc le résultat:
Citation:
Notice: A session had already been started - ignoring session_start() in /home/students/mhumbe/public_html/traitement1.php on line 2

Notice: Undefined index: Personne in /home/students/mhumbe/public_html/traitement1.php on line 14

Notice: Undefined index: envoi in /home/students/mhumbe/public_html/traitement1.php on line 18

Notice: Undefined index: envoi in /home/students/mhumbe/public_html/traitement1.php on line 49
retour
l'objet un joué est déjà acheté
Vous avais confirmé votre achat

retour
stark57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 11h10   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Pour toutes ces erreurs, c'est un problème de logique de ton code :

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
<?php
mysql_connect($host, $user, $password); 
mysql_select_db ($database) or die ("connection imposible");
$ki=$_SESSION['login'];
 
if (isset($_POST['envoi'])) {
 
$rq=mysql_real_escape_string($_POST['Personne']);
 
if ($_POST['envoi']=="Voir objet"){
 
$Verif="SELECT user,ami FROM Amis WHERE user='$ki' AND ami='$rq'";
$ty=mysql_query($Verif);
$data = mysql_fetch_array($ty);
if ($data){
	echo "<form action='fenetre.php' method='post' >";
	$rz="SELECT nom,categorie,vignette,lien FROM Objet INNER JOIN Membre ON Objet.id_Membre=Membre.id_Membre WHERE login='$rq'";
	$result=mysql_query($rz) or die (" Execution de la requete impossible");
	$rq=ucfirst($rq);
	echo "<h1>$rq</h1>";
	echo "<table cellspacing='15'>";
	echo "<tr><td colspan='4'><hr></td></tr>";
	while ($ligne=mysql_fetch_assoc($result))
	{ extract($ligne);
	echo "<tr>\n
		<td>$nom</td>\n
		<td>$categorie</td>\n
		<td>$vignette<\td>\n
		<td>$lien<\td>\n
		<td><input type='checkbox' name='Acheter[]' value='".$ligne['nom']."'></td>";
 
	echo "<tr><td colspan='3'><hr></td></tr>\n";
	}
	echo "<input type='submit'";
	echo "</form>\n";
	echo "</table>\n";
	}
	else{
	echo "Ce membre ne fait pas partie de vaut amie, ajouter le pour voir c'est objet";
	}
	}
elseif ($_POST['envoi']=="Ajouter en amis"){
 
	echo "vous, $ki, avez ajouter $rq à vos amis";
	$rqami="INSERT INTO Amis VALUES ('$ki','$rq')" or die ("impossible d'ajouter un ami");
	mysql_query($rqami) or die ("erreur2.");
 
	}
}
?>
<html>	
	<head>
	<title> bienvenue dans votre espace pour voir vaut amis </title>
	</head>
	<body>
<p> <a href='amis.php' > retour </a> </p>
</body>
</html>
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 11h26   #7
Invité de passage
 
Inscription : février 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 11
Points : 1
Points : 1
Oui mais le problème le script là marche très bien il ajoute bien les amis et affiche bien toute les objets de la personne sélectionné.
stark57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 12h20   #8
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
en quoi est-ce un problème ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 18h12   #9
Invité de passage
 
Inscription : février 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 11
Points : 1
Points : 1
Oui ca n'est pas un problème, mais je ne sais pas comment le modifier pour que la page "fenetre.php" fonctionne.
stark57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2011, 19h20   #10
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Qu'est ce qui ne fonctionne pas ?
sabotage 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 10h02.


 
 
 
 
Partenaires

Hébergement Web