49 messaggi dal 06 settembre 2002
ciao a Tutti
Il mio problema:
da una select con parecchi record restistuiti

dovrei estrarre id dell'ultimo record di questa query

mi date una mano?
grazie in aticipo

3.122 messaggi dal 16 maggio 2002
SELECT MAX(id)
FROM tabella
WHERE condizione

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
49 messaggi dal 06 settembre 2002

ho provato ed è ok,
ma
cosi facendo mi estrae l'ultimo numero di tutta la selct

ma io vorrei limitare i record a 10 per volta

quello il dato che mi serve ultimo dei 10 record

e possibile?

ti ringrazio
Modificato da sima il 18 settembre 2003 22.50 -
3.122 messaggi dal 16 maggio 2002
Per limitare il numero di record estratti devi usare, a seconda del DBMS utilizzato, le clausole:

1. TOP se usi Access o SQL Server
2. LIMIT se usi MySql
3. per altri DBMS non so

Caso 1:
SELECT TOP 10 *
FROM tabella
WHERE condizione
ORDER BY id DESC

Questa query ti estrae tutto dei primi 10 records in ordine di id decrescente.

Caso 2:
SELECT *
FROM tabella
WHERE condizione
ORDER BY id DESC
LIMIT 0, 10

Questa query (per MySql) estrae tutto dei 10 records successivi a partire dal record di posizione 0 (cioè il primo) in ordine di id decrescente.

Era più o meno questo che chiedevi?

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
49 messaggi dal 06 settembre 2002
ciao jim
io uso MySql quindi la sintassi e quella dei "limit"
e fin qui e ttto ok

io pero dovre ricavare l'ultimo id di quella query cioè

una query che mi estrae 100 record
da 1 a id 100
do limit 50
dovrei poter ricavare l'id 50
che istruzione gli devo dare?

ha!! grazie
3.122 messaggi dal 16 maggio 2002
Uhm.. devi estrarre solo l'id massimo o anche tutti gli altri record? Se ti serve tutto puoi eseguire la query ordinando le tuple rispetto a id e aprendo un recordset: se l'hai ordinato ASC con la MoveLast ti posizioni sull'ultimo record, se è ordinato DESC ce l'hai subito. Non so però se MySql digerisce la MoveLast.
Fai una cosa allora: prima esegui la query per ottenere il MAX(id), poi apri la query di selezione delle tuple con le stesse condizioni.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
518 messaggi dal 23 febbraio 2002
Io uso Access e ho la necessita' di fare un Paging nel mio catalogo,

con MySQL + PHP faccio cosi:

<?
// Risultati visualizzati per pagina
$Rec_Pagina=10;
if(!isset($Start))$Start=0;

// Estrazione Dati e conteggio righe totali nella tabella
include("includes/conn_open.php");
$oComm=mysql_query("SELECT * FROM Articoli LIMIT $Start,$Rec_Pagina",$oConn);
$oCommTot=mysql_query("SELECT * FROM Articoli",$oConn);
$Num_Prodotti=mysql_numrows($oCommTot);
$Numero_Pagine=ceil($Num_Prodotti/$Rec_Pagina);
$Pagina_Corrente=ceil(($Start/$Rec_Pagina)+1);
while($oRead=mysql_fetch_array($oComm))
{
$Codice=$oRead["Codice_Articolo"];
$Nome=$oRead["Nome_Articolo"];
-----------
------
--
}
include("includes/conn_close.php");

// paging
echo"<br><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td style=\"font-size:12px; font-family:Arial; font-weight:bold; color:#000000\" align=\"center\">";

if($Numero_Pagine>1)
{
  for($Pagina=1;$Pagina<=$Numero_Pagine;$Pagina++)
  {
    echo"[&nbsp;<a href=?Start=";
    echo(($Pagina-1)*$Rec_Pagina);
    echo">";
    if($Pagina==$Pagina_Corrente)
    {
      echo"<font color=\"#cc0000\">$Pagina</font>";}else{echo"<font color=\"#000000\">$Pagina</font>";
    }
    echo"</a>&nbsp]&nbsp;&nbsp";
  }
}

echo"</td></tr></table>";
// paging
?>


Su ACCESS non posso usare il LIMIT , cosa posso usare ???
3.122 messaggi dal 16 maggio 2002
Cerca "paginazione" negli usag del sito.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.