Formulaire de recherche par mois

lili_2269 -  
heyquem Messages postés 808 Statut Membre -
Bonjour,

J'ai un problème avec mon formulaire de recherche par mois sur ma page recherche.php. J'ai une autre page resultatsdate.php. J'ignore ce qui cloche, je ne suis pas une lumière en PHP. Mais ce formulaire est vi-tal pour moi & mon site Internet :( !

J'ai fait un autre formulaire de recherche (pas par mois) qui marchait très bien, j'ai donc essayé sur la même forme de code, par mois et rien ne va plus !
Lorsque je choisi le mois dans ma liste déroulante et que je clique sur le bouton "rechercher", la page resultatsdate.php affiche simplement le bloc de ma région répétée, sans aucun texte à l'intérieur...

Voici donc le code de ma page recherche.php :
<?php require_once('Connections/base.php');
mysql_query("SET NAMES 'utf8'"); ?>

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

mysql_select_db($database_base, $base);
$query_niv = "SELECT * FROM niveau";
$niv = mysql_query($query_niv, $base) or die(mysql_error());
$row_niv = mysql_fetch_assoc($niv);
$totalRows_niv = mysql_num_rows($niv);

mysql_select_db($database_base, $base);
$query_progrecherche = "SELECT * FROM programmation";
$progrecherche = mysql_query($query_progrecherche, $base) or die(mysql_error());
$row_progrecherche = mysql_fetch_assoc($progrecherche);
$totalRows_progrecherche = mysql_num_rows($progrecherche);
?>
<?php include('_inc/connexionbase.php'); 
    mysql_query("SET NAMES 'utf8'"); ?>
    
<?php 
	$pages = mysql_query("SELECT * FROM pages WHERE pages_id = 21") or die(mysql_error());
	$reponsepages = mysql_fetch_array($pages);
?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="_css/style.css" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="_js/lightbox/jquery.js"></script>
<script type="text/javascript" src="_js/lightbox/jquery.lightbox-0.5.js"></script>
<link rel="stylesheet" href="_css/jquery.lightbox-0.5.css" media="screen" type="text/css"/>

<script type="text/javascript">
$(function() {
	// Use this example, or...
	$('a[@rel*=lightbox]').lightBox(); // Select all links that contains lightbox in the attribute rel
});
</script>

<title><?php echo $reponsepages['pages_titre']; ?></title>
<meta name="title" content="<?php echo $reponsepages['pages_metatitle']; ?>" />
<meta name="description" content="<?php echo $reponsepages['pages_metadesc']; ?>" />

<script type="text/javascript">
$(selector).datepick();
</script>

</head>

<body>

<div id="global"> <!--Début de la balise Global-->

	<?php include('_inc/header.php'); ?>
    
    <?php include('_inc/menu.php'); ?>
    
	<div id="content"> <!--Début du Content-->
    
   	  <div id="scolaireetperiscolaire"> <!--Début scolaire -->
        
        <h1 class="titre"><?php echo $reponsepages['pages_titre_texte'];?></h1>
    	<h2 class="sstitrepartieprog"> <?php echo $reponsepages['pages_accroche'];?> </h2>
    
    	<div id="formulaire"

    <form action="resultatsdate.php" method="post">

	<select name="debut" id="debut">
	  <option value="0"> Choisissez la date de début </option>
	  <?php
do {  
?>
<option value="<?php echo $row_progrecherche['prog_id']?>"><?php echo $row_progrecherche['prog_mois_debut']?></option>
	  <?php
} while ($row_progrecherche = mysql_fetch_assoc($progrecherche));
  $rows = mysql_num_rows($progrecherche);
  if($rows > 0) {
      mysql_data_seek($progrecherche, 0);
	  $row_progrecherche = mysql_fetch_assoc($progrecherche);
  }
?>
    </select>
	<input name="" type="submit" value="Rechercher" />

</form>
    
    	</div>

(...)

<?php
mysql_free_result($progrecherche);
?>



Et voici celui de ma page resultatsdate.php :

<?php require_once('Connections/base.php'); 
mysql_query("SET NAMES 'utf8'"); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$date = $_POST['debut'];
if (isset($_POST['debut']) && ($_POST['debut'] != 0)){
$req = " AND prog_mois_debut <= '%".$date."%'";
} 


 


mysql_select_db($database_base, $base);
$query_programmation = "SELECT * FROM programmation WHERE  prog_online = 1 AND (prog_type = 2 OR prog_type = 1) AND prog_public = 1 ".$req;
$programmation = mysql_query($query_programmation, $base) or die(mysql_error());
$row_programmation = mysql_fetch_assoc($programmation);
$totalRows_programmation = mysql_num_rows($programmation);
?>

<?php 
	$pages = mysql_query("SELECT * FROM pages WHERE pages_id = 22") or die(mysql_error());
	$reponsepages = mysql_fetch_array($pages);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $reponsepages['pages_titre']; ?></title>
<link href="_css/style.css" rel="stylesheet" type="text/css" />
<meta name="title" content="<?php echo $reponsepages['pages_metatitle']; ?>" />
<meta name="description" content="<?php echo $reponsepages['pages_metadesc']; ?>" />
</head>

<body>

	<div id="global">
    <?php include('_inc/header.php'); ?>
    
    <?php include('_inc/menu.php'); ?>

<div id="content">

<div id="scolaireetperiscolaire"> <!--Début scolaire -->

 <h1 class="titre"><?php echo $reponsepages['pages_titre_texte'];?></h1>
 <h2 class="sstitrepartieprog"> <?php echo $reponsepages['pages_accroche'];?> </h2>
 <a href="scolaireetperiscolaire.php" title="Toute la prog' scolaire et peri-scolaire" class='labelconcept'> >> Retour à toute la prog' scolaire et peri-scolaire</a>
<?php if ($_POST['debut'] == 0)  { ?>
<p class="sstitrescolaire"> Désolé, il n'y a aucun résultat pour votre recherche ! </p>
<?php  } else { ?> <!--Ouverture du else-->

<?php do { ?>
   	  <div id="progresultats">
        
        <img src="<?php echo $row_programmation['prog_img']; ?>" class="img" align="right"/>
        <h2 class="titreprog"> <?php echo $row_programmation['prog_titre'];?> </h2>
        <p class="sstitreprog"> Du  Du <?php echo $row_programmation['prog_jour_debut'];?>, <?php echo $row_programmation['prog_mois_debut'];?>, <?php echo $row_programmation['prog_annee_debut'];?> au <?php echo $row_programmation['prog_date_fin'];?>  </p>
        
        <p class="texte2"> <?php echo $row_programmation['prog_accroche']; ?></p>
   		<p> <a href="fiche.php?prog=<?php echo $row_programmation['prog_id']; ?>" title="<?php echo $row_programmation ['prog_titre']; ?>" class="liensprog"> >> Plus d'infos</a></p>
      	
        </div>
       
        <?php } while ($row_programmation = mysql_fetch_assoc($programmation))?>
<?php } ?> <!--Fermeture du else -->

</div> <!--Fin scolaire -->

</div>
<?php include('_inc/footer.php') ?>
</div>
</body>
</html>
<?php
mysql_free_result($programmation);
?>


J'ai besoin de votre aide pour savoir ce qui cloche ! MERCI :)

3 réponses

heyquem Messages postés 808 Statut Membre 131
 
Et il est censé faire quoi ton code ?
0
lili_2269
 
Eh bien, le premier me permet de faire la liste déroulante et d'afficher un bouton d'envoi vers la page résultatsdate.php, et le deuxième me permettrait (s'il marchait) d'afficher les résultats de ma recherche...
0
heyquem Messages postés 808 Statut Membre 131
 
la liste déroulante de quoi ?

"afficher le résultat du choix dans la liste déroulante" plutôt que "les résultats de la recherche" , non ?
0
lili_2269
 
Ma liste déroulante des infos de ma bdd... C'est à dire les mois de l'année... Et oui, afficher le résultat du choix de ma liste déroulante ! :)
0
lili_2269
 
Quelqu'un a-t-il vu quelque chose de louche dans mon code, quelqu'un a-t-il une idée ?

Mercii !
0
heyquem Messages postés 808 Statut Membre 131
 
Oui, mais je n'ai pas osé le dire.
Je ne connais pas bien PHP, trop peu pour comprendre ton code rapidement et trop peu pour pouvoir le corriger.
Mais quand je vois des codes aussi longs pour faire quelque chose d'aussi simple que ce que tu as expliqué, je me dis que
- soit le développeur n'est pas doué
- soit PHP est si mauvais quon ne peut pas faire autrement que de coder comme tu l'as fait.
En fait je pense que c'est les deux. Car si PHP est mauvais, son laxisme permet à des gens pas très doués de réussir quand même à coder des sites avec une relative facilité, et il retient donc tous les développeurs médiocres

Ce qui est louche dans ton code, c'est PHP, c'est tout
0