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

    Numero incrementale in un database MySQL

    Ciao a tutti,
    ho costruito una tabella all'interno di un database MySQL dove uno dei campi, la chiave primaria della tabella stessa, è costituito da un numero incrementale (il campo "ID"). Ora, se attraverso l' apposito form da me creato cancello un record, il numero leggendo la tabella non è più perfettamente incrementale. Intendo che se il primo record era contrassegnato dal valore 1 nel campo ID, il secondo record dal valore 2 ed il terzo dal valore 3, se cancello il secondo record allora i due campi rimasti avrabbo come ID rispettivamente il valore 1 e 3. Io invece vorrei che anche dopo la cancellazione il valore rimanga con un incremento di 1 tra i vari records, quindi se ne sono rimasti due, questi dovrebbero avere come ID i valori 1 e 2.
    Qualcuno sa come si potrebbe fare?
    Saluti,
    Carlo

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Quello che chiedi e' in contraddizione con l'uso per il quale i campi auto-incrementali sono stati creati... ovvero costituire un riferimento sicuramente univoco per il record corrente.

    La modifica che chiedi creerebbe anche non pochi problemi nella gestione dell'integrita' referenziale... dato che i suddettti campi sono prevalentemente usati per creare le relazioni fra tabelle, ogni modifica dovrebbe comportare massicci interventi del motore db per garantire i collegamenti di tutti i successivi record.

    Se cerchi un meccanismo automatico per mantenere "senza buchi" la sequenza degli ID ho paura che dovrai creare una procedura ad hoc.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    la domanda piu stupida è: ma a che ti serve sta cosa?

    se ti serve per avere i record contati, beh sprechi tempo...

    se magari ci dici perchè vuoi fare questa forzatura, magari ti diamo una mano


  4. #4
    Grazie delle vostre risposte,
    sto costruendo un pannello per poter gestire i links del menu, quindi ho 2 caselle di testo per ogni record presente nel database a cui corrispondono i campi menu_label (la voce del menu che diventa cliccabile per poter raggiungere una determinata pagina) e menu_href (la pagina da raggiungere). l'utente cliccando sul bottone "aggiorna" (campo submit) ha la possibilità di aggiornare le tutte le caselle di testo che quindi può eventualmente aver modificato. Devo però trovare un modo per poter correlare ogni campo input del form alla corrispondente riga del database.

  5. #5
    ah ok vedi che non centra avere le cose ordinate:

    fai questo:

    chiama gli input con nome composto da identificativo+nome_campo

    es:
    codice:
    <input type="text" name="<%=rs("id_campo") %>_menu_href">
    <input type="text" name="<%=rs("id_campo") %>_menu_label">
    poi quando fai l'update tiu prendi tutti gli id dei menu che già hai e li metti in un array e poi fai un bel ciclo:

    codice:
    for each elemento in array_id
    
    menu_href=request.form(elemento & "_menu_href")
    menu_label=request.form(elemento & "_menu_label")
    
    ...
    ...
    next

  6. #6
    Ciao,
    grazie per i tuoi consigli...sto provando a fare come dici, ma subito incontro un problema:

    Microsoft VBScript compilation error '800a0402'

    Expected integer constant

    /manage_menu.asp, line 33

    dim arrmID (irecords)
    ------------^


    riporto anche il blocco di codice interessato:


    opendatabase "select mID from menu"
    dim irecords
    irecords = objrecordset.recordcount
    irecords = cint(irecords) - 1
    dim arrmID (irecords)


    non è possibile quindi definire dinamicamente il numero di celle di cui è composto un array?

    Grazie

  7. #7
    devi usare la sintassi redim arrayid(variabile)

  8. #8
    ok fatto...
    ora funziona, grazie! Stavo pensando ad una cosa...sarebbe interessante che se l'utente inserisce un link di una pagina che non esiste ancora questa venga creata dinamicamente, naturalmente come modello. E' possibile creare dinamicamente un file .asp?

  9. #9
    crei un file di testo e gli dai estensione .asp invece di .txt...naturalmente sto parlando di codice usando l'oggeto file system object

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.