[RESOLU]Changement d'ordre... et ça ne marche plus.

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]Changement d'ordre... et ça ne marche plus.

Re: Changement d'ordre... et ça ne marche plus.

par Stalker » 23 déc. 2013, 16:02

Je vois où est le problème, c'est lorsque je recherche la liste d'étoiles appartenant à l'association que ça me change $star_name... je vais voir ce que je peux faire à ce niveau là.

C'est bon merci beaucoup. J'ai réglé le problème en sauvegardant le nom de l'étoile dans une nouvelle variable que j'utilise ensuite pour le dernier bloc.

Re: Changement d'ordre... et ça ne marche plus.

par Mazarini » 23 déc. 2013, 15:11

Un des problèmes, c'est que l'on ne sais ta d''ou sortent tes variables. En particulier celles qui sont sensées être renseignées avant le code présenté.

$image_gen : jamais initialisée.
$asso : provient de SELECT * FROM `image_gen_desc` WHERE image_gen='".$image_gen."'", une seule association ?
$star_name : peut provenir du select sur la table `etoile` ou d'ailleurs ? Mais plusieurs valeurs pour une association ?

Evites d'utiliser "*", mais met les colonnes explicitement.
Evites d'utiliser extract, mais utilise $star_name = $text2['star_name'] ou directement $text2['star_name'].
Ainsi ca sera plus compréhensible.

Edit, j'ai l'impression que le problème vient de $star_name qui est écrasé lors de la lecture du select de la table etoile.

Re: Changement d'ordre... et ça ne marche plus.

par Stalker » 23 déc. 2013, 12:42

Mettre les dernière lignes :
        }
echo"</ul>";

à la fin.
Elles y sont déjà non?

Re: Changement d'ordre... et ça ne marche plus.

par Stalker » 23 déc. 2013, 12:25

Le troisième bloc était en première position avant le changement d'ordre et le bug

Le blog 1 et 2 sont liés, si l'étoile appartient à une association, j'affiche et la description de l'association et la liste d'étoiles lui appartenant.

Le troisième bloc est indépendant.

Quand l'étoile appartient à une association, seul les deux premiers blocs marchent maintenant alors qu'avant les trois s'affichaient avant(et le code n'a pas changé, seulement l'ordre). Lorsque l'étoile est solitaire (asso est vide dans la BDD) le troisième bloc s'affiche seul comme prévu.

star_name est juste le nom de l'étoile, il ne fait pas vraiment le lien entre le bloc 1 et 3, qui marchent très bien tout seuls

Re: Changement d'ordre... et ça ne marche plus.

par Mazarini » 23 déc. 2013, 12:17

Il me semble que le second pavé et le troisième sont liés. Le second affiche une url et le troisième la description de l'url (le lien se fait par starname).
Il faut peut être inclure le troisième pavé dans le while du second pour avoir la bonne url avec la bonne description.

Mettre les dernière lignes :
        }
echo"</ul>";

à la fin.

Si c'est vraiment la solution de ton problème, il y a une petit problème de conception sur la base donnée et sur la programmation :
1) boucle sur un select
2) modification de la clé (starname) pour faire le select suivant.

Edit : les remarques de moogli reste vrai, j'ai du utiliser une boule de cristal. Je me fait chier au boulot, donc ca explique certaine chose. En plus, mon boulot consiste souvent à déboguer des trucs que je ne peux pas tester et/ou que je ne comprends pas.

Re: Changement d'ordre... et ça ne marche plus.

par moogli » 23 déc. 2013, 12:16

salut,

Il faut plus d'info c'est qu'elle partie du code qui te pose problème ?

As tu essayé de debuger (affiche les requêtes sql et exécute les dans un client mysql, ajoute des echo pour savoir si chaque étape se passe bien etc etc.


@+

[RESOLU]Changement d'ordre... et ça ne marche plus.

par Stalker » 23 déc. 2013, 11:42

Bonjour.

L'erreur vous paraitra sans doutes évidente mais je ne la trouve pas. Pour chaque page je génère plusieurs petits textes l'un après l'autre et tout marchait très bien... jusqu'à ce que j'échange bétement avec un copier-coller un texte de place. Depuis, le dernier texte ne s'affiche pas si le premier et le deuxième s'affichent, alors qu'avant le changement d'ordre tout s'affichait et surtout que ce texte est indépendant des deux autres!
<?php
$req_image_gen_desc="SELECT * 
					 FROM  `image_gen_desc` WHERE image_gen='".$image_gen."'";
$res_image_gen_desc=mysql_query($req_image_gen_desc)
           or die ("la requete image_gen_desc ne peut pas être executee");
		   
While ($desc=mysql_fetch_array ($res_image_gen_desc))
	{
	extract ($desc);
	$desc=utf8_encode($desc_fr);
	echo"$star_name $desc";
	}
	

$req_asso="SELECT * FROM assoc WHERE asso_name='".$asso."'";
$res_asso=mysql_query($req_asso)
		  or die ("fuck ça ne marche pas!");	
while ($text1=mysql_fetch_array($res_asso))
	{
		extract($text1);
		$asso_desc=utf8_encode($asso_desc)
		;
		echo"<br>
			 <br>$asso_desc";
	}
echo"<ul>";
$req_asso2="SELECT star_name FROM etoile WHERE asso='".$asso."' ORDER BY star_name";
$res_asso2=mysql_query($req_asso2)
		  or die ("marre d'inventer des messages d'erreur");	
while ($text2=mysql_fetch_array($res_asso2))
	{
		extract($text2);
		$star_url=str_replace(' ','_',$star_name);
		$star_url=str_replace('+','plus',$star_url);
		echo"<li><b><a href='index.php?CONTENU=catalogue&star_url=$star_url'>$star_name</a></b>";
	}
echo"</ul>";

$req_text="SELECT description FROM fiches WHERE name='".$star_name."'";
$res_text=mysql_query($req_text)
		  or die ("fuck ça ne marche pas");	
while ($text3=mysql_fetch_array($res_text))
	{
		extract($text3);
		$description=utf8_encode($description)
		;
		echo"$description";
	}

?>
Si vous pouviez m'aider... j'ai d'autres petits textes à ajouter et j'aimerais que ce problème ne se reproduise plus lors des ajouts!