Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Query
Forum - PHP - Query

Avatar
NewAge (Normal User)
Pro


Messaggi: 153
Iscritto: 23/08/2009

Segnala al moderatore
Postato alle 23:35
Martedì, 31/08/2010
Non so come creare una query che mi trovi un id valido in 'int' (4294967295) che non sia un duplicato.

In parole più semplici...

Io ho una tabella, dove 2 programmi lavorano contemporaneamente: il mio e un altro. Il fatto è che quest altro inserisce id come se fossero a casaccio e non capisco come ragioni.... non posso far inserire id all'autoincrement perché sennò mi da errore di duplicato....

Quindi... Io in questa tabella ho 20 milioni di records su 4.294 milioni che posso trovare, e con una query devo trovare un id libero dove poter inserire il mio nuovo record.

Grazie mille per l'aiuto :D

PM
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1702
Iscritto: 04/05/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 1:22
Mercoledì, 01/09/2010
Un id con la proprietà "Autoincrement" dovrebbe già risolverti il problema.
visto che non và a trovarti un id libero, ma ad ogni nuovo record inserito il contatore viene incremetato automaticatimente.

cmq anche se non ho capito molto bene il problema.

potresti risolvere il tuo usando

Codice sorgente - presumibilmente PHP

  1. $contantore = 0;
  2. while($row = mysql_fetch_array($sql)) {
  3.  
  4. //Se l'id e uguale al valore del contatore
  5. if(row[id] == $contatore) {
  6.  
  7. //significa che è questo ID è già stato usato qundi continua il ciclo
  8. $contatore++;
  9.  
  10. } else {
  11.  
  12. //Altrimenti
  13. //esegui query di inserimento usando l'ultimo id disponibile trovato
  14.  
  15. }
  16.  
  17.  
  18. }



fatto questo interrompi il ciclo al momento oppurtuno
durante l'inserimento della query.


PM