Structure de la base de données entrez la description de l'image ici J'essaie une requête brute dans un contrôleur (Codeigniter) et j'essaie d'obtenir les valeurs de la plage fournie par l'utilisateur sur newDate et newDate2..Mon problème est il n'affiche rien..Comment puis-je écrire la requête pour cela..Je veux juste afficher la quantité, le nom du produit, le bundle selon le voucherno (vno) ... Voici mon code essayé

Code du contrôleur:

$startdate         = $this->input->post('SDate');
$enddate           = $this->input->post('EDate');
$date              = str_replace('/', '-', $startdate);
$newDate           = date("Y-m-d", strtotime($date));
$date2             = str_replace('/', '-', $enddate);
$newDate2          = date("Y-m-d", strtotime($date2));
$data['startdate'] = $startdate;
$data['enddate']   = $enddate;
$query             = $this->db->query('SELECT `vno`,`Prdtname`,`Qty`,`bundle` FROM purchaseitem WHERE billdate >= "$newDate"AND billdate <= "$newDate2" ORDER by `vno`')->result_array();
$data['query']     = $query;

Afficher le code:

<?php foreach ($query as $row): ?>
                                            <tr><td></td><td></td><td></td><td></td>
                                        <td><?=$row['Prdtname'];?></td>
                                        <td><?=$row['Qty'];?></td>
                                        <td><?=$row['bundle'];?></td>

                                        <?php endforeach ?> 
-2
dhara 20 nov. 2018 à 09:56

4 réponses

Meilleure réponse

Remplacez votre requête par la requête ci-dessous et vérifiez.

Vous devez passer la date en guillemet simple ou double.

$query = $this->db->query('SELECT `vno`,`Prdtname`,`Qty`,`bundle` FROM purchaseitem WHERE billdate >= "'.$newDate.'" AND billdate <= "'.$newDate2.'" ORDER by `vno`')->result_array();

Faites-moi savoir si le problème persiste.

4
Yogendrasinh 20 nov. 2018 à 09:38

Vous pouvez utiliser entre

SELECT `vno`,`Prdtname`,`Qty`,`bundle` FROM purchaseitem WHERE billdate BETWEEN "$newDate" AND "$newDate2" ORDER by `vno`
0
Arup Garai 20 nov. 2018 à 07:01

Si vous ne stockez que la date, j'essaierais d'utiliser l'horodatage unix.

$snewsDate = strtotimr($startdate);
$newDate2 = strtotime($enddate);

SELECT `vno`,`Prdtname`,`Qty`,`bundle` FROM purchaseitem WHERE billdate BETWEEN 
UNIX_TIMESTAMP($newDate) AND UNIX_TIMESTAMP($newDate2) ORDER by `vno
0
Eva 20 nov. 2018 à 07:15

Essaye celui-là:

$startdate         = $this->input->post('SDate');
$enddate           = $this->input->post('EDate');
$newDate           = date_format(date_create($startdate),"Y-m-d");
$newDate2          = date_format(date_create($enddate),"Y-m-d");
$data['startdate'] = $startdate;
$data['enddate']   = $enddate;
$query             = $this->db->query("SELECT vno,Prdtname,Qty,bundle FROM purchaseitem WHERE billdate BETWEEN '$newDate' AND '$newDate2' ORDER by vno")->result_array();
$data['query']     = $query;
0
Twinkle 20 nov. 2018 à 09:41