Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [SQL] Ordinare output

  1. #1

    [SQL] Ordinare output

    Salve, finora ho sempre usato in modo massacrante una tabella per ogni lingua (italiano, inglese, francese...) anche se i campi sono sempre gli stessi.
    Per cui l'output era:
    codice:
    SELECT * FROM italiano WHERE id=1
    SELECT * FROM italiano WHERE id=2
    SELECT * FROM inglese WHERE id=1
    SELECT * FROM inglese WHERE id=2
    L'id lo inserivo sempre manualmente.
    Ora sono riuscito a mettere tutto in una sola tabella aggiungendo il campo CODE in cui scrivevo la lingua.
    Così sono arrivato a:
    codice:
    SELECT * FROM tabellaintera WHERE code='italiano' ORDER BY id
    SELECT * FROM tabellaintera WHERE code='inglese' ORDER BY id
    Il problema è che ora, a parte il primo record che pesca i primi contenuti che trova, nei seguenti non posso più mettere manualmente il numero di ID da visualizzare perchè la tabella nel database è dinamica e quindi ogni tanto possono comparire nuovi record con il CODE italiano, o inglese, o altro.

    Si può far sì che quando il record con il precedente ID è stato già visualizzato nell'output, lo script passi al successivo? Una sorta di NEXT..

    Probabilmente è una cavolata.. ma HELP!
    Grazie,

    Spirit

  2. #2
    Ciao, se il tuo campo id è di tipo int puoi usare la funzione auto_increment del database (se mysql).

    prova a leggere questo... http://freephp.html.it/articoli/prin...olo.asp?id=171

  3. #3
    Ciao, il mio campo ID è già di tipo int ed ha l'auto increment, ma non capisco cosa c'entri, non devo inserire manualmente l'ID ma voglio che legga il successivo.

  4. #4
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Faci capire meglio: hai la tabella unica ora e hai i campi code che possono essere di tutte le lingue. Gli id sono autoincrement e i record pero' sono messi a caso(1° ita 2°ing 3°fra....) e tu vuoi leggere solo quelli in italiano se il primo stampato e' italiano o cosa? o saltare di uno i record?

  5. #5
    Praticamente, nella pagina in lingua inglese vorrei che vengano letti solo i record in cui il code è 'INGLESE', in ordine per ID naturalmente.
    Prima scrivevo manualmente 'prendi il record dove id è 2' ma ora ho bisogno di qualcosa di automatico che li legga in ordine, saltando i CODE diversi da INGLESE.
    Con
    codice:
    SELECT * FROM tabellaintera WHERE code='inglese' ORDER BY id
    riesco a recuperare solo il primo record, per i successivi chiedo a voi
    Spero sia più chiaro.

  6. #6
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    fare un ciclo no?

    $select = "SELECT * FROM tabellaintera WHERE code='inglese' ORDER BY id";
    $query = mysql_query($select)or die(mysql_error());
    while($result = mysql_fetch_array($query)){

    Cosi' facendo leggerai i record della tabella dal primo all'ultimo.

    }

  7. #7
    Ho risolto con il ciclo for, che poi è simile :P
    Visto, era una cavolata!

  8. #8
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    ok, bene

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.