Newsgroup: it.comp.www.php
Titolo: progressivo record in php

volevo sapere se c'è un sistema per ricavare il numero del record a
fianco di ogni record utilizzando solo l'sql di mysql
esempio:
n_rec|campo1|campo2
1      |       10 |bbbb
2      |        20|pppp
3      |        30|ccccc
il numero record vorrei lo restituisse l'sql
esempio select xxxxx as num_rec, campo1, campo2 from tabella where
campo1>=10
è possibile in qualche modo?
ciao a tutti e buona giornata 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ciao a tutti e buona giornata 
deduco dalla mancanza di risposte che la mia richiesta non abbia
soluzione... sbaglio?


 soluzione... sbaglio?
Scusa la soluzione non è proprio l'esempio che hai fatto tu stesso?

 soluzione... sbaglio?
Piu` che altro non ha molto senso.
Se ti serve un progressivo per ogni riga dovresti usare un campo
auto_increment
Se vuoi che indipendentemente dall'ordine che scegli e dai dati ricavati,
ti dia un numero d'ordine, forse c'e` una funzione sql che genera una
sequenza temporanea.
Ma, onestamente, mi sfugge l'utilita`.
Bye.

 è possibile in qualche modo?
Certo che è possibile:
set @n := 0;
select (@n := @n+1), tabella.* from tabella;
ecco a lei la soluzione ...
--
[CapoBecchino]
msn: capobecchino |[@]| hotmail |[.]| com
SEZIONE PICCOLI ACCORGIMENTI: "Chiamami un tassì", mi disse prima di
morire e sulla sua lapide ho scritto: "Qui riposa in pace Untassì"

 Certo che è possibile:




grazie anzitutto per la risposta
mi sono dimenticato di dire che uso mysql4.1 e mi pare che questo non si
possa fare con questa versione
correggimi se sbaglio...


 Bye.
grazie anzitutto per la risposta
mi serve un campo progressivo senza "buchi"...
la funzione autoincrement del campo i buchi li lascia...
e poi se estraggo solo dei valori dalla tabella con dei where non sono
consecutivi
mi servirebbe proprio la funzione sql che "genera una sequenza temporanea"
come dici giustamente tu.
se per caso tu o qualcun'altro ne conosce l'esistenza mi faccia sapere
ciao


Andrea "suppaman" D'Amore ha scritto:






beh si, la soluzione è quella che io ho esemplificato, ma come posso
raggiungere questo risultato.. questo è il dilemma :(


 wrote:





beh si, la soluzione è quella che io ho esemplificato, ma come posso
raggiungere questo risultato.. questo è il dilemma :(



Dovrebbe essere possibile anche per le versioni prima della 4.1 quindi
dovresti andare tranquillo. ...
--
[CapoBecchino]
msn: capobecchino |[@]| hotmail |[.]| com
SEZIONE DIVERTIMENTO & AFFINI: "Qual è il poliziotto più sfortunato?
Quello che muore al posto di blocco. E quello più fortunato? Blocco!"

 consecutivi
Ah forse ho capito, tu vuoi per ogni elemento restituito da una select 
un indice sequenziale e lo vuoi per ogni select.
Da come hai scritto tu credevo quel numero fosse in tabella.
Non so come fare con SQL ma perché non usi php per contare gli elementi ?

 Quello che muore al posto di blocco. E quello piů fortunato? Blocco!"
ho provato a far girare questa sql: 
set @n := 0;
select (@n := @n+1) as n_rec, generico.`cod_com`.* from generico.`cod_com`;
gira ma in n_rec mi restituisce NULL
come mai? č un errore mio o forse bisogna fare qualcosa di diverso


come dici giustamente tu.
Mi sembra ROW_NUMBER(). Oppure
set @rowno = 0;
select *, @rowno := @rowno + 1 as rowno from table;
Il modo in topic e'
$rowno = 0;
$exec = SQLexec("SELECT * FROM table;");
while($tuple = SQLFetchTuple($exec))
{
	$tuple['ROW_NUMBER'] = $rowno++;
	...
}
Leonardo
-- 
 What do you make, so fair and bright;
 What do you build with sails for flight;
 What do you weave with wool so white?

 [CapoBecchino] ha scritto:







ho cercato in rete e ho trovato questo
http://www.stardata.it/articoli_it/progr_num_articoli_it.html
 che non fa
altro che quello che tu mi hai giustamente indicato, ma il problema č
sempre lo stesso mi restituisce null nel campo progressivo del record
s epuoi fammi sapere, ciao


 Leonardo
anzitutto grazie per la risposta
ROW_NUMBER() mi sembra di capire da una ricerca rapida in google che sia
realtivo a sqlserver
il codice successivo gira in mysql ma non conta e mi restituisce null come
ho già segnalato in un mio post precedente
forse bisogna settare qualcosa nel motore di mysql?


 s epuoi fammi sapere, ciao
Guarda che le query sono 2 ...
la prima è il SET e la seconda il SELECT ...
--
[CapoBecchino]
msn: capobecchino |[@]| hotmail |[.]| com
SEZIONE SODDISFATTI O RIMBORSATI: Nessuno si è mai lamentato della
nostra offerta 2x1. Morire in 2 e pagare per 1

 [...CUT...]




si funziona!! non va nel programma che uso "ems sql manager 2005"
ora ho un ultimo problema se rifaccio rigirare le 2 query non mi azzera la
variabile "n"
come posso fare per riportarla a zero od eventualmente eliminarla?
ciao e sempre mille grazie


 ciao e sempre mille grazie
scusami, scusate basta riportarla a zero
problema risolto grazie a tutti!!!!!!!!!!!!!!!!11


ho già segnalato in un mio post precedente
Boh... a me funziona. Cosa usi per mandare comandi a MySQL?
mysql> set @rowno = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> select @rowno := @rowno + 1 as rowno, user_id from users;
+-------+---------+
| rowno | user_id |
+-------+---------+
|     1 |       1 |
|     2 |       2 |
|     3 |       3 |
|     4 |       4 |
|     5 |       5 |
|     6 |       6 |
|     7 |       7 |
|     8 |       8 |
+-------+---------+
8 rows in set (0.00 sec)
Se cosi' non funziona, prova a contare in PHP. Quello funziona per forza.


Boh... a me funziona. Cosa usi per mandare comandi a MySQL?
Scusa, ho visto che hai risolto :-)


 3      |        30|ccccc
hai mai pensato di aggiungere un id "auto_increment" alla tua tabella?
-- 
http://josh.pixael.com