Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Indice auto_increment

  1. #1
    Utente di HTML.it L'avatar di c3k
    Registrato dal
    Jan 2002
    Messaggi
    42

    Indice auto_increment

    salve, ho iniziato da poco la mia avventura con PHP / MySQL e già più di una volta mi sono imbattuto in un problema: quando creo una tabella per archiviare testi (news o piccoli messaggi) mi resta sempre comodo usare un id e, per evitare di doverlo calcolare ogni volta lo setto su auto_increment. il problema viene fuori quando cancello dei dati già inseriti, naturalmente l'indice non se ne preoccupa e continua ad autoincrementarsi, lasciando così posizioni vuote, complicandomi la vita (diventa troppo grande e non mi permette di usare funzioni tipo random)...

    volevo chiedervi conoscete un semplice modo per ovviare a questo problema? esiste qualcosa del genere: inserisci questo testo e prendi come id la prima posizione disponibile? oppure va gestito tramite script? a tentativi?

    grazie!

    carlo

  2. #2
    conviene lasciare all'id la sua funzione (identificare unicamente un record) e lavorare con funzioni di mysql (ORDER BY rand() ad esempio) o da script per ovviare ai vari problemi

  3. #3
    Utente di HTML.it L'avatar di c3k
    Registrato dal
    Jan 2002
    Messaggi
    42
    allora ho scritto questa:
    codice:
    function trovaid($nometabella, $db){
      $indici = mysql_query("SELECT id FROM $nometabella ORDER BY id", $db) or die ("Errore nella selezione dell'id.");
      $i = 1;
      while ($line = mysql_fetch_row($indici)) {
        if ($line[0] != $i) return $i;
        else $i++;
      }
      return $i;
    }
    si può fare in maniera più veloce? accetto volentieri consigli/suggerimenti per migliorarla!

  4. #4
    ti hanno già risposto
    SELECT id FROM $nometabella ORDER BY RAND()


  5. #5
    Utente di HTML.it L'avatar di c3k
    Registrato dal
    Jan 2002
    Messaggi
    42
    scusa ma con ORDE BY RAND, non risolvo il problema dei "buchi" vuoti che mi rimangono nella colonna id quando cancello qualcosa... oppure sì ?

  6. #6
    ma che problema cè a lasciare degli id nulli??

  7. #7
    se vuoi 1 dato a caso
    SELECT id FROM $nometabella ORDER BY RAND() LIMIT 0,1

    non avrai mai un id vuoto come ritorno

  8. #8
    avere degli id vuoti è una cosa perfettamente normale, non credo esistano funzioni sql specifiche per "riempire i buchi".
    Hey Barney, fantastico, hai portato un barile di birra!! Già, dove posso riempirlo?
    http://www.ibolli.it

  9. #9

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Utente di HTML.it L'avatar di c3k
    Registrato dal
    Jan 2002
    Messaggi
    42
    ok, sì, mi sono quasi convinto che è meglio non modificare l'id per vari motivi...allora la domanda successiva è (ed è anche il moticvo per cui è nato questo thread): quanto influisce la dimensione del campo id sulla velocità/efficenza delle query??? voi quanto lo settate grande?

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.