Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Incrementare un contatore

    Ciao a tutti, avrei una domanda da farmi. Supponiamo di avere un Database con un nome e un cognome.

    Il nome è composto da nome+cognome+contatore, e ogni volta che aggiungo un campo che ha lo stesso nome e lo stesso cognome, devo aggiungere un nuovo record e incrementare il contatore...Come faccio a recuperare però il nome+cognome+contatore più alto? Dovrei trovarmi il massimo comune tra questi record...lo faccio con sql?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Credo sia più facile rivedere completamente la struttura del DB per adattarla alle più elementari regole del buon senso.

    Costruisci una tabella in cui hai 3 campi: Nome, Cognome e Contatore (eventualmente, facendo sì che la chiave primaria sia la terna stessa).

    In questo modo hai il controllo su tutto.

    Lavorare con quella tabella è terribilmente complesso: se il campo è la concatenazione di tre valori, l'intero campo è di tipo stringa. Questo comporta il fatto che gli ordinamenti sono fatti in modo lessicografico e non numerico (per il singolo contatore). Risultato: non puoi sapere qual è il record con il contatore più alto, dato che, ad esempio, una query con ordinamento estrarrebbe questi quattro record nell'ordine esposto:

    codice:
    MarioRossi1
    MarioRossi2009
    MarioRossi600
    MarioRossi9
    Quando si ha a che fare con i DB è necessario che questi siano progettati con tutti i crismi, per poter essere poi facilmente ed efficientemente usati.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    E lo so lele, anch'io avrei fatto così...però è una struttura già esistente...

  4. #4
    cioè il massimo in sql si trova:

    Codice PHP:
    Select Max(Nome_Colonna) as Massimo from Nome_Tabella 
    ma se questa tabella non è un numerico, ma un varchar, credi che funga comunque?

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da PerformancePort
    ma se questa tabella non è un numerico, ma un varchar, credi che funga comunque?
    Come ho già detto, no.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.