Joomla.it Forum
Non solo Joomla... => Sviluppo => : valex 30 Apr 2010, 17:32:06
-
Ciao!
sò che non è propriamente una domanda joomlesca, ma ho un problemino che non riesco a risolvere.
ho un valore in una tabella che è così
a:1:{i:0;s:56:"si! contattatemi e partiamo insieme per nuove avventure!";}
come faccio a prendere solo il testo?
devo lavorare con substring , cast ecc? però non riesco a trovare una caspita di guida su internet. aiuto!!
-
dunque, adesso ti dico tutte le cose curde che mi vengono in mente.
...tutto regex a parte :)
1) explode(':', stringa);
e hai un array di cui la key più alta è quella della stringa che ti serve
2) strpos delle virgolette e calcolo con relativa sottrazione della stringa.
3) ti avrei detto eregi ma vedo dal php che è stata deprecata... però vedo che ce ne sono di nuove per le stringhe
4) MA AVREI dovuto metterla per prima... hai provato con unserialize() ? ... sembra il frutto di un serialize().
M.
-
o mamma, il curdo nooo...Grande Mau, grazie della risposta.
dunque, ci provo!
ho provato con unserialize, tra l'altro il problema è che non sempre la stringa è uguale, ma può anche avere un altro valore,
tipo
a:1:{i:0;s:35:"no grazie! sono un lupo solitario! ";}
per navigare nei valori di questa maledetta tabella ho partorito sta super query
SELECT * from (
SELECT DISTINCT wp_bp_xprofile_data.user_id USERID ,
(SELECT wp_bp_xprofile_data.value
FROM wp_bp_xprofile_data
WHERE wp_bp_xprofile_data.user_id = USERID
AND wp_bp_xprofile_data.field_id =5
)META ,
(SELECT wp_bp_xprofile_data.value
FROM wp_bp_xprofile_data
WHERE wp_bp_xprofile_data.user_id = USERID
AND wp_bp_xprofile_data.field_id = 61
) AMICI ,
(SELECT wp_bp_xprofile_data.value
FROM wp_bp_xprofile_data
WHERE wp_bp_xprofile_data.user_id = USERID
AND wp_bp_xprofile_data.field_id = 62
) SHARE1 ,
(SELECT wp_bp_xprofile_data.last_updated
FROM wp_bp_xprofile_data
WHERE wp_bp_xprofile_data.user_id = USERID
AND wp_bp_xprofile_data.field_id = 5
) TEMPO
FROM wp_bp_xprofile_data ORDER BY TEMPO DESC LIMIT 0, 10
) BASE_TABLE where BASE_TABLE.META is not null
e nel foreach ci ho messo questo
foreach ( $risultati as $r)
echo '<li class="postplaner">'.get_avatar($r->USERID, $size = '24').' (http://www.nomesito.com/members/'.get_user_name($r->USERID).'/profile/) Ciao, sono '.get_user_name($r->USERID).' e sto pianificando il viaggio a: '
.$r->META.'
Compagni di viaggio: '.$r->AMICI.'
Share your trip? '.unserialize($r->SHARE1).'
</li></br>';
purtroppo mi stampa solo Array, che dovrei fare? innanzitutto comprarmi un bel libro su mysql e php 5, lo ammetto, ma poi?
-
foreach ( $risultati as $r)
echo '<li class="postplaner"><a-href="http://www.nomesito.com/members/'.get_user_name($r->USERID).'/profile/">'.get_avatar($r->USERID, $size = '24').'[/url] Ciao, sono '.get_user_name($r->USERID).' e sto pianificando il viaggio a: '
.$r->META.'
Compagni di viaggio: '.$r->AMICI.'
Share your trip? '.unserialize($r->SHARE1).'
</li></br>';
-
..infatti, non avevo visto i ;
si, mi sa che con le regex è più semplice, comunque se sono almeno sempre tra doppi apici puoi fare così:
$stringa = 'a:1:{i:0;s:35:"no grazie! sono un lupo solitario! ";}';
$ultima = strrpos($stringa, '"');
$prima = strripos($stringa, '"');
$risultato = substr($stringa, $prima, $ultima-$prima);
M.
EDIT ... stavo guardando qui:
http://www.php.net/manual/en/function.unserialize.php
esempio 2... perchè non riesci?
-
ragazzi è un array! ;)
$s='a:1:{i:0;s:56:"si! contattatemi e partiamo insieme per nuove avventure!";}';
$a=unserialize($s);
echo $a[0];
valex ma che hai scritto???
SELECT * from ( SELECT
50 queries e il sito va in ginocchio!! riscrivi la query usando le join... non ho capito come possa funzionare :o
ciao,
marco
-
ueeee eccomi, ho risolto, grande mau!! grandeeeeee..
foreach ( $risultati as $r)
{
$stringa= $r->SHARE1;
$share = 'vai sul tuo profilo';
if ( !is_null($stringa) ) {
$stringa = $r->SHARE1;
$prima = strpos($stringa, '"');
$ultima = strrpos($stringa, '"');
$share = substr($stringa, $prima+1, $ultima-$prima-1);
}
poi stampo $share e mi funziona tutto correttamente..
ora provo anche unserialize vediamo se mi funge, grazie mmleoni, per ora la query regge in effetti è un pò abnorme! eheh ;D...dopo mi ci metto e inserisco le join..intanto il risultato è visibile su www.ioviaggiointreno.com/trainplaner/