Page 1 sur 1

sos problème de requête... :(((

Posté : 28 févr. 2011, 15:38
par dolarol
Bonjour à tous,

Je me suis mise depuis 1 semaine au php pour essayer de faire une galerie photo.
J'en suis à la partie d'administration, et je bloque complètement à ce point!
Si quelqu'un peut me guider pour que je puisse résoudre ce problème ce serait adorable ;))
Je vais tenter de vous expliquer au mieux mon problème :


J'ai créé deux tables :


album_photo (qui a 3 champs) :

-id(key auto-incr)
-position key order
-titre_album

images (qui a 6 champs) :

-id_image(key auto-incr)
-id (le même id de l'album qui vient d'être créé)
-position
-photo_mini
photo_grand
-titre_photo



Je souhaiterais que, dans ma page d'album, lorsque l'utilisateur clic sur le bouton modifier de l'album en question il se trouve sur la page photo et puisse y voir l'ensemble des photos de cet album.
Seulement voilà, je n'obtient rien de tel!

Voilà une partie de la page album qui s'occupe de l'affichage de mon album (qui fonctionne parfaitement) et qui comporte mes boutons delete (qui marche très bien aussi) et modifier (qui m'amène bien à ma page photo... mais je ne sais pas si elle envoie bien ma donnée "titre_album" à la page

<?php
						//connexion à la base de données 
        				define('DB_NAME', '');
       					define('DB_USER', '');
        				define('DB_PASSWORD', '');
        				define('DB_HOST', '');
						$link   =   mysql_connect( DB_HOST , DB_USER , DB_PASSWORD );
						mysql_select_db( DB_NAME , $link );
						mysql_query("SET NAMES UTF8");
	
						// récupération des photos dans le bon ordre
						
						$result =   mysql_query( 'SELECT album_photo.id, album_photo.titre_album FROM album_photo  ORDER BY album_photo.position ASC' , $link );
						while( $photo = mysql_fetch_assoc( $result ))
					{
						?>
    
    						</div>
			  <li id="photo_<?php echo $photo['id'] ?>">
      								<div align="center">
      								<?php echo $photo['titre_album'] ?>
                                  
                                  <TABLE BORDER="0">
  									<CAPTION></CAPTION>
  										<TR>
                                        <TH><form method="post" action="supress.php?id='.$data['id'].'"/>
									<input type="hidden" name="id" value="<?php echo $photo['id'] ?>" />
									<input type="submit" name="del_img" class="delete" value="" />
                                 	</form> </TH>
 										<TH>  <form action="admin_photo.php" method="post" />
									<input type="hidden" name="titre_album" value="<?php echo $photo['titre_album'] ?>" />
									<input type="submit" name="modi_album" class="modif" value="" />
									</form>	</TH>
                                         </TR>
										</TABLE> 
                              </td>
                            	</li>
    							<div align="center">
    					<?php  


et voilà dans ma page photo le code :
 <?php
						//connexion à la base de données 
        				define('DB_NAME', '');
       					define('DB_USER', '');
        				define('DB_PASSWORD', '');
        				define('DB_HOST', '');
						$link   =   mysql_connect( DB_HOST , DB_USER , DB_PASSWORD );
						mysql_select_db( DB_NAME , $link );
						mysql_query("SET NAMES UTF8");
						$Vtitre_album=$_POST['titre_album'];
	
						// récupération des photos dans le bon ordre
						$result =   mysql_query( 'SELECT * FROM images WHERE titre_album="$Vtitre_album ORDER BY position ASC' , $link );
						while( $photo = mysql_fetch_assoc( $result ))
					{
						?>
    
    						</div>
			  <li id="photo _<?php echo $photo['titre_photo'] ?>">
      								<div align="center"><?php echo $photo['titre_album'] ?>
      								<img src="../<?php echo $photo['photo_mini'] ?>"
                                  
                                  <TABLE BORDER="0">
  									<CAPTION></CAPTION>
  										<TR>
                                        <TH><form method="post" action="supress.php?id='.$data['id'].'"/>
									<input type="hidden" name="id" value="<?php echo $photo['id'] ?>" />
									<input type="submit" name="del_img" class="delete" value="" />
                                 	</form> </TH>
 										<TH>  <form action="admin_photo.php" method="post" />
									<input type="hidden" name="titre_album" value="<?php echo $photo['titre_album'] ?>" />
									<input type="submit" name="modi_album" class="modif" value="" />
									</form>	</TH>
                                         </TR>
										</TABLE> 

                            </td>
                            	</li>
    							<div align="center">
    					<?php
Lorsque dans ma requête j'écris :

Code : Tout sélectionner

'SELECT * FROM images WHERE titre_album="$Vtitre_album ORDER BY position ASC'
il ne m'affiche rien sur ma page tandis que lorsque j'écris :

Code : Tout sélectionner

'SELECT * FROM images ORDER BY position ASC'

mes images s'affichent bien avec le titre de la photo correspondant, mais du coup j'ai toutes mes images qui s'affichent et non pas celles seulement de l'album que je souhaite modifier...
Si vous avez des pistes pour me guider vers la bonne solution je suis preneuse... une nuit blanche et toujours pas de vrai résultat :(

Re: sos problème de requête... :(((

Posté : 28 févr. 2011, 16:43
par iaiaiaoaia
'SELECT * FROM images WHERE titre_album="$Vtitre_album ORDER BY position ASC'

ca me parait étrange. il manque les " après la variable php.

"SELECT * FROM images WHERE titre_album='$Vtitre_album' ORDER BY position ASC"

Re: sos problème de requête... :(((

Posté : 28 févr. 2011, 16:58
par misterflo
:afraid:
Salut,
modifie vite le deuxième code, tu as laissé les informations de connexion dont le mot de passe !!
(et par la même occasion, modifie ton mot de passe actuel de ta bdd ^^)
______________________

Au niveau de tes requêtes SQL le problème est que tu recherche le titre de l'album photo dans ta table "images" alors que ce champ n'existe pas !
Tu peux le faire par rapport au champ "id" (que tu devrais peut-être renommer pour éviter de t'embrouiller !)
ce qui donne :
"SELECT * FROM images,album_photo WHERE album_photo.titre_album = '$Vtitre_album' AND images.id = album_photo.id ORDER BY images.position ASC"

Re: sos problème de requête... :(((

Posté : 28 févr. 2011, 17:45
par dolarol
merci mister flo :((((( pas malin de ma part!!
Bon le mot de passe est changé!
Sinon j'ai bien mis les bons guillemets... mais ça ne marche toujours pas :(((

Re: sos problème de requête... :(((

Posté : 28 févr. 2011, 17:53
par dolarol
sinon finalement j'avais ajouté à ma table images justement un champs titre_photo... mais comme je l'ai fait récemment j'ai oublié de le mettre dans mon bilan de ma table... c'est pas malin! si je mets pas toutes les infos correctement ça va pas être facile de m'aider :roll:
Bon sinon, là, je suis en train de suivre tes conseils : je vire justement ce champs titre album dans ma table et j'essaye de recommencer en récupérant plutôt l'id
J'essaye ça et je te renvoie le tout si ça marche pas... si tu veux bien encore m'aider;)))

Re: sos problème de requête... :(((

Posté : 28 févr. 2011, 18:47
par dolarol
Bon même en refaisant tout, en utilisant la récupération d'id, ça ne marche toujours pas :((

Je t'envoie mes modifs que tu me dises ce que tu en penses :



page Album
<?php
						//connexion à la base de données 	$link   =   mysql_connect( DB_HOST , DB_USER , DB_PASSWORD );
						mysql_select_db( DB_NAME , $link );
						mysql_query("SET NAMES UTF8");
	
						// récupération des photos dans le bon ordre
						
						$result =   mysql_query( 'SELECT id, titre_album FROM album_photo  ORDER BY position ASC' , $link );
						while( $photo = mysql_fetch_assoc( $result ))
					{
						?>
    
    						</div>
			  <li id="photo_<?php echo $photo['id'] ?>">
      								<div align="center">
      								<?php echo $photo['titre_album'] ?>
                                  
                                  <TABLE BORDER="0">
  									<CAPTION></CAPTION>
  										<TR>
                                        <TH><form method="post" action="supress.php?id='.$data['id'].'"/>
									<input type="hidden" name="id" value="<?php echo $photo['id'] ?>" />
									<input type="submit" name="del_img" class="delete" value="" />
                                 	</form> </TH>
 										<TH>  <form action="admin_photo.php?id='.$data['id'].'"method="post" />
									<input type="hidden" name="id" value="<?php echo $photo['id'] ?>" />
									<input type="submit" name="modi_album" class="modif" value="" />
									</form>	</TH>
                                         </TR>
                                         
										</TABLE> 	
                                      
                                   							
                                  </td>
                            	</li>
    							<div align="center">
    					<?php
					}
?>
Page Photo :
<?php
						//connexion à la base de données 
			$link   =   mysql_connect( DB_HOST , DB_USER , DB_PASSWORD );
						mysql_select_db( DB_NAME , $link );
						mysql_query("SET NAMES UTF8");
						$id=$_POST['id'];
	
						// récupération des photos dans le bon ordre
						$result =   mysql_query( 'SELECT *  FROM images WHERE "$id"=id ORDER BY images.position' , $link );
						while( $photo = mysql_fetch_assoc( $result ))
					{
						?>
    
    						</div>
			  <li id="photo _<?php echo $photo['id'] ?>">
      								<div align="center"><?php echo $photo['titre_photo'] ?>
      								<img src="../<?php echo $photo['photo_mini'] ?>"
                                  
                                  <TABLE BORDER="0">
  									<CAPTION></CAPTION>
  										<TR>
                                        <TH><form method="post" action="supress.php?id='.$data['id'].'"/>
									<input type="hidden" name="id" value="<?php echo $photo['id'] ?>" />
									<input type="submit" name="del_img" class="delete" value="" />
                                 	</form> </TH>
 										<TH>  <form action="admin_photo.php" method="post" />
									<input type="hidden" name="titre_album" value="<?php echo $photo['titre_album'] ?>" />
									<input type="submit" name="modi_album" class="modif" value="" />
									</form>	</TH>
                                         </TR>
										</TABLE> 


								 
									
                                      
                                   							
                                  </td>
                            	</li>
    							<div align="center">
    					<?php
					}
						?>
Bilan : j'ai bien réussi à récupérer l'id de l'album et à le copier dans la table Image, mais sur ma page Photo il n'y a rien qui apparaît!
J'ai l'impression que c'est mon select ($result) qui ne fontionne pas avec mon where ... :cry:

Re: sos problème de requête... :(((

Posté : 28 févr. 2011, 22:01
par moogli
salut ;)


id= valeur

affiche ta requête avant de l'utiliser pour voir a quoi elle ressemble.
De plus $id n'existe pas mais $_GET['id'] ;)


@+

Re: sos problème de requête... :(((

Posté : 28 févr. 2011, 22:12
par misterflo
Selon la description de tes 2 tables que tu as donné dans ton premier poste, elles semblent correct, tu n'as donc pas besoin (dans le cas présent) de modifier tes tables.
Avec la requête SQL que j'ai fourni dans mon poste ca devrait logiquement marcher, mais...l'as tu testé ? ^^
"SELECT * FROM images,album_photo WHERE album_photo.titre_album = '$Vtitre_album' AND images.id = album_photo.id ORDER BY images.position ASC"

Et juste une autre petite erreur que j'ai oublié de dire, à un moment tu écris dans le premier bouton :
<TH><form method="post" action="supress.php?id='.$data['id'].'"/>
vue que tu n'es pas dans un traitement php, il faut mettre les balises avec un echo :
<TH><form method="post" action="supress.php?id="<?php echo $data['id']; ?>" />

Et dans ton second code, fait attention, il y a un espace dans le id du premier li juste après le "photo" et avant le "_"
<li id="photo_<?php echo $photo['id'] ?>">

Re: sos problème de requête... :(((

Posté : 01 mars 2011, 11:06
par dolarol
Bonjour à tous,

Après avoir suivi tous vos conseils, corrigé toutes les erreurs de syntaxe... ça ne marchait toujours pas... de quoi s'arracher les cheveux!
Mais j'ai finalement trouvé le hic!
En fait j'avais mis dans un même tableau le bouton "delete" et le bouton "modifier"... ce que je ne saisissais pas, c'est que mon bouton "delete" fonctionnait parfaitement (donc l'"id" avait bien été récupéré) tandis qu'avec exactement la même méthode l'id" n'était pas récupéré pour me bouton "modifier"... un mystère... finalement résolu après une série d'essais!
En fait lorsque j'ai supprimé le formulaire du bouton "effacer" comme par magie mon bouton "modifier" à fonctionné parfaitement!
Si je le remettais ça ne fonctionnais pas... Du coup au lieu de mettre mes deux boutons dans un même tableau je les ai mis dans deux div différentes et maintenant tout fonctionne à merveille!!
Par contre si quelqu'un pouvait m'expliquer pourquoi ... car j'aimerais comprendre pourquoi il y avait "conflit"...juste pour mieux apprendre ;)

En tout cas, je tenais vraiment à tous vous remercier pour le temps passer à m'aider! C'est chouette de se sentir moins seule sur un problème de ce type!! Personne autour de moi ne programme et je reste souvent seule à essayer de résoudre ce genre de problème! Je n'hésiterai plus à faire appel à ce super forum!
Merci encore :)))

Re: sos problème de requête... :(((

Posté : 01 mars 2011, 13:45
par misterflo
Pour savoir exactement d'où vient le problème faudrait que l'on puisse voir le dernier code que tu as utilisé, avant que tu supprime le bouton delete.

Au niveau du html, il y a pas mal d'erreur, ca peut être simplement à cause de ca.

Chez moi en utilisant les 2 premiers code que tu as posté dans ton premier message (simplement en corrigeant la requête SQL) le tout marche.