Requete between and, dans une liste à cocher

Fermé
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 - Modifié par maxireussite le 23/02/2015 à 01:19
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 - 24 févr. 2015 à 02:06
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

jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675
23 févr. 2015 à 01:47
Bonjour;

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

0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
23 févr. 2015 à 01:50
Merci.
0
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
Modifié par maxireussite le 23/02/2015 à 01:52
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
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675
Modifié par jordane45 le 23/02/2015 à 02:18
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
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
Modifié par maxireussite le 23/02/2015 à 02:18
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
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675
23 févr. 2015 à 02:20
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
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
23 févr. 2015 à 02:22
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
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
Modifié par maxireussite le 23/02/2015 à 02:31
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5
23 févr. 2015 à 02:53
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
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675
23 févr. 2015 à 08:26
Ç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
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675
Modifié par jordane45 le 23/02/2015 à 10:09
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
maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020 5 > jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024
24 févr. 2015 à 01:24
Concernant le format date (d-m-y) je suis sûr.
0
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675 > maxireussite Messages postés 372 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 11 mars 2020
24 févr. 2015 à 01:40
Le champ dans ta bdd contenant les dates. .. ils sont de quel type ???
0
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675 > jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024
24 févr. 2015 à 01:46
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