visualizzare una opzione di un campo mysql

gaia

Nuovo Utente
9 Feb 2010
29
0
0
Ho una tabella Mysql fatta nel modo seguente

tabellaA


id | name | value


1 |data | [{"name":null,"value":"","target":null,"alias":""," required":1,"showNull":0}]

2 |tipologia | [{"name":"privato","value":1,"target":null,"alias": "","required":1,"showNull":0}

3 |tempo di lavoro |[{"name":null,"value":"30,60,120,180,","target":null,"alias":"","required":1,"showNull ":0}]

debbo visualizzare SOLO il valore del tempo di lavoro, quello segnato in rosso.

Qualcuno saprebbe scrivermi la striga.
Grazie infinite a chiunque risponda.
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
scusa ma non ho capito bene i campi sono/si chiamano (e quello che vuoi fare esattamente)
id
name
value
1
2
3
oppure
id
name
value
data
tipologia
tempo di lavoro
?
nel primo caso per estrarre solo il valore del campo 3
Codice:
SELECT 3 FROM TabellaA
nel secondo
Codice:
SELECT tempo di lavoro FROM TabellaA
però non è mai bene scrivere i nomi con gli spazi.
se il nome è tempo di lavoro dovresti modificarlo (es) tempo_di_lavoro
 

gaia

Nuovo Utente
9 Feb 2010
29
0
0
Intanto,grazie 1000 per aver risposto.
Hai ragione, ovviamente, sugli spazi "tempo di lavoro".
I campi sono
id| name|value
E se volessi visualizzare il tempo di lavoro dovrei utilizzare l'istruzione

SELECT 3 FROM TabellaA

Ok, a questo già c'ero arrivata.

Il problema è che non voglio visualizzare tutto della riga 3 ma solo quello in rosso

idnamevalue
3tempo di lavoro [{"name":null,"value":"30,60,120,180,","target":null,"alias":"","required":1,"showNul l ":0}]

e quindo solo una parte del campo value della riga 3


Grazie
Gaia
 

gaia

Nuovo Utente
9 Feb 2010
29
0
0

gaia

Nuovo Utente
9 Feb 2010
29
0
0
Mi da questo errore:
mysql_query() expects parameter 2 to be resource, string given in... percorso files on line 25

rivedendo il file in Dreamweaver corrisponde alla parte in blu indicata dall freccia


$ris_news= mysql_query("SELECT value, substring_index(substring_index(value,':',-5),'","',1) FROM tabellaA

where name='tempo di lavoro'

"); <---


Non chiudo bene l'istruzione?
 
Ultima modifica:

gaia

Nuovo Utente
9 Feb 2010
29
0
0
Prova a chiudere in questo modo:
PHP:
$ris_news= mysql_query("SELECT value, substring_index(substring_index(value,':',-5),'","',1) FROM tabellaA WHERE name='tempo di lavoro'");

Grazie ma già avevo provato questa opzione e mi da lo stesso errore notificato nel post precedente
 

HolidaySoft.it

Utente Attivo
16 Ott 2012
106
1
0
Milano
www.holidaysoft.it
Ciao,
se vuoi utilizzare il sql da me indicato all'interno di php dovresti annullare i doppi apici considerati come caratteri speciali

SELECT value, substring_index(substring_index(value,':',-5),'","',1) FROM tabellaA where name='tempo di lavoro'

quindi prova così:

$ris_news= mysql_query("SELECT value, substring_index(substring_index(value,':',-5),'"",""',1) FROM tabellaA where name='tempo di lavoro'");

ho doppiato i doppi apici, uno annulla l'altro

Ciao
Mik

[HR][/HR]
A quick solution is a shortcut to troubleshooting
HolidaySoft.it - Gestionali, Database, SitiWeb
GarganoSapori.it - Olio ExtraVergine del Gargano
OsteriaORistorante.it - Crea la Vetrina per il tuo Ristorante!
 

gaia

Nuovo Utente
9 Feb 2010
29
0
0
Ciao,
se vuoi utilizzare il sql da me indicato all'interno di php dovresti annullare i doppi apici considerati come caratteri speciali

SELECT value, substring_index(substring_index(value,':',-5),'","',1) FROM tabellaA where name='tempo di lavoro'

quindi prova così:

$ris_news= mysql_query("SELECT value, substring_index(substring_index(value,':',-5),'"",""',1) FROM tabellaA where name='tempo di lavoro'");

ho doppiato i doppi apici, uno annulla l'altro

Ciao
Mik

[HR][/HR]
A quick solution is a shortcut to troubleshooting
HolidaySoft.it - Gestionali, Database, SitiWeb
GarganoSapori.it - Olio ExtraVergine del Gargano
OsteriaORistorante.it - Crea la Vetrina per il tuo Ristorante!


Aggiungendo gli apici come mi hai indicato, già il dreamw. mi da errore.
Ti rigrazio cmq della tua collaborazione...e spero ti venga ancora un'idea.
Grazie
 

gaia

Nuovo Utente
9 Feb 2010
29
0
0
Due doppi apici vicini è come non metterne nessuno e dovresti unire le stringhe con i punti..quindi prova a rimuovere entrambe le coppie lasciando solo gli apici singoli.

Hai ragione...anche stavolta.
Ma...c'è sempre un ma...
Non mi da più alcun errore, ma mi stampa l'intero campo.
Ti faccio vedere...forse è meglio

$ris_news= mysql_query("SELECT value, substring_index(substring_index(value,':',-5),',',1) FROM tabellaA

where tabellaA.name='tempo di lavoro'");


//Se la query va male
if (!$ris_news) {

exit ('<p> Errore mentre recuperavo i dati ' . mysql_error() . '</p>');

}

echo "<p>Campi estratti dalla tabella Campi Extra</p><br>";

while ($news= mysql_fetch_array($ris_news))

{

echo "<p>Elementi Tabella:".$news['value']."</p>" ;

}

?>

Penso di sbagliare a richiamare value

Ciò che vedo nel browser è


Campi estratti dalla tabella Campi Extra

Elementi Tabella:[{"name":null,"value":"30,60,120,180,","target":null,"alias":"","required":1,"showNull":0}]



Vorrei invece poter vedere


Campi estratti dalla tabella Campi Extra

Elementi Tabella:"value":"30,60,120,180,"


O anche

Campi estratti dalla tabella Campi Extra

Elementi Tabella: "30,60,120,180,"
 

HolidaySoft.it

Utente Attivo
16 Ott 2012
106
1
0
Milano
www.holidaysoft.it
Ok, non ho abbastanza conoscenze su PHP, ma vedendo in giro per fare l'escape delle virgolette basta mettere davanti a ogni virgoletta
contenuta nella stringa un backslash:

quindi diventa:

$ris_news= mysql_query("SELECT value, substring_index(substring_index(value,':',-5),'\",\"',1) FROM tabellaA where name='tempo di lavoro'");

Ciao
Mik

[HR][/HR]
A quick solution is a shortcut to troubleshooting
HolidaySoft.it - Gestionali, Database, SitiWeb
GarganoSapori.it - Olio ExtraVergine del Gargano
OsteriaORistorante.it - Crea la Vetrina per il tuo Ristorante!
 

gaia

Nuovo Utente
9 Feb 2010
29
0
0
Ok, non ho abbastanza conoscenze su PHP, ma vedendo in giro per fare l'escape delle virgolette basta mettere davanti a ogni virgoletta
contenuta nella stringa un backslash:

quindi diventa:

$ris_news= mysql_query("SELECT value, substring_index(substring_index(value,':',-5),'\",\"',1) FROM tabellaA where name='tempo di lavoro'");

Ciao
Mik

[HR][/HR]
A quick solution is a shortcut to troubleshooting
HolidaySoft.it - Gestionali, Database, SitiWeb
GarganoSapori.it - Olio ExtraVergine del Gargano
OsteriaORistorante.it - Crea la Vetrina per il tuo Ristorante!


Scusami in alcun modo volevo mettere in discussione le tue competenze.:confused:
Evidentemente sono le mie ad essere ridotte.:hammer:
Scritta così la stringa funziona.
Volevo però che tu leggessi il mio precedente post perchè ora il problema è che mi fa visualizzare tutto il contenuto del campo e non solo la parte
che, diciamo, mi interessa.
Grazie dell'aiuto Mick
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Ok, non ho abbastanza conoscenze su PHP
Non ti stavo criticando ma se funziona in entrambi i modi conviene non metterle proprio, o sbaglio?

Per quanto riguarda il codice prova in questo modo:
PHP:
$ris_news= mysql_query("SELECT value, substring_index(substring_index(value,':',-5),',',1) as ciao FROM tabellaA WHERE tabellaA.name='tempo di lavoro'");
//Se la query va male
if (!$ris_news) {
exit ('<p> Errore mentre recuperavo i dati ' . mysql_error() . '</p>');
}
echo "<p>Campi estratti dalla tabella Campi Extra</p><br>";
while ($news= mysql_fetch_array($ris_news))
{
echo "<p>Elementi Tabella:".$news['ciao']."</p>" ;
}
?>
P.s. Ricordate di formattare il codice con gli appositi tag per garantire una migliore lettura.
 

gaia

Nuovo Utente
9 Feb 2010
29
0
0
Non ti stavo criticando ma se funziona in entrambi i modi conviene non metterle proprio, o sbaglio?

Per quanto riguarda il codice prova in questo modo:
PHP:
$ris_news= mysql_query("SELECT value, substring_index(substring_index(value,':',-5),',',1) as ciao FROM tabellaA WHERE tabellaA.name='tempo di lavoro'");
//Se la query va male
if (!$ris_news) {
exit ('<p> Errore mentre recuperavo i dati ' . mysql_error() . '</p>');
}
echo "<p>Campi estratti dalla tabella Campi Extra</p><br>";
while ($news= mysql_fetch_array($ris_news))
{
echo "<p>Elementi Tabella:".$news['ciao']."</p>" ;
}
?>
P.s. Ricordate di formattare il codice con gli appositi tag per garantire una migliore lettura.

Temo tu sia davvero bravo :incazz:
Sopporterò...:)...scherzo.
Funziona!
Mi restituisce un " di troppo ma cerco di risolvere io.
GRAZIE INFINITE
e scusami in anticipo se in seguito mi servirò ancora di te/voi.

Grazie anche a Mick
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
se la prima parte è sempre la stessa perche non usi più semplicemente
Codice:
SELECT SUBSTRING('value',14,37) as ora  FROM tabellaA WHERE name='tempo di lavoro'
(verifica che abbia contato giusto)
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr
(precedente a substring_index)
?
poi un consiglio
dividi la query (indipendentemente da quella che poi userai) e metti un paio di var_dum così vedi se la query viene scritta come dovrebbe
PHP:
<?php
//.....
$query="SELECT ....  FROM tabellaA WHERE name='tempo di lavoro'";
var_dump($query);//vedi se la query è scritta come dovrebbe
$ris_news= mysql_query($query);
var_dump($ris_news);//vedi se la query va a buon fine
//...
?>
edit
poi perche non estrai tutto il campo e poi te lo formatti come vuoi con php, secondo mer sarebbe più semplice e meno dispendioso
 
Ultima modifica:

gaia

Nuovo Utente
9 Feb 2010
29
0
0
ciao
se la prima parte è sempre la stessa perche non usi più semplicemente
Codice:
SELECT SUBSTRING('value',14,37) as ora  FROM tabellaA WHERE name='tempo di lavoro'
(verifica che abbia contato giusto)
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr
(precedente a substring_index)
?
poi un consiglio
dividi la query (indipendentemente da quella che poi userai) e metti un paio di var_dum così vedi se la query viene scritta come dovrebbe
PHP:
<?php
//.....
$query="SELECT ....  FROM tabellaA WHERE name='tempo di lavoro'";
var_dump($query);//vedi se la query è scritta come dovrebbe
$ris_news= mysql_query($query);
var_dump($ris_news);//vedi se la query va a buon fine
//...
?>
Ok verifico il conteggio e provo con var_dum.

Sto scrivendo dei file in php che serviranno da report per un gestionale.
ecco il motivo di estrarre solo quel valore.



Vi faccio sapere appena possibile.

Grazie a tutti voi.
 
Ultima modifica: