Estrazione dati per settimana.

  • Creatore Discussione Creatore Discussione _LAIL_
  • Data di inizio Data di inizio

_LAIL_

Utente Attivo
19 Set 2013
57
0
6
Salve ancora una volta mi serve il vostro prezioso aiuto.

Dovrei estrarre dei dati da una tabella in base alla settimana corrente dal lunedi alla domenica, il campo data e di tipo data 2015-03-01 e una volta estratti dovrei convertira il giorno numerico in nome giorno es 01=lunedi e cosi via stavoprovando cosi ma non va :(.
PHP:
$abfrage ="SELECT * date_sub(curdate(),interval weekday(curdate()) - 0 day) as lunedi FROM mia tabella order by data ASC limit 7 ";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
 
Ciao, prova questa query
Codice:
SELECT * FROM tabella
WHERE campodate BETWEEN date_sub(curdate(),INTERVAL weekday(curdate()) - 0 day) AND DATE_ADD(curdate(),INTERVAL 1 DAY)
 
grazie cri la query funziona ma mi estrae solo due giorni e non tutta la settimana corrente inoltre volevo cambiare i giorni in numerico con lettere.
 
Avevi scritto settimana corrente dal lunedì alla domenica, oggi è martedì, la query estrare correttamente lunedì e martedì. Domani estrarrà 3 giorni. ( in alternativa aggiungi 6 giorni nella funzione DATE_ADD)
Per recuperare il giorno della settimana ti conviene affidarti alla funzione date() di php
PHP:
<?php

$giorni = array(0, "lunedi", "martedi"); // etc

$data = "2015-03-09";

echo $giorni[date("w", strtotime($data))];
 
Effettivamente mi sono espressa io male a me serve che estragga la settimana corrente dal lunedi alla domenica indipendente dal giorno corrente
 
Grazi cri per la pazienza e la gentilezza ho fatto come mi hai detto tu ma non e cioche volevo nel senso che cosi devo dargli sempre io quanti giorni deve calcolare per la settimana io volevo che estraesse da solo da oggi fino a domenica , domani da martedi fino a domenica ma senza cambiare ogni volta forse e impossibile.
 
Ok, capito
prova cosi
PHP:
<?php

$domenica = date("Y-m-d", strtotime('next sunday'));

$query = "SELECT * FROM tabella WHERE campodate BETWEEN curdate() AND '$domenica'";
 
Se volessi estrarre solo un giorno della settimana preselezionato?

PHP:
 if($_REQUEST['opt'] == "Saturday"){
	 
    $giorno= "Saturday";
$querystat = "SELECT * FROM palinsesto WHERE MONTH(data) = (MONTH(CURDATE())) And weekday(data) = '$giorno'   ORDER BY ora_inizio ASC"; 
$risultato = mysql_query($querystat);
while ($row = mysql_fetch_object($risultato)) {
 
usa strtotime come prima
PHP:
<?php

$query = "SELECT * FROM palinsesto WHERE data = '" . date("Y-m-d", strtotime('next ' . $_REQUEST['opt'])) . "'";
 
Ciao Cri scusa per la risposta datata ma non ho avuto tempo di provare la query da te passatami funziona come del resto tutto cio che consigli ma fa una cosa non funzionale cioe in fase di selezione del giorno il giorno corrente non lo visualizza ma va a cercare quello della settimana prossima cioe esclude il giorno di oggi partendo da domani

PHP:
if($_REQUEST['opt'] == "wednesday"){
$querystat = "SELECT * FROM palinsesto WHERE data = '" . date("Y-m-d", strtotime('next ' . $_REQUEST['opt'])) . "' ORDER BY ora_inizio ASC"; 
$risultato = mysql_query($querystat);
while ($row = mysql_fetch_object($risultato)) {
 
Hai provato senza next ?
PHP:
$_REQUEST['opt'] = "sunday";
$query = "SELECT * FROM palinsesto WHERE data = '" . date("Y-m-d", strtotime($_REQUEST['opt'])) . "'";
 

Discussioni simili