[PHP] Query con variabile

PietroDeRosa

Nuovo Utente
19 Mar 2018
20
0
1
34
Buonasera a tutti,

oggi scrivo per un problema che sto avendo con una pagina contenente, al suo interno, una query dove è presente una parte relativa alla "data" che viene settata a mezzo form dall'operatore.

Il problema è che quando si carica per la prima volta la pagina e quindi la variabile non è settata, la pagina va in loop (carica sempre) e mi restituire un errore (più che errore, una Notice).

Vorrei sapere se fosse possibile modificare il codice in modo che alla prima esecuzione la data sia settata su Oggi e dove la stessa variabile cambia a seconda della data indicata dal form.

Non so se sono riuscito a spiegarmi bene, nel caso riformulo :)

Vi riporto di seguito le parti di codice interessate e ringrazio anticipatamente chi se ne interesserà.

PHP:
<?php
//recupero quello che hanno scritto
$testo = $_POST['testo'];
$dataok = $_POST['dataok'];
?>

PHP:
 <div class="form-body">
<div class="form-group has-success">
<label class="control-label">Inserisci il codice articolo</label>
<input type="text" class="form-control" id="inputSuccess" name="testo" placeholder="Codice">
 <input type="date" class="form-control" id="inputSuccess" name="dataok"> </div>
<div class="form-actions">
<button type="button" class="btn default">Cancella</button>
<button class="btn red">Invia</button>
</div></form></div>

PHP:
//recupero quello che hanno scritto
$testo = $_POST['testo'];
$dataok = $_POST['dataok'];
//$timestampa = date('Ymd', $timestampa);
$datahq = date_format(date_create($dataok), "Ymd");
//if ($datahq == unset) { date_create($timestampa);
$datahq2= date_format(date_create($datahq), "d-m-Y");
//query mysql

$sql_cerca = "SELECT case WHERE ART LIKE '%".$testo."%'  and DATA<= '".$datahq."' ";

PHP:
$trovati = $conn->query($sql_cerca);
if($trovati-> num_rows > 0)
echo "<center><tr><td>" .$row["xxx"]. "</td>" . "<td>" . $row["xxx"]. "</td>" . "<td> " . $row["xxx"]. "</td>" . "<td>" . $row["xxx"]. "</td>" . "<td> " . $row["xxx"]. "</td>";}

Questa la notice che viene mostrata
Notice: Undefined index: dataok in \secure\page7.php on line 22
Notice: Undefined index: dataok in \secure\page7.php on line 23

dove alle seguenti linee ho questo codice
PHP:
//recupero quello che hanno scritto
$testo = $_POST['testo'];
$dataok = $_POST['dataok'];
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
Il problema è che quando si carica per la prima volta la pagina e quindi la variabile non è settata
ho capito che,
non sono valorizzate sia la data che il testo,
assumendo che DATA<= di oggi, quindi saranno estratte tutte le date

senza fare ragionamenti sulle date,
potresti togliere le clausole "where" dalla query in modo da non avere problemi anche dal testo

attento che nella query hai omesso il FROM ....

in ogni caso il codice,
PHP:
if ( empty($_POST) )
{
    $sql_cerca = "SELECT case FROM ....";
}
else
{
    //recupero quello che hanno scritto
    $testo = $_POST['testo'];
    $dataok = $_POST['dataok'];

    //$timestampa = date('Ymd', $timestampa);
    $datahq = date_format(date_create($dataok), "Ymd");
    //if ($datahq == unset) { date_create($timestampa);
    $datahq2= date_format(date_create($datahq), "d-m-Y");
    //query mysql

    $sql_cerca = "SELECT case FROM ... WHERE ART LIKE '%".$testo."%' and DATA<= '".$datahq."' ";
}

ps
attento anche alla condizione di data valorizzata e testo vuoto, avresti like NULL
ed al contempo testo valorizzato e data vuota,

ti converrebbe aggiungere le clausole where solo quando esistono i dati in ingresso
 
Ultima modifica:

PietroDeRosa

Nuovo Utente
19 Mar 2018
20
0
1
34
ho capito che,
non sono valorizzate sia la data che il testo,
assumendo che DATA<= di oggi, quindi saranno estratte tutte le date

senza fare ragionamenti sulle date,
potresti togliere le clausole "where" dalla query in modo da non avere problemi anche dal testo

attento che nella query hai omesso il FROM ....

in ogni caso il codice,
PHP:
if ( empty($_POST) )
{
    $sql_cerca = "SELECT case FROM ....";
}
else
{
    //recupero quello che hanno scritto
    $testo = $_POST['testo'];
    $dataok = $_POST['dataok'];

    //$timestampa = date('Ymd', $timestampa);
    $datahq = date_format(date_create($dataok), "Ymd");
    //if ($datahq == unset) { date_create($timestampa);
    $datahq2= date_format(date_create($datahq), "d-m-Y");
    //query mysql

    $sql_cerca = "SELECT case FROM ... WHERE ART LIKE '%".$testo."%' and DATA<= '".$datahq."' ";
}

ps
attento anche alla condizione di data valorizzata e testo vuoto, avresti like NULL
ed al contempo testo valorizzato e data vuota,

ti converrebbe aggiungere le clausole where solo quando esistono i dati in ingresso

Ciao Marino e grazie per la risposta.

Sono riuscito a risolvere, adesso funziona correttamente ed ottengo il risultato desiderato.

P.S. La query che avevo riportato era solo di esempio, per questo mancava il From :D

Grazie ancora ed alla prossima!
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [PHP] Problema con query select PHP 2
M [PHP] Problemi con query unione PHP 11
L [PHP] IF con risultato query PHP 7
G [PHP] FORM INVIO VALORI A QUERY CON TRE CONDIZIONI PHP 2
Laskot Query al DB con php (INSERT) PHP 2
S [PHP] Più fetch_array con unica query... PHP 9
sandropochi [PHP] Query per estrarre record con data successiva a quella odierna PHP 2
D Problema con query in php PHP 5
M [PHP] Problema con query PHP 17
elpirata [PHP] Paginazione dati estratti da una query con più condizioni PHP 17
M query con php "dinamica" PHP 2
D Raggruppare dati query con php PHP 1
L query complessa con php e visualizzazione risultati PHP 4
L PHP: problema con query mysql. PHP 3
A Indicizzare i risultati di una query Mysql con php PHP 0
S Autocompletamente con jQuery, PHP e MySQL - Problema con le query PHP 7
I Riga tabella HTML creata con cicli PHP e Query Sql che restituisca un campo se si clicca la Riga PHP 4
neo996sps Modifica query PHP con menu a tendina PHP 1
D query con mysql, checkbox e php PHP 8
neo996sps Problema con query e script PHP PHP 4
L [PHP & MySQL]Query con funzioni matematiche PHP 12
A query con like in php almeno credo PHP 3
C Problemi con query Php PHP 1
J query con php su mysql PHP 1
A Query in RAM con PHP ? PHP 12
S [PHP] Riempire una casella select con query SQL PHP 11
S PHP - ACCESS --> problemi con query PHP 0
M sintassi query sql (con php) PHP 2
M Visualizzazione a video risultati query php PHP 0
A form PHP prenotazione tramite query PHP 2
J [PHP] Visualizzare risultato query stessa pagina PHP 3
S [PHP] non prende la query PHP 0
D [PHP] Query che aggiorna tabella PHP 4
A [PHP] Problema query insert [RISOLTO] PHP 14
M [PHP] Ottimizzazione query PHP 13
S [PHP] la query fallisce PHP 2
Alex_70 actor film query per php PHP 1
Tommy03 [PHP] Media valori presi da una query PHP 3
Punix [PHP] query non valida PHP 1
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
D [PHP] Query in OOP class PHP 0
M [PHP] query string PHP 2
T [php] problema creazione query select-where PHP 5
B [PHP] IF condizioni e query annidate PHP 1
M [PHP] [SOLVED] While query result PHP 11
P [PHP] PEAR Mail e Query PHP 3
Tommy03 [PHP] Errore query selezione avg PHP 0
Monital [PHP] query update e select insieme ma frazionando l'arrray PHP 12
trattorino problema raccapricciante php conteggio query PHP 4
G [PHP] Oracle, convertire una query multiline in Json PHP 3

Discussioni simili