[RESOLU] problème d'ecriture xml via formulaire

Eléphanteau du PHP | 16 Messages

17 sept. 2012, 17:52

erreur sql

mysql connect Failled on : selection de la categorie

du coup je comprend encore moins :(


EDIT, le group by devait se trouver avant le order by



donc j'ai 1 image par catégorie appelée qui s'affiche, et ce pour chaque catégorie.


Si je comprend bien mes requêtes, en français ça donne :

j’obtiens un id de galerie via un formulaire

a partir ce cet id, je recherche dans la table catégorie ce qui correspond a cet id

j'obtiens un ou plusieurs id catégorie

je recherche dans la table image tout ce qui correspond a cet id catégorie

j'affiche mes résultats regroupés par catégorie

en tous cas, c'est ce que je veux qui se passe !

ViPHP
xTG
ViPHP | 7331 Messages

17 sept. 2012, 18:39

La traduction littérale de la requête est : Sélectionnes moi toutes les images de la galerie X regroupées (rangées) par catégorie puis ordonnées par année.

Eléphanteau du PHP | 16 Messages

18 sept. 2012, 09:35

effectivement c'est pas ce que je veux...

donc je sens que je vais avoir besoin d'un foeach, mais j'ai jamais été foutu de l'utiliser !

ViPHP
xTG
ViPHP | 7331 Messages

18 sept. 2012, 10:49

Expliques nous alors, car c'est exactement ce que tu disais plus haut. x)
Car avant de jouer avec foreach et compagnie ça serait peut être mieux d'avoir une requête SQL correcte...

Eléphanteau du PHP | 16 Messages

18 sept. 2012, 11:22

ben non, c'est exactement ce que je veux comme requête :

Sélectionnes moi toutes les images de la galerie X regroupées (rangées) par catégorie puis ordonnées par année.

Ou pour chaque catégorie que tu trouves dans la galerie x, ordonne les par année puis affiche moi les images présentes dans celle ci.

Dans ma tête c'est la même chose, mais visiblement pas :)

Eléphanteau du PHP | 12 Messages

18 sept. 2012, 15:07

Bonjour à tous,
je suis nouveau,j’espère aussi avoir de l' aide de votre part.Merci d'avance

ViPHP
xTG
ViPHP | 7331 Messages

18 sept. 2012, 16:34

Tiens mon post précédent a disparu... Bah peut être une erreur que je n'ai pas vu et j'ai fait retour à la liste des forums. :lol:

Bref je disais...
Si la requête est correcte il ne te reste plus qu'à l'interpréter selon tes besoins.
Donc à savoir différencier les différentes catégories.
Pour cela tu as déjà utilisé la méthode des flags dans ton code initial qui est tout à fait justifié.
$flag = '';
while( $r = ... ){
  if( $flag != $r['flag'] ) {
    echo 'nouveau flag';
    $flag = $r['flag'];
  }
  echo $r['data'];
}

Eléphanteau du PHP | 16 Messages

18 sept. 2012, 16:43

ah...
mince, j'avais supprimé ça car je comprenais pas vraiment comment ça fonctionnait...
je vais voir ce qu'il en est

Eléphanteau du PHP | 16 Messages

18 sept. 2012, 18:27

j'ai du mieux dans le sens ou j'ai les images triées par categorie :
/* 1 selection des galeries */	
	$sql_gal = "SELECT * FROM galerie WHERE Id='$gal'";
	$req_gal = mysql_query($sql_gal) or die('Erreur SQL'.mysql_error());
	$result_gal = mysql_fetch_array($req_gal);
	$nom_galerie = $result_gal['Name'];
	$chemin = $result_gal['Chemin'];

	echo 'debut_galerie';
	echo '<br/> id galerie = '.$result_gal['Id'];

/* 2 selection des categories */	
	
	$sql_cat = "SELECT * FROM categorie WHERE Id_Galerie='$gal' ORDER BY Name";
	$req_cat = mysql_query($sql_cat) or die('Erreur SQL'.mysql_error());
	
	while ($result_cat = mysql_fetch_array($req_cat)) {
		$cat_prec = '';
		$cat = $result_cat['Id'];
		

		echo '<br/>debut_categorie';
		
		echo '<br/> id categorie = '.$result_cat['Id'];


/* 3 selection des images */
		$sql = "SELECT * FROM image WHERE Id_Cat = '$cat' GROUP BY Id_Cat ORDER BY Annee DESC";
		$req = mysql_query($sql) or die(mysql_error());
			if (mysql_num_rows($req)>0) {
				echo '<br/> debut image';
				
					while ($result = mysql_fetch_array($req)) {
						$cat_prec = $cat;
						echo '<br> continue image';
						echo '<br/> id galerie = '.$gal;
						echo '<br/> id categorie = '.$result['Id_Cat'];
						echo '<br/> id image = '.$result['Id'];
					}
					
				echo '<br/> fin image';
				
			}

			echo '<br/> fin categorie';

	}

echo '<br/> fin galerie';
mais j'ai l'impression que le nombre d'image est borné par le nombre de catégorie, car il y en a 2 dans chaque categorie

ViPHP
xTG
ViPHP | 7331 Messages

18 sept. 2012, 18:41

Ta seconde requête ne sert à rien.
Dans la troisième tu sélectionnes à la fois les catégories et les images. ;)
Si c'est pour récupérer le nom de la catégorie ou autre information de la table categorie utilises une jointure.
http://sqlpro.developpez.com/cours/sqlaz/jointures/

Eléphanteau du PHP | 16 Messages

19 sept. 2012, 17:29

et non, ce que je veux c'est récupérer toutes les catégories d'une galerie x, et pour chaque catégorie, afficher les images. c'est pour ça que je fais ma 2eme requête, pour récupérer les catégories d'une galerie donnée.

Eléphanteau du PHP | 16 Messages

19 sept. 2012, 17:52

c'est le Group by qui posait problème. j'ai ce que j'attend, pour l'instant, maintenant faut que je reintegre les transferts, l'ecriture xml...

ViPHP
xTG
ViPHP | 7331 Messages

19 sept. 2012, 21:04

et non, ce que je veux c'est récupérer toutes les catégories d'une galerie x, et pour chaque catégorie, afficher les images. c'est pour ça que je fais ma 2eme requête, pour récupérer les catégories d'une galerie donnée.
Comme je te l'ai dit ta seconde requête ne sert à rien.
C'est comme si tu faisais une requête récupérant tous les ids images de la table image puis une requête sur la même table pour chaque image pour obtenir son url.