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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] problème d'ecriture xml via formulaire

Re: problème d'ecriture xml via formulaire

par xTG » 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.

Re: problème d'ecriture xml via formulaire

par bbhood » 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...

Re: problème d'ecriture xml via formulaire

par bbhood » 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.

Re: problème d'ecriture xml via formulaire

par xTG » 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/

Re: problème d'ecriture xml via formulaire

par bbhood » 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

Re: problème d'ecriture xml via formulaire

par bbhood » 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

Re: problème d'ecriture xml via formulaire

par xTG » 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'];
}

Re: problème d'ecriture xml via formulaire

par Alan581 » 18 sept. 2012, 15:07

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

Re: problème d'ecriture xml via formulaire

par bbhood » 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 :)

Re: problème d'ecriture xml via formulaire

par xTG » 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...

Re: problème d'ecriture xml via formulaire

par bbhood » 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 !

Re: problème d'ecriture xml via formulaire

par xTG » 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.

Re: problème d'ecriture xml via formulaire

par bbhood » 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 !

Re: problème d'ecriture xml via formulaire

par xTG » 17 sept. 2012, 16:52

Tu aurais affiché l'id catégorie que tu aurais peut être compris le retour en fait.
Essaies ceci et tu comprendras mieux :
$sql = "SELECT * FROM image WHERE Id_Cat IN (SELECT categorie.Id FROM categorie WHERE categorie.Id_Galerie='$gal') ORDER BY Annee DESC GROUP BY Id_Cat";
;)

Re: problème d'ecriture xml via formulaire

par bbhood » 17 sept. 2012, 16:20

j'y ai passé tout le we, resultat, j'ai refait le code, c'est mieux mais pas que...


	

$sql_gal = "SELECT * FROM galerie WHERE Id='$gal'";
	$req_gal = mysql_query($sql_gal) or die('Erreur SQL'.mysql_error());
	$nom_galerie = $result_gal['Name'];
	$chemin = $result_gal['Chemin'];
	
	$sql_cat = "SELECT * FROM categorie WHERE Id_Galerie='$gal';";
	$req_cat = mysql_query($sql_cat) or die('Erreur SQL'.mysql_error());

		
/* debut d'ecriture dans le xml*/



echo 'debut_galerie';


	
while ($result_gal = mysql_fetch_array($req_cat)) {


$nom_cat= $result_gal['Name'];

echo '<br/>debut_categorie';




$sql = "SELECT * FROM image WHERE Id_Cat IN (SELECT categorie.Id FROM categorie WHERE categorie.Id_Galerie='$gal') ORDER BY Annee DESC";

$req = mysql_query($sql) or die("mysql connect Failled on : selection de la categorie");


		if (mysql_num_rows($req)>0) {
				echo '<br/> debut image';
				
				while ($result = mysql_fetch_array($req)) {
	
				echo '<br> continue image';
				echo $result['Id_Cat'];
				echo '<br/>'.$result['Id'];
				
				}
				
                       echo '<br/> fin image';
		}

echo '<br/> fin categorie';

}
echo '<br/> fin galerie';


(j'ai simplifié le code pour poser la question)
j'ai donc une partie du resultat attendu : j'ai autant de catégories que j'en ai dans ma bdd, mais par contre, a l'interieur des catégories, j'ai toutes les images qui s'affichent, puisque recherchées selon l'id de la galerie. Et j'ai beau chercher je ne sais pas comment les classer...