[Db] Problemino ><
Domenico L.
domenico.lorusso a pleiade.it
Ven 20 Lug 2007 15:57:23 CEST
graz ha scritto:
> Ciao Lista,
>
> Intervengo raramente ma seguo sempre con interesse.
>
> Ho un problemino che non riesco a capire.
> Con questa query
> $nome1 = $db->get_var("SELECT titolo FROM collection WHERE posid > '$posid'
> AND anno='$catid'");
> estraggo il titolo di un articolo il cui numero di posizione è superiore
> alla posid inserita di volta in volta ed incrementata di conseguenza.
>
> Tuttavia se inserisco questa invece
> $nome2 = $db->get_var("SELECT titolo FROM collection WHERE posid < '$posid'
> AND anno='$catid'");
> non mi da, come dovrebbe, il titolo dlel'articolo della precedente
> posizione, ma bensì il titolo del primo articolo presente, ovvero quello
> nella posizione più bassa di tutte.
>
> Potrebbe essere un problema mysql oppure ho sbagliato da qualche parte nel
> php?
>
é sbagliata la logica
$posid è uno spartiaccque
se posid> $posid
ti ritorna tutti i record che hanno posid superiore a $posid
se fai posid< $posid
ti ritorna tuti i record che hanno posid infiereio a $posid
in entrambi i casi si può fare con una subquery oppure con 2 query:
questo per il successivo a posid
select titolo
FROM collection as c
WHERE c.anno='$catid'
and posid =(select min(posid)
from collection as c1 where c.anno=c1.anno and posid> $posid)
questo per il precedente:
select titolo
FROM collection as c
WHERE c.anno='$catid'
and posid =(select max(posid)
from collection as c1 where c.anno=c1.anno and posid<$posid)
Se non hai mysql 4.1 devi fare in 2 passaggi
ciao
--
Domenico L. icq: 645 44 861 - msn: strahd a jumpy.it
per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]
Maggiori informazioni sulla lista
Db