Newsgroup: it.comp.www.php
Titolo: select di mysql, dove sbaglio?

Ho problemi con il formato data che mi viene dato in americano
(aaaa-mm-gg) e ho notato che esiste la funzione di mysql date_format
il problema č che poi mi risponde cosě
2015-12-20 Resource id #3 
dove resource id #3 sarebbe il $data
ho provato anche a fare una semplice operazione
$test=mysql_query("select 1 + 1");    
     echo " $test<br> "; 
e anche in questo caso mi da come risultato 
Resource id #3  (o successivi numeri)
riporto qui l'intero codice per farvi vedere evenutali errori
$sql="SELECT * FROM intervento WHERE cliente = 'nomecliente' ";
$result=mysql_query($sql,$conn) or die("CASINO SELECT");
while ($dato=mysql_fetch_array($result))
     {
      $ore=$dato[fine]-$dato[inizio];
      $sql2="Select date_format('$dato[data]', '%e %c %y')";
      $data=mysql_query($sql2);       
     echo "$dato[data] $data <br> "; 
     echo "Intervento n&deg;<a
href=\"details.php?id=$dato[id]\">$dato[id]</a> effettuato il $data
Ore $ore<br>";
     }
Grazie per l'aiuto
Luca

Al volo... non ho guardato il codice.
Ho avuto anch'io tempo fa problemi con le date... mi raccomando, nelle
select usa sempre le virgolette e il formato
mysql_query("insert into Table values (\"2002-10-12\",....);");
Non so se ti sono stato d'aiuto.

sigh, grazie, ma il problema non è inserire (quello lo fa un form che
mi mette le cose in ordine)
in mio problema è estrarre i dati in modo leggibile dagli italiani
in seconda battuta devo far fare dei calcoli a mysql (differenze di
orario, calcolo dei costi di intervento, ecc) quindi mi serve sapere
come ottenere la restituzione dei valori "select 1+1"
grazie comunque
Luca


,
Luca Miselli wrote:
 >riporto qui l'intero codice per farvi vedere evenutali errori
 >
 >$sql="SELECT * FROM intervento WHERE cliente = 'nomecliente' ";
 >$result=mysql_query($sql,$conn) or die("CASINO SELECT");
 >
 >while ($dato=mysql_fetch_array($result))
 >     {
 >      $ore=$dato[fine]-$dato[inizio];
 >      $sql2="Select date_format('$dato[data]', '%e %c %y')";
Come minimo qui manca un ...as data_formattata FROM nometabella (a
occhio, non garantisco sull'esattezza della sintassi).
 >      $data=mysql_query($sql2);       
 >     echo "$dato[data] $data <br> "; 
Attenzione: $data non e' quello che immagini, ma e' il resource
ritornato dalla mysql_query e devi usarlo in mysql_fetch_array, come e'
scritto correttamente nel tuo codice qualche riga prima, altrimenti se
stampi $data ottieni quello che dicevi prima.

,
Luca Miselli wrote:
 >      $sql2="Select date_format('$dato[data]', '%e %c %y')";
Aggiungo una cosa: se il tuo problema e' solo di rigirare una data da
yyyy-mm-dd a dd-mm-yyyy puoi fare cosi'
$data_original = "2002-10-13";
$data_italiana = preg_replace("/(.*)-(.*)-(.*)/", "$3-$2-$1", $data_original);
risparmiando una query sql.


wrote:


,
Luca Miselli wrote:
 >lo avevo provato all'inizio, ma continua a non funzionare
 >
 >poiché al posto di "Resource #n"  ottengo semplicemenete la parola
 >"Array" 
 >
 >considerato poi che non è un array (c'è dentro solo un dato, non un
 >array di dati) avevo provato senza...
Allora, non si capisce bene, ma immagino che l'array di cui parli sia:
$array = mysql_fetch_array($sql_result);
in questo caso e' effettivamente un array, e non importa se contiene un
solo dato, sara' un array con un solo valore e dovrai utilizzarlo come
l'array $dato[] che usi prima nel tuo script, e cioe' $array['data']
(dove 'data' e' il nome della colonna della tabella che ti interessa -
come $dato[fine] o $dato[$data] - o dell'alias come in "SELECT dato1
AS dato2").
Nel tuo caso, se ho capito bene:
$sql2 = "SELECT date_format('$dato[data]', '%e %c %y') AS data_italiana FROM intervento";
$linea_estratta = mysql_fetch_array($sql2);
echo "$dato['data'] $linea_estratta['data_italiana']";
anche se credo comunque che convenga utilizzare un preg_replace come ti
dicevo nell'altro post, o anche formattare la data gia' nella prima
SELECT.
Non sino sicuro sulla funzione date_format perche' non la conosco.

      echo " $test<br> ";
echo mysql_result(mysql_query("select 1 + 1"),0);