Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    ho scritto come dici tu:

    codice:
    $am = 1;
    
    $query = "UPDATE articoli SET id = $am;";
    
    $var = mysql_query($query);
    
    while ( $row = mysql_fetch_assoc($var) )
    {
    ++$am;
    }
    e mi da l' errore:

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Programmi\EasyPHP 2.0b1\www\riordiniamo.php on line 17

    ho anche provato in questo modo:

    codice:
    $am = 1;
    
    $query = "UPDATE articoli SET id = $am;";
    
    $var = "SELECT id FROM articoli;"
    
    while ( $row = mysql_fetch_assoc($var) )
    {
    
    mysql_query($query);
    
    
    ++$am;
    }
    ma sta volta mi da:


    Parse error: parse error, unexpected T_WHILE in C:\Programmi\EasyPHP 2.0b1\www\riordiniamo.php on line 17
    Luca Pennisi - Web Marketing Specialist

  2. #12
    scusa ma ti sembra lo stesso ordine in cui te le ho messe io??

    Codice PHP:
    $am 1;

    $query "UPDATE articoli SET id = $am;";

    @
    mysql_query($query);

    $var "SELECT id FROM articoli;"

    $queryexe mysql_query($var);

    while ( 
    $row mysql_fetch_assoc($queryexe) )
    {

    ++
    $am;

    riparti leggendoti un manuale mi sa che è meglio
    basterebbe anche solo sfogliarlo su una funzione mysql per vedere la sintassi da usare
    e non credo tu labbia mai fatto




  3. #13
    VVoVe: Mamma mia quanto codice inutile!!!!!!

    Non capisco proprio perché arrovellarsi per fare una routine che appesantisca server e script solo per cambiare un numero!
    I database più conosciuti si chiamano relazionali proprio perché mettono in relazione i dati in diversi modi tra di loro, non certo solamente perché esiste un numero progressivo che si autoaggiorna e quindi si pensa che possa essere fondamentale per la buona riuscita di una query!

    .... e se proprio vuoi avere una tabella con l'ID sempre progressivo e senza interruzioni, puoi tentare l'opzione del backup totale dei vari record, quindi di un TRUNCATE TABLE e quindi di una query INSERT di ogni record precentemente salvato.
    Ad ogni modo, anche per questo metodo torna caro il titolo di una commedia di Shakespeare: "Molto Rumore per Nulla"!!!!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #14
    Originariamente inviato da alcio74
    VVoVe: Mamma mia quanto codice inutile!!!!!!

    Non capisco proprio perché arrovellarsi per fare una routine che appesantisca server e script solo per cambiare un numero!
    I database più conosciuti si chiamano relazionali proprio perché mettono in relazione i dati in diversi modi tra di loro, non certo solamente perché esiste un numero progressivo che si autoaggiorna e quindi si pensa che possa essere fondamentale per la buona riuscita di una query!

    .... e se proprio vuoi avere una tabella con l'ID sempre progressivo e senza interruzioni, puoi tentare l'opzione del backup totale dei vari record, quindi di un TRUNCATE TABLE e quindi di una query INSERT di ogni record precentemente salvato.
    Ad ogni modo, anche per questo metodo torna caro il titolo di una commedia di Shakespeare: "Molto Rumore per Nulla"!!!!

    1- non c'è manco mezza virgola per sistemare gli id quindi gia post male in partenza

    2- il codice serve ad altro

    3- invece il tuo modo non è un peso sia per il server che per chi lo deve fare??




    WLF

  5. #15
    Originariamente inviato da punkrazio
    3- invece il tuo modo non è un peso sia per il server che per chi lo deve fare??
    ...pur rimanendo continuamente e completamente ignaro delle motivazioni che spingono un programmatore ad uno sforzo simile... concordo in pieno con Punkrazio: fare una select, poi una truncate e poi una insert mi pare uno speco ancora peggiore di risorse di tutte le proposte fin qui ottenute!

    Cane-nero x favore, mi togli definitivamente il dubbio sulla motivazione che ti spinge a far ciò??
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  6. #16
    Vabé.... finora non avevo risposto perché credevo di essere completamente fuori topic.

    Ma dopo questa ulteriore risposta, ho riletto bene tutto il post e mi sembra di potere dire che non avevo letto male!
    cane-nero cerca uno script che gli permetta di andare a riempire i "vuoti" lasciati dalla cancellazione di un record.
    La soluzione che avevo illustrato io era semplicemente stata scritta per far vedere che esiste un'ulteriore soluzione.... che poi è quella che si utilizza facendo un backup di una tabella!
    So perfettamente quanto sia dispendiosa in termini di tempo ed impiego del server!

    Sicuramente ho scritto male il mio post, ma intendevo solo essere ironico e far capire che anche io sono d'accordo con voi circa l'inutilità di una tale pratica...... infatti avevo esordito parlando di codice inutile!!!

    Questo solo per chiarire!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #17
    Originariamente inviato da alcio74 Sicuramente ho scritto male il mio post, ma intendevo solo essere ironico e far capire che anche io sono d'accordo con voi circa l'inutilità di una tale pratica...... infatti avevo esordito parlando di codice inutile!!!

    Questo solo per chiarire!
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  8. #18
    Su questa idea sono già state espresse perplessità più o meno da tutti, ma per maggiore chiarezza andrebbe detto che questa operazione è una vera sciocchezza. Nella migliore delle ipotesi porterà parecchi problemi, ma con ottime chance di arrivare al disastro.

    Ad ogni modo l'idea di alcio74 era la più corretta, sia per le performance che per i minori rischi connessi alla corruzione degli indici.
    Un TRUNCATE svuota la tabella e azzera gli indici, cosa che non avviene invece con delete-insert progressivi. Ma pure come performance un INSERT su righe multiple è infinitamente più veloce che uno fatto riga per riga (e meglio ancora sarebbe un LOAD DATA INFILE...), anche perché in questo modo il flush dell'indice viene eseguito una sola volta, invece che all'inserimento di ogni singola riga.
    Qualunque imbecille può inventare e imporre tasse. (Maffeo Pantaleoni)

  9. #19
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    credo di aver capito che cane nero voglia proporre l' ID della tabella come dato di riferimento al cliente, e che quindi questo possa avere delle perplessità su dei salti di ID
    Nella speranza che non ci sia refenzialità sull ' ID (sennò va tutto a putt... ) una soluzione potrebbe essere questa...

    una volta eliminato la riga
    Codice PHP:
    $query_tot=mysql_query("SELECT ID FROM tabella"); // per iniziare il ciclo di aggiornamento
    $n=1;
    while (
    $res=mysql_fetch_assoc($query_tot))
      {
      
    mysql_query("UPDATE tabella SET ID=$n WHERE ID={$res['ID']}"); // aggiorno l' ID
      
    $n++;
      }
    mysql_query("ALTER TABLE tabella AUTO_INCREMENT =".$n+1); // aggiorno l'auto increment della tabella 
    Nella speranza che non ci sia refenzialità sull ' ID....
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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 © 2026 vBulletin Solutions, Inc. All rights reserved.