[PHP] estrazione dal DB complicata

  • Creatore Discussione Creatore Discussione sarox85
  • Data di inizio Data di inizio

sarox85

Nuovo Utente
19 Dic 2014
13
0
1
Salve a tutti, mi chiedevo se fosse possibile la seguente cosa:

estraggo i dati dal DB, tra while ed foreach ottengo tutte le occorrenze della "data_scadenza"

PHP:
$strsql = "SELECT data_scadenza FROM date_scadenze";
$ricevuta = @mysqli_query($link, $strsql) or die("Errore Lettura DB: ".mysqli_connect_error());
    

while ($row = $ricevuta->fetch_assoc()){
    
    $array[] = $row['data_scadenza'];
}

foreach ($array as $valore)
{
    if ($valore == $data_oggi)
    {
       ..........
     }

ora io posso dire al ciclo foreach se la data di scadenza è uguale a quella di oggi , prendi il resto dei campi di quella riga?
aggiungo anche l'esigenza così per spiegarmi meglio, magari sono proprio fuori strada e c'è una via + semplice:

ho bisogno di leggere delle scadenze dal db, se la data coincide con quella di oggi prendere tutti i campi del record relativo alla scadenza ($idUser, $idCard, $importo_rata, $commissione, $idAbbonamento, $causale) , poi da lì li passo al programma già pronto per avvisi e controlli...
 
poi lo strutturi tu nel tuo script,
PHP:
$data_oggi = (new DateTime())->format('Y-m-d');

$valore = '2011-10-09 00:00:00'; // la data meglio sia y-m-d che è il formato pià "sicuro"
$valore =  (new DateTime($valore))->format('Y-m-d');

echo $data_oggi."<br />";
echo $valore."<br />";

// se $valore == $data_oggi ....
 
ciao, scusa ma non ho capito...

posso strutturare la cosa dentro un if sotto un foreach per fare il controllo della data, ma come faccio a dire al foreach di estrarre il resto dei dati quando la condizione è vera? Perchè così come ho scritto io mi estrae solo date...
 
non ho controllato la query,
PHP:
$strsql = "SELECT * FROM date_scadenze";
oppure al posto di "*" metti la lista delle colonne, separate da ","
 
ho risolto aggiungendo un WHERE $data_scadenza = $data_oggi e funziona....grazie infinite per le dritte...

ora pensi che posso inserirlo come cronojob...o ci sono altri metodi per automatizzare la cosa?
 
ciao, scusa ma non ho capito...

posso strutturare la cosa dentro un if sotto un foreach per fare il controllo della data, ma come faccio a dire al foreach di estrarre il resto dei dati quando la condizione è vera? Perchè così come ho scritto io mi estrae solo date...

devi fare il foreach su $row e non su $array[]

$array[] è solo un array di $row['data_scadenza']

ciao
 
ora pensi che posso inserirlo come cronjob...o ci sono altri metodi per automatizzare la cosa?
si,
crea lo script che lo esegue,
provalo, eseguendolo da riga di comando
ed al risultato positivo inseriscilo come "cronjob"
 
rieccomi, tutto ok....

ora vediamo i test su lungo tempo...quando ci saranno 3000 dati l'ora de gestire...:eek:

Grazie per l'assistenza!!!
 

Discussioni simili