IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

select dans ma bdd [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 105
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    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 : 1 769
    Par défaut
    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.

  3. #3
    Membre émérite Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Par défaut
    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 ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Tant qu'à faire, autant bien faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>
    Dernière modification par Invité ; 31/08/2011 à 14h17.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 105
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="SELECT * FROM bien  WHERE client = '$id'";
    car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		$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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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.

  6. #6
    Invité
    Invité(e)
    Par défaut
    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)

  7. #7
    Membre émérite Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT `index`, `type`, `ville` FROM bien WHERE client = '$id'";

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 105
    Par défaut select bdd suite et fin
    merci pour ces précisions
    modif effectuées

    A + et encore bravo à tous

  9. #9
    Membre émérite Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Par défaut
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Select sur une table qui existe dans 2 BDD
    Par Jinkas dans le forum Accès aux données
    Réponses: 7
    Dernier message: 26/06/2013, 19h43
  2. [MySQL] Select avec un array dans ma BDD
    Par voyageurdumonde dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/05/2011, 08h13
  3. Réponses: 5
    Dernier message: 26/02/2007, 01h50
  4. [MySQL] selection avec un * dans une bdd
    Par leodi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/06/2006, 02h58
  5. [MySQL] Pb d'insertion d'une valeur de champ select dans une Bdd
    Par Mimisator dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 20/10/2005, 18h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo