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 30/08/2011, 14h41   #1
Membre à l'essai
 
pat lacaze
Inscription : décembre 2009
Messages : 105
Détails du profil
Informations personnelles :
Nom : pat lacaze

Informations forums :
Inscription : décembre 2009
Messages : 105
Points : 22
Points : 22
Par défaut select dans ma bdd

décidément, j'ai du mal avec les bdd!!!
dans ma bdd, un client peut proposer plusieurs produits,
j'ai donc créé une table client et une table bien.
la table bien possède un champ "client" qui a la même valeur que l'id de la table client

pour éditer la liste des biens proposés, je fais
Code :
1
2
3
4
$sql="SELECT * FROM client  WHERE admin = '".$_SESSION['admin']."' and motpasse = '".$_SESSION['motpasse']."'";
$resultat=mysql_query($sql) or die("Erreur SQL : $sql<br/>".mysql_error());
$client = mysql_fetch_array ($resultat)	;
$id=$client['id'];
puis
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
				                    <tr>
                    <td colspan="3" ><?php
 
$sql="SELECT * FROM bien  WHERE client = '$id'";
$resultat=mysql_query($sql) or die("Erreur SQL : $sql<br/>".mysql_error());
$bien = mysql_fetch_array ($resultat)	;
	echo "<table width=100% align=center border=1>";
	echo "<tr><td align=center>type logement</td><td align=center>ville</td><td></td></tr>";
	while ($bien = mysql_fetch_array ($resultat))
	{
	$index = $bien['index'];
	$type = $bien['type'];
	$ville = $bien['ville'];
	echo "<tr>";
	echo "<td align=center>$type</td>";
	echo "<td align=center>$ville</td>";
	echo "<td align=center>";
	echo "<form action ='biencreation.php'>";	
	echo "<input type='hidden' name='index' value='$index'>";
	echo "<input type='submit'  value='voir'>";
	echo "</form>";
	echo "</td>";	
	echo "</tr>";	
	}
	echo "</table>";	
 
 
 
?></td>
                  </tr>
cela ne marche pas!
voyez vous une erreur dans mon script
merci
kogoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 15h29   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

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

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
oui.
2 ligne 4 et 1 ligne 6.

la première erreur est une question de bonne pratique: pas d'étoile en php, ça marche mais c'est trompeur.

à propos de l'id utilisateur, pourquoi ne pas le stocker directement dans la session?
Si jamais il y a un defaut de sécurité sur le systeme de stockage de tes sessions tu compromet tout tes passwords. tu devrais mieux conserver un booleen qui dit si l'authentification est correcte ou pas.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 20h29   #3
Membre Expert
 
Avatar de Atomya Rise
 
Femme Emilie Lefol
En recherche d'emploi
Inscription : février 2009
Messages : 411
Détails du profil
Informations personnelles :
Nom : Femme Emilie Lefol
Âge : 26
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : En recherche d'emploi
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2009
Messages : 411
Points : 1 277
Points : 1 277
A la ligne 6 de ton deuxième code, tu lis le premier résultat mais tu ne l'exploite pas...
Soit ta ligne ne sert à rien, soit, tu as oublié une partie de ton code....
Du coup, quand tu fais ta boucle, il te manque une ligne....

Quand tu dis que "Ca ne marche pas", c'est à dire ? une erreur ? Si oui, laquelle ?
__________________

Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
Pas de question technique en privé
- Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
- Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)
Atomya Rise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 23h36   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
Tant qu'à faire, autant bien faire :
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
		<tr>
            <td colspan="3">
<?php
		$sql = "SELECT index, type, ville FROM bien WHERE client = '$id';";
		$resultat = mysql_query($sql) or die("Erreur SQL : $sql<br/>".mysql_error());
		while($bien = mysql_fetch_array($resultat))
		{
			$index = $bien['index'];
			$type = $bien['type'];
			$ville = $bien['ville'];
?>
			<table width="100%" align="center" border="1">
				<tr>
					<td align="center">type logement</td>
					<td align="center">ville</td>
					<td>&nbsp;</td>
				</tr>
				<tr>
					<td align="center"><?php echo $type; ?></td>
					<td align="center"><?php echo $ville; ?></td>
					<td align="center">
						<form method="post" action="./biencreation.php">
						<input type="hidden" name="index" value="<?php echo $index; ?>"/>
						<input type="submit" value="voir"/>
						</form>
					</td>
				</tr>
			</table>
<?php		} // fin while ?>
 
			</td>
		</tr>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h06   #5
Membre à l'essai
 
pat lacaze
Inscription : décembre 2009
Messages : 105
Détails du profil
Informations personnelles :
Nom : pat lacaze

Informations forums :
Inscription : décembre 2009
Messages : 105
Points : 22
Points : 22
Par défaut select bdd suite et fin

que de réponses !!!
merci à tous!
pour répondre dans l'ordre:
Pour gene69 :mettre $id en session est bien la solution, tout fonctionne désormais.
j'utilise
Code :
$sql="SELECT * FROM bien  WHERE client = '$id'";
car
Code :
		$sql = "SELECT index, type, ville FROM bien WHERE client = '$id';";
me sort une erreur sql

Erreur SQL : SELECT index, type, ville FROM bien WHERE client = '25';
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index, type, ville FROM bien WHERE client = '25'' at line 1

si tu as une idée, je suis preneur même si * fonctionne.

Pour Atomya Rise : effectivement,
Code :
$bien = mysql_fetch_array ($resultat)	;
était redondant et inutile, je l'ai donc supprimé.

Pour jreaux62 : le while est indispensable car un client peut proposer plusieurs biens.

En tout cas, merci encore à tous pour votre rapidité et vos compétences techniques.
kogoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h14   #6
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par kogoi Voir le message
Pour jreaux62 : le while est indispensable car un client peut proposer plusieurs biens
ok ok ! j'avais pris $id pour l'id du bien (au lieu de l'id du client)
Donc ok avec while ! (et correction de mon précédent message)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h45   #7
Membre Expert
 
Avatar de Atomya Rise
 
Femme Emilie Lefol
En recherche d'emploi
Inscription : février 2009
Messages : 411
Détails du profil
Informations personnelles :
Nom : Femme Emilie Lefol
Âge : 26
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : En recherche d'emploi
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2009
Messages : 411
Points : 1 277
Points : 1 277
Citation:
Envoyé par kogoi Voir le message
Erreur SQL : SELECT index, type, ville FROM bien WHERE client = '25';
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index, type, ville FROM bien WHERE client = '25'' at line 1
En faite, ton erreur est que tu ne mets pas de backquotes autour de tes champs, du coup, celui-ci doit se tromper entre ton champs "index" et l'index de ta table... (le mot clé index de sql comme order par exemple)

De plus, tu as mis un ";" en trop, celui à l'intérieur de la requête....

Code :
$sql = "SELECT `index`, `type`, `ville` FROM bien WHERE client = '$id'";
__________________

Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
Pas de question technique en privé
- Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
- Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)
Atomya Rise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 17h27   #8
Membre à l'essai
 
pat lacaze
Inscription : décembre 2009
Messages : 105
Détails du profil
Informations personnelles :
Nom : pat lacaze

Informations forums :
Inscription : décembre 2009
Messages : 105
Points : 22
Points : 22
Par défaut select bdd suite et fin

merci pour ces précisions
modif effectuées

A + et encore bravo à tous
kogoi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 20h10   #9
Membre Expert
 
Avatar de Atomya Rise
 
Femme Emilie Lefol
En recherche d'emploi
Inscription : février 2009
Messages : 411
Détails du profil
Informations personnelles :
Nom : Femme Emilie Lefol
Âge : 26
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : En recherche d'emploi
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2009
Messages : 411
Points : 1 277
Points : 1 277
Citation:
Envoyé par kogoi Voir le message
merci pour ces précisions
modif effectuées

A + et encore bravo à tous
Pas quoi, et surtout, n'hésite à à voter pour les messages qui t'ont aidé cela ne fera que faire plaisir aux auteurs
Bonne continuation !
__________________

Si un message vous a aidé, pensez à voter positivement pour lui ! Merci
Pas de question technique en privé
- Si on criait sur la place publique les fautes de tout le monde, on ne pourrait plus fréquenter personne ! (Marcel Pagnol)
- Technocrates, c’est les mecs que, quand tu leur poses une question, une fois qu’ils ont fini de répondre, tu comprends plus la question que t’as posée. (Coluche)
Atomya Rise 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 15h01.


 
 
 
 
Partenaires

Hébergement Web