Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Insert attraverso ciclo, ma non funziona

    Buon giorno, devo fare una insert in un campo vuoto di una tabella già popolata attraverso un ciclo for.
    In pratica, devo popolare il campo "id" inserendo numeri da 1 a 429.
    L'insert non mi inserisce questi valori nei 429 record presenti, ma ne crea altri 429 e solo in quel momento popola il campo id.
    In questo modo ho 429 campi id popolati e 429 vuoti.
    Codice PHP:
    for ($i 1$i <= 429$i++) {
        
    mysql_query("insert into ".$_CONFIG['table_utenti']."(mat_id) values ($i)") or die ("Errore nella insert: " mysql_error());

    Grazie mille

  2. #2
    per aiutare a risponderti inserisci la struttura della tabella mysql che stai utilizzando

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mmh.. INSERT fa proprio quel che dici: crea nuovi record... se ho ben capito i record esistono già... dovresti usare UPDATE allora

  4. #4
    vi ringrazio in anticipo
    In risposta a eiyen, ho fatto l'update, senza where e mi inserisce solo l'ultimo valore e cioè 429, in tutti i 429 record.

    Per la struttura della tabella:
    mat_id ->int(3) unsigned
    mat_username -> varchar(30)
    mat_cod_azienda -> int(11)

    ci sono altri campi ma si intervallano tra varchar ed int senza attributi.

  5. #5
    Se devi sostituire i record che esistono già nella tua tabella basta che mandi una query così:

    Codice PHP:
    for ($i 1$i <= 429$i++) {
        
    mysql_query("UPDATE ".$_CONFIG['table_utenti']."SET mat_id='$i' WHERE mat_id='$i'") or die (mysql_error());

    se devi aggiungere altri campi ti conviene di impostare auto_increment di mat_id e così fai la query di insert nella tua tabella

  6. #6
    ti ringrazio.
    Allora, la tabella era già popolata ed ho dovuto, per necessità, inserire il campo mat_id che mancava.
    Purtroppo non mi fà attribuire l'autoincremet a questo campo perchè mi restituisce questo errore:
    Codice PHP:
    Duplicate entry '0' for key 1 
    Però il campo è vuoto, non c'è niente è NULL....insomma!!!
    Quindi?
    grazie ancora a tutti...

  7. #7
    vai in phpmyadmin seleziona la tabella seleziona il campo mat id e modifica vai in extra e metti auto_increment


    se hai problemi ricrei a tabella

  8. #8
    allora ho dovuto creare una nuova tabella TBMATNEW perchè con mysql_front non c'era verso.
    Quindi adesso ho il campo mat_id autoincrement, ho fatto l'insert e non l'update ed è andato tutto bene.
    Solo che ora devo popolare gli altri campi e come si fà?

    Un'idea, se faccio una select nella tabella vecchia TBMATOLD ed inserisco nella nuova TBMATNEW?
    Ma come si fà?

  9. #9
    guarda mi stai confondendo non capiso bene tu cosa vuoi andare a concludere.

    se hai una tabella a di 300 righe già popolate cosa devi fare dopo?
    a: modificare le 300 righe
    b. aggiungere altre 300 righe alla tabella che tieni esistente
    c: cancellare le 300 righe

    spiegati meglio cosa devi fare

  10. #10
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Ma perche' non esegui due semplici query?

    SET @c=0;
    update `tabella` set mat_id=@c:=@c+1;

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.