par
VaN » 02 sept. 2005, 17:25
Bah en fait nan
au niveau de mon select, impec, c'est trié comme il faut. mais lorsque le clique pour choisir une date, au lieu de me prendre cette date la en compte, il me prend celle juste en dessous. Il me semble que j'ai deja été confronté a ce probleme, comme quoi un musql_fetch_array crée un tableau, et se positionne a la premiere ligne, et ça causait un probleme de ce genre .
le code pour mieux y voir (ou pas

)
<form action="index.php" name="sort" method="get">
<?php
if (isset($_GET['cat']))
{
?>
<input type="hidden" name="cat" value="<?php echo ($_GET['cat']); ?>" />
<?php
}
?>
<select name="date" onchange="submit()" style="margin:0px; ">
<option value="no">Choose a date</option>
<?php
if(isset($_GET['cat']) && $_GET['cat']=='2')
{
$sql_def = "SELECT DISTINCT date FROM media_articles";
$sql_sort = "SELECT DISTINCT DATE_FORMAT(date,'%M %Y') AS date2 FROM media_articles ORDER BY date DESC";
}
else
{
$sql_def = "SELECT DISTINCT date FROM articles";
$sql_sort = "SELECT DISTINCT DATE_FORMAT(date,'%M %Y') AS date2 FROM articles ORDER BY date DESC";
}
$query_def = mysql_query($sql_def);
$query_sort = mysql_query($sql_sort) OR die ("Erreur : ".mysql_error());
while ($result_sort = mysql_fetch_array($query_sort)) {
$result_def = mysql_fetch_array($query_def);
$date = $result_sort['date2'];
$explode = explode(" ",$date);
$annee_exp = $explode[1];
//$sql = "SELECT mois FROM mois WHERE id_mois='$mois_exp'";
//$query = mysql_query($sql);
//$result = mysql_fetch_array($query);
?>
<option value="<?php echo $result_def['date']; ?>"
<?php
if (isset($_GET['date']))
{
if ($_GET['date']==$result_sort['date2'])
{
echo "selected";
}
}
?>
><?php echo $date ?></option>
<?php
}
?>
</select>
</form>
c'est au niveau de
while ($result_sort = mysql_fetch_array($query_sort)) {
$result_def = mysql_fetch_array($query_def);
et
Code : Tout sélectionner
<option value="<?php echo $result_def['date']; ?>"
<?php
if (isset($_GET['date']))
{
if ($_GET['date']==$result_sort['date2'])
{
echo "selected";
}
}
?>
><?php echo $date ?></option>que cela doit genérer le probleme j'imagine
pour résumer le probleme, c'est comme si il y'a vait une ligne d'écart entre le tableau $result_def et le tableau $result_sort
Bah en fait nan :lol:
au niveau de mon select, impec, c'est trié comme il faut. mais lorsque le clique pour choisir une date, au lieu de me prendre cette date la en compte, il me prend celle juste en dessous. Il me semble que j'ai deja été confronté a ce probleme, comme quoi un musql_fetch_array crée un tableau, et se positionne a la premiere ligne, et ça causait un probleme de ce genre .
le code pour mieux y voir (ou pas :D )
[php]<form action="index.php" name="sort" method="get">
<?php
if (isset($_GET['cat']))
{
?>
<input type="hidden" name="cat" value="<?php echo ($_GET['cat']); ?>" />
<?php
}
?>
<select name="date" onchange="submit()" style="margin:0px; ">
<option value="no">Choose a date</option>
<?php
if(isset($_GET['cat']) && $_GET['cat']=='2')
{
$sql_def = "SELECT DISTINCT date FROM media_articles";
$sql_sort = "SELECT DISTINCT DATE_FORMAT(date,'%M %Y') AS date2 FROM media_articles ORDER BY date DESC";
}
else
{
$sql_def = "SELECT DISTINCT date FROM articles";
$sql_sort = "SELECT DISTINCT DATE_FORMAT(date,'%M %Y') AS date2 FROM articles ORDER BY date DESC";
}
$query_def = mysql_query($sql_def);
$query_sort = mysql_query($sql_sort) OR die ("Erreur : ".mysql_error());
while ($result_sort = mysql_fetch_array($query_sort)) {
$result_def = mysql_fetch_array($query_def);
$date = $result_sort['date2'];
$explode = explode(" ",$date);
$annee_exp = $explode[1];
//$sql = "SELECT mois FROM mois WHERE id_mois='$mois_exp'";
//$query = mysql_query($sql);
//$result = mysql_fetch_array($query);
?>
<option value="<?php echo $result_def['date']; ?>"
<?php
if (isset($_GET['date']))
{
if ($_GET['date']==$result_sort['date2'])
{
echo "selected";
}
}
?>
><?php echo $date ?></option>
<?php
}
?>
</select>
</form>[/php]
c'est au niveau de
[php]while ($result_sort = mysql_fetch_array($query_sort)) {
$result_def = mysql_fetch_array($query_def);
[/php]
et [code]<option value="<?php echo $result_def['date']; ?>"
<?php
if (isset($_GET['date']))
{
if ($_GET['date']==$result_sort['date2'])
{
echo "selected";
}
}
?>
><?php echo $date ?></option>[/code]que cela doit genérer le probleme j'imagine
pour résumer le probleme, c'est comme si il y'a vait une ligne d'écart entre le tableau $result_def et le tableau $result_sort