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

    Problema con insert into

    Salve,
    premetto che di php e mysql non ci capisco praticamente nulla (ho configurato solo alcuni script). Ho un problema nell'installazione di uno script (REOS), o meglio nell'aggiungere una lingua a tale script. Vengo al sodo: fra i file presenti nella cartella compressa c'è anche quello per l'inserimento della nuova linga che mi si presenta così

    insert into tb_labels (id_name, cod_lang, txt_label)
    select id_name, 'it', 'DA_TRADURRE' from tb_labels;

    solamente se vado su phpadmin e eseguo la query SQL sul database (incollando pari pari quanto sopra) mi da questo errore #1062 - Duplicate entry '_0-it' for key 1

    oltre a quanto sopra dovrei aggiornare anche un'altra tabella il codice sul sito è
    insert into tb_lists (id_name, txt_code, cod_lang, num_order, txt_value)
    select id_name, txt_code, 'it', num_order, 'DA_TRADURRE' from tb_lists;
    in questo caso l'errore è #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into tb_lists (id_name, txt_code, cod_lang, num_order, txt_value) ' at line 1

    La versione mysql è 5.0.77
    Un grazie anticipato.
    Cristadd
    cristadd

  2. #2

    Cerco di spiegarmi meglio

    nella tabella in questione ho tre campi
    id_name che identifica l'elemento da tradurre nelle varie lingue (es. la parola si)
    cod_lang che identifica la lingua (en, fr, de, e it che devo inserire)
    txt_label che rappresenta la traduzione di id nome
    esempio pratico copio e incollo i primi record
    _0 de Nein
    _0 en No
    _0 es No
    _0 fr Non
    _1 de Ja
    _1 en Yes
    _1 es Si
    _1 fr Oui
    _ABOUTUS de Wer wir sind
    _ABOUTUS en About us
    _ABOUTUS es Quienes Somos
    _ABOUTUS fr Qui sommes-nous
    ...

    a me sarebbe sufficiente fare lo spazio per la lingua italiana e quindi inserire
    _0 it DA_TRADURRE
    _1 it DA_TRADURRE
    _ABOUTUS it DA_TRADURRE

    le traduzioni le faccio successivamente dal pannello di amministrazione o nel file it_lang.php.

    Spero di esser stato chiaro
    Nuovamente grazie per la pazienza.
    cristadd

  3. #3
    vai contro una regola base:

    Non si puo' copiare e reinserire gli stessi record nella stessa tabella. Giustamente risulterebbe duplicata la chiave primaria e/o unique se esistessero. Ma a parte questo, proprio non e' ammesso il farlo anche se non ci fossero i vincoli di campi unici.

    codice:
    insert into tb_labels (id_name, cod_lang, txt_label)
    select id_name, 'it', 'DA_TRADURRE' from tb_labels;
    dovresti fare un update se vuoi aggiungere record con "it" . cioe': Potresti per esempio creare una tabella temporanea copiando solo i record 'en', cambi con un update "en" in "it" e poi fare un insert select dalla temporanea alla tb_labels.

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

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.