Page 1 sur 1

pb de refresh sur un include

Posté : 29 juin 2005, 17:12
par VaN
Voila, j'utilise un script trouvé sur internet, permettant de créer automatiquement un beau diagramme en baton a partir de données d'une bdd. Il marche nickel pas de probleme.

par contre, lorsque je recharge ma page qui contient ce script (dans un include()), c'est comme si les valeurs ne se mettaient pas à jour, et le diagramme gradent les derniere valeurs sur lesquelles il se basait, alors qu'il devrait recuperer un id passé en url et faire un bouveau traitement a partir de cette variable. Par contre, si a ce moment la je refresh ma page, il recupere bien l'id passé en url, et regenere le graphique, avec les nouvelles valeurs.

Donc je me demande pourquoi le graphique ne recupere pas l'id au premier chargement de la page, mais pourquoi le fait'il au second ?
<?php
if($_SESSION['access']==2) 
{
  echo ("<font class=\"texte-bienvenue\">
Les informations contenues sur cette page sont réservées à nos partenaires.</font>");
}
else
{
				
  include ("connexionGG.php");
  echo "<center>";
  include("GRAPH.php");
  echo "</center>";
  //$cat = $_GET['cat'];
  ?>
  <center><a href="#">Afficher tous les sondages (format texte)</a></center>
  <br /><br />
  <center>
				
  <?php
  if (isset($_GET['seek']) && $_GET['seek']!='') 
  {
    echo "<div class=\"seek\">";
    echo "<b>-- Search Results --</b>";
    echo"<br /><br />";
    $seek = $_GET['seek'];
    $sql_seek = "SELECT sdg_id, sdg_tit, sdg_txt FROM sondages WHERE sdg_tit LIKE '%$seek%' OR sdg_txt LIKE '%$seek%'";
    $query_seek = mysql_query($sql_seek);

    while ($result_seek = mysql_fetch_array($query_seek)) 
    {
      if ($result_seek['sdg_tit']!='') 
      {
        echo ("<a href=\"index.php?cat=4&seek=".$seek."&sdg=".$result_seek['sdg_id']."\">".$result_seek['sdg_tit']."</a><br>");
      }
    }
    echo "</div>";
  }
 ?>
				
<br />
<div class="seek">
<form action="index.php" method="get">
<input type="hidden" name="cat" value="<?php echo $_GET['cat']; ?>" />
<table width="500" border="0">
<tr>
<td width="300" height="30" align="left">Effectuer une recherche sur les sondages :</td>
<td><input type="text" name="seek" size="26" /></td>
</tr>
<tr>
<td height="30" align="left">Choisir un sondage dans la liste :</td>
<td>
<select name="sdg">
<option value="default">Sondage..</option>
<?php
$sql = "SELECT sdg_id, sdg_tit FROM sondages WHERE sdg_type='Q'";
$query = mysql_query($sql);
while ($result=mysql_fetch_array($query))
{
?>
<option value="<?php echo $result['sdg_id']; ?>"><?php echo $result['sdg_tit']; ?></option>
<?php
}
?>
</select>
</td>
</tr>
<tr>
<td height="30">&nbsp;</td>
<td align="right"><input type="submit" name="sub" value="Submit" />&nbsp;</td>
</tr>
</table>
</form>
</div>
</center>
<?php

}
?>
et voici l'include GRAPH.php, contenant le script gaphique, au cas ou :
<?php


if (isset($_GET['sdg']) && $_GET['sdg']!='default') {
$id = $_GET['sdg'];
$sql_Q = "SELECT * FROM sondages WHERE sdg_id='$id' AND sdg_type='Q'";
$query_Q = mysql_query($sql_Q);
$result_Q = mysql_fetch_array($query_Q);

$sql_R = "SELECT * FROM sondages WHERE sdg_id='$id' AND sdg_type='R'";
$query_R = mysql_query($sql_R);
}
else {
$sql_seek = "SELECT MAX(sdg_id) as id FROM sondages";
$query_seek = mysql_query($sql_seek);
$result_seek = mysql_fetch_array($query_seek);
$id = $result_seek['id'];

$sql_Q = "SELECT * FROM sondages WHERE sdg_id='$id' AND sdg_type='Q'";
$query_Q = mysql_query($sql_Q);
$result_Q = mysql_fetch_array($query_Q);

$sql_R = "SELECT * FROM sondages WHERE sdg_id='$id' AND sdg_type='R'";
$query_R = mysql_query($sql_R);
}

include("class.graphique3dbars.php");
$Graphique = new GraphiqueCommande;

$Graphique->SetBorder		(1, "Noir");
$Graphique->SetGraphPadding	(40, 10, 20, 20);
$Graphique->SetValueShow	(true);

$Graphique->SetGraphTitle	($result_Q['sdg_tit'], "center", 3);
$Graphique->SetGraphFont	(2, "FontNoir");
$Graphique->SetGraphDeepness(10);
$Graphique->SetGraphYScale	(100);
$Graphique->SetBarsColor	("GG", "Noir");


$i=0;
while ($result_R = mysql_fetch_array($query_R)) {
$Data[$i] = $result_R["sdg_resultat"];
$Values[$i] = $result_R["sdg_txt"];
$i=$i+1;
}
$larg = $i * 120;
$Graphique->SetGraphSize (200, $larg);

//$Data 	= array(24, 100, 920, 450, 785, 230);
//$Values = array("Win98", "Win2000", "WinXP", "MacOsX", "Linux", "FreeBSD"); 
 // 60px par enregistrements



$Graphique->SetGraphData	($Values, $Data); 
$Graphique->DrawGraphArea	("temp");

?>

Posté : 30 juin 2005, 09:46
par VaN
^^ : /

Posté : 30 juin 2005, 10:27
par VaN
je comprends tres bien que 2 gros morceaux de code comme ça ne motive personne à tenter d'apporter une solution : / Est ce que une version en ligne du probleme serait plus intéressante ?