inizio con il php ... semplice aiuto!!

  • Creatore Discussione Creatore Discussione piero54
  • Data di inizio Data di inizio

piero54

Nuovo Utente
13 Giu 2012
16
0
1
ciao ragazzi,
scrivo perche mi serve una mano per una cosa che vorrei fare usando una pagina con degli script in php ma che nn riesco a fare perchè nn conosco il php.. quindi cerco aiuto!!
allora:
vorrei fare in modo che la pg peschi dal db la data di inserimento di un "annuncio" (colonna data_ora della tabella storico_ut) inserito da un qualsiasi utente, (quindi credo che occorra tirare in ballo l'id dell'annuncio per evitare che un utente richiami la data di inserimento di un altro annuncio di un altro utente, giusto?
Poi una volta in possesso della data_ora(che ha questa struttura 2012-06-13 19:02:26, e a me serve solo la datae nn l'ora) occorre confrontarla con la data del giorno in corso, e se uguale(se l'annuncio è stato inserito nello stesso giorno in cui si sta visualizzando questa pagina che vorrei creare),

echo ' un link..';
}else{
echo 'altro link..';
}

L'if da scrive credo che debba essere qualcosa del genere (if ($linea['data_ora']==$linea['data']) { oppure if ($solo_data=$data) { ) ma nn riesco a far leggere i dati che mi occorrono per poter fare il confronto, dal db!!

quaualcuno mi saprebbe dire cosa e come fare??

grazie mille a tutti!
 
Che tipo di dato utilizzi per salvare la data nel campo data_ora?
 
Per prelevare le date che hai nel tuo db ti consiglio di leggere questo articolo.
Per sapere la data attuale c'è la funzione date().
Visto che le devi confrontare puoi fare:
PHP:
$oggi_data = date("Y-m-d");
$oggi = strtotime($oggi_data);
//prendi la data da controllare come nel primo link postato. Ora faccio un esempio con la data messa da me.

$giorno_data = "2006-01-16";
$giorno = strototime($giorno_data);
//controlliamo se sono uguali

if ($giorno == $oggi) {
     echo "uguali!";
} else {
     echo "diverse";
}
Ho usato la funzione strtotime().
 
ciao grazie mille per il vostro aiuto!!
ancora nn va ma inizio ad avvicinarmi ad una possibile soluzione..
seguendo i consigli che mi hai dato, ho scritto il seguente codice:

PHP:
<?php  

$oggi_data = date("Y-m-d");
$oggi = strtotime($oggi_data);

//ho messo la data da controllare come nel primo link postato. 

$sql = "SELECT DATE_FORMAT(data_ora, '%d/%m/%Y') as data_it FROM storico_sms_bus_ut  ";
$row = mysql_fetch_assoc(mysql_query($sql));
echo $row['data_it'];

//controlliamo se sono uguali

if ($data_it == $oggi) {
     echo "uguali!";
} else {
     echo "diverse";
}  

?>

viene mostrata la data presente sul db in data_ora, e già è qualcosa di buono!
solo che l'if restituisce sempre "diverse" anche se la data presente sul db in data_ora è uguale alla data odierna..

come mai? lo script nn legge la data odierna quindi l'if da sempre "diverse" perchè la condizione di == nn è soddisfatta?
come potrei sistemarlo?
grazie mille !
Piero
 
Ultima modifica di un moderatore:
ciao
mi sembra semplice
formatti la data di oggi

$oggi_data = date("Y-m-d"); cioe anno - mese - giorno
poi la estrai dal db in formato d m Y
$sql = "SELECT DATE_FORMAT(data_ora, '%d/%m/%Y') as data_it FROM storico_sms_bus_ut ";
per cui (es)
2012-06-16 non sarà mai uguale a 16 06 2012, per verificare le due date devono essere nello stesso formato.
 
CIao,
aggiungo altre due osservazioni oltre a quello detto da Borgo:

la condizione if ($data_it == $oggi) non potrà mai essere vera perchè

- non hai valorizzato la variabile $data_it
- hai valorizzato $oggi con strtotime(), di conseguenza hai una data in secondi (1339804800)

prova a stampare le varie variabili così vedi il risultato

PHP:
$data_it = $row['data_it'];

echo "Valore data_it : " . $data_it;
echo "<br/>Valore oggi : " . $oggi;

//controlliamo se sono uguali

echo "<br/>risultato if : <br/>";
if ($data_it == $oggi) {
    echo "uguali!";
} else {
    echo "diverse";
}
 
grazie per tt i vostri suggerimenti ma onestamente sono andato un po' in confusione!!

ho provato a fare le seguenti modifiche nella speranza di avere le due date nello stesso formato, ma ancora lo stesso problema!!
PHP:
<?php

$oggi_data = date("d-n-Y");
$oggi = strtotime($oggi_data);
//ho messo la data da controllare come nel primo link postato. 

$sql = "SELECT DATE_FORMAT(data_ora, '%d/%m/%Y') as data_it FROM storico_sms_bus_ut  ";
$row = mysql_fetch_assoc(mysql_query($sql));

//echo $row['data_it'];
//controlliamo se sono uguali

if ($data_it == $oggi) {
     echo "uguali!";
} else {
     echo "diverse";
}  

?>


ciaooo e grazie a tt
 
Ultima modifica di un moderatore:
Racchiudi il codice che posti tra i tag presenti sulla barra di formattazione (PHP , CODE, HTML)

prova semplicemente cosi:

PHP:
<?php
$oggi = date("d/m/Y"); // modificato nome variabile

$sql = "SELECT DATE_FORMAT(data_ora, '%d/%m/%Y') as data_it FROM storico_sms_bus_ut LIMIT 1";
$row = mysql_fetch_assoc(mysql_query($sql));

$data_it = $row['data_it'];

//controlliamo se sono uguali
if ($data_it == $oggi) {
echo "uguali!";
} else {
echo "diverse";
}

?>

PS: nel codice che hai postato manca la connessione al db

EDIT mi sono accorto di aver sbalgiato a scrivere la prima variabile La modifico
 
Ultima modifica:
ciao
nella pagina è presente

PHP:
<?php
include ("connessione_db.php");
?>

quindi dovrebbe essere connesso... o no? in connessione_db.php ci sono i dati per connettersi al db ed è inclusa in tt le pg, quindi credo che vada ok!

cmq ho riportato il codice che mi hai scritto e nn cambia nulla..

ciaoo e ancora grazie per l'aiuto
 
Un ottima funzione per capire dove si sta sbagliando è var_dump()

fai il var_dump di entrambe le variabili e posta il risultato
PHP:
var_dump($data_it);

var_dump($oggi);
 
ho inserito nella pg il codice che mi hai dato e il risultato è il seguente:
NULL NULL

:crying:
 

Discussioni simili