Requete between and, dans une liste à cocher

maxireussite Messages postés 405 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,

Après 5 heures de tâtonnements j'abdique... et je demande de l'aide.

J'ai tenté d'adapter une requête qui fonctionne ailleurs mais là c choux gras !

j'ai besoin d'afficher dans une liste à cocher le résultat d'une requête d'intervalle entre deux dates "between and".

J'aimerais savoir svp ce qui cloche, au mieux j'obtiens "enregistrer" comme affichage...

Voilà le script complet, merci d'avance :

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
 
require_once('../koneksyon/konfig.php');
?>

<!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 content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>sans titre 1</title>
</head>

<body>
<?php
    if(isset($_POST['region_id'])) $region_id=$_POST['region_id'];
    else $region_id="";
        
    if(isset($_POST['ville_id'])) $ville_id=$_POST['ville_id'];
    else $ville_id="";
    
    if(isset($_POST['categorie_id'])) $categorie_id=$_POST['categorie_id'];
    else $categorie_id="";
    
    if(isset($_POST['objet_id'])) $objet_id=$_POST['objet_id'];
    else $objet_id="";
    
    if(isset($_POST['datedebut'])) $datedebut=$_POST['datedebut'];
    else $datedebut="";
    
    if(isset($_POST['dateFin'])) $dateFin=$_POST['dateFin'];
    else $dateFin="";
    
 $datedebut1 = date('d-m-Y', strtotime($datedebut));
 $dateFin1 = date('d-m-Y', strtotime($dateFin));
    
 $sql = mysql_query("SELECT trouve_id, region_id, ville_id, categorie_id, objet_id, date_trouve FROM pt_trouve WHERE date_trouve between 'datedebut1' and 'dateFin1'");

$requete = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    
 echo '<form name="form1" action="" method="post">';
 echo "<table>";
 while ($data= mysql_fetch_array($requete)) 
 {
 echo '<tr><td>'.$data['trouve_id'].'</td><td>'.$data['date_trouve'].'</td><td><input type="checkbox" name="ligne_cochee['.$data['trouve_id'].' value="1" /></td></tr>';
 }
 echo "</table>";
 echo '<input type="submit" name="envoyer" value="Enregistrer" />';
 echo '</form>';
 ?>
</body>

</html>


5 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour;

    Déjà.. il manque les dollars devant le nom de tes variables
    between 'datedebut1' and 'dateFin1'

    0
    1. maxireussite Messages postés 405 Statut Membre 5
       
      Merci.
      0
  2. maxireussite Messages postés 405 Statut Membre 5
     
    En corrigeant avec les dollars, j'ai le message suivant :

    "Warning: mysql_query() expects parameter 1 to be string, resource given in /home/*************/jai-perdu-/addd.php on line 40 Erreur SQL !Resource id #3"
    0
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Tu l'as écrite comment ta requête une fois "corrigée" ?

    Essayes ceci :
     $sql = "SELECT trouve_id
                        , region_id
                        , ville_id
                        , categorie_id
                        , objet_id
                        , date_trouve 
              FROM pt_trouve 
              WHERE date_trouve between '$datedebut1' and '$dateFin1' ";
    
    // le temps des tests... fais donc un echo de ta requête pour voir si elle // correspond bien à ce que tu attends... et testes là en direct dans ta BDD
    echo " <br> REQUETE : <br>".$sql;
    
    //$req = mysql_query($sql);
    $requete = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    
    
    


    Cordialement,
    Jordane
    0
  4. maxireussite Messages postés 405 Statut Membre 5
     
    Message :

    REQUETE :
    Resource id #3 Warning: mysql_query() expects parameter 1 to be string, resource given in /home/****************/jai-perdu-/addd.php on line 44 Erreur SQL !Resource id #3
    Query was empty
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      En copiant collant betement ton code pour te le corriger.. je n'avais pas remarqué l'erreur que tu avais fait........
      Tu un une instruction mysql_query en trop....

      J'ai édité le code que je t'ai donné pour l'enlever (ligne 13).
      0
    2. maxireussite Messages postés 405 Statut Membre 5
       
      Après correction, cela donne toujours :
      "REQUETE :
      Resource id #3 Warning: mysql_query() expects parameter 1 to be string, resource given in /home/**************/jai-perdu-/addd.php on line 44"
      0
    3. maxireussite Messages postés 405 Statut Membre 5
       
      En enlevant la dernière ligne du test, j'ai :

      "REQUETE :
      Resource id #3 "

      Rappel :

      $sql = mysql_query("SELECT trouve_id, region_id, ville_id, categorie_id, objet_id, date_trouve FROM pt_trouve WHERE date_trouve between '$datedebut1' and '$dateFin1'");

      echo " <br> REQUETE : <br>".$sql;
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. maxireussite Messages postés 405 Statut Membre 5
     
    Bon, je perds mon lat... mon php ! Lol !

    En vérifiant et en remettant to script corrigé, j'ai :

    "REQUETE :
    SELECT trouve_id , region_id , ville_id , categorie_id , objet_id , date_trouve FROM pt_trouve WHERE date_trouve between '01-12-2014' and '01-01-1970'"

    C quoi cette année 1970 ? Mes dates supposées sont entre déc. 2014 et février 2015...
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Ça. ..c'est une autre question. ...
      tu dois avoir un pb avec ta variable dateFin.
      fais donc un print_r de ta variable POST histoire de voir ce qu'elle contient. .

      Et sinon... tu es sur que tes dates sont dans le format d-m-y dans ta bdd ??? Normalement ça devrait être Y-m-d ...
      0
    2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      Je completerai mes réponses avec ceci...
      Plutôt que du faire du If /else "classique" pour récupérer tes valeurs POST ... penses à l'écriture TERNAIRE.
      Par exemple :
      //ceci:
        if(isset($_POST['region_id'])) $region_id=$_POST['region_id'];
          else $region_id="";
      
      // Peut s'écrire comme cela :
      $region_id = isset($_POST['region_id']) ? $_POST['region_id'] : '' ;
      



      Et pour en revenir à ton problème de dates :
       $datedebut = isset($_POST['datedebut'])?$_POST['datedebut']:NULL;
       $dateFin  = isset($_POST['dateFin'])?$_POST['dateFin']:NULL;
       
       $datedebut1 = $datedebut?date('Y-m-d', strtotime($datedebut)):date('Y-m-d');
       $dateFin1 = $dateFin?date('Y-m-d', strtotime($dateFin)):date('Y-m-d');
      
      0
    3. maxireussite Messages postés 405 Statut Membre 5 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Concernant le format date (d-m-y) je suis sûr.
      0
    4. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > maxireussite Messages postés 405 Statut Membre
       
      Le champ dans ta bdd contenant les dates. .. ils sont de quel type ???
      0
    5. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Car si tes champs .. ne sont pas de type DATE / DATETIME / TIMESTAMP ... ta requête ne pourra pas fonctionner....
      Quand on stocke des dates dans une BDD .. on le fait avec le champ adéquat.....
      0