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

    confronto di due tabelle

    Salve,

    devo riempire una tabella (tab1) mysql con i dati di un'altra tabella (tab2)
    Il campo codice della tab1 deve essere univoco; mentre lo stesso campo nella tab2 ha sicuramente divesti codici duplicati ma non so quanti.

    A me serve che ogni volta che, durante lo spostamento, viene a presentarsi un codice duplicato, il php aggiunga al codice una cosa tipo "-numero" o "-lettera" per renderlo univoco e così via.
    ovviamente se i duplicati sono più di 2 il "-numero" o "-lettera" devono incrementare sempre di uno per poi resettarsi quando di duplicati non ce ne sono più.



    qualcuno può aiutarmi?
    Ultima modifica di DUMAX; 26-05-2014 a 20:38

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    io farei una cosa del genere

    estraggo i dati dalla tab1
    rilevo il codice per la prima volta e lo inserisco in un array in cui la chiave è appunto il codice. il valore è 1
    continuo a prelevare il codice e verifico sempre che il codice sia nuovo (array_key_exists mi consente di verificare se c'è)
    se la chiave esiste verifico il valore . aggiungo 1 ottenendo il nuovo valore -> $array['chiave']++.
    concateno come meglio credo il nuovo valore al codice e lo inserisco nel database.


    forse con due righe di codice ti davo la soluzione ma io sono per l'insegnamento non per il copia e incolla. Fammi sapere se non è chiaro che oggi sono fuso sveglia alle 6 e 400 km di autostrada!
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Io farei così:
    Codice PHP:
    $mysqli = new mysqli("localhost""user""pass""database"); /* Connessione al db */
    $tab_1 $mysqli->query("SELECT * FROM tabella_1"); /* Prelevo la prima tabella */
    $codici = array(); /* Array in cui salvo i codici già usati, ha una struttura così: codice => occorrenze */
    while ($riga $tab_1->fetch_array()) { /* Ciclo la tabella */
        
    $codice $riga["codice"];
        if (!isset(
    $codici[$codice])) { /* Se non è ancora stato trovato il codice... */
            
    $codici[$codice] = 1/* Lo aggiungo all'array */
            
    $postfisso "";
        }
        else { 
    /* Altrimenti ... */
            
    $postfisso "-" $codici[$codice];
            
    $codici[$codice]++; /* Incremento il contatore nell'array */
        
    }
        
    $mysqli->query("INSERT INTO tabella_2 (codice, val_1, val_2, ...) VALUES ('" $codice $postfisso "', '" $riga["val_1"] . "', '" $riga["val_2"] . "', '" $riga["..."] . "')"); /* Inserisco la nuova riga nella nuova tabella (nota che ho aggiunto $postfisso al codice) */

    Edit
    Preceduto con la stessa identica risposta
    forse con due righe di codice ti davo la soluzione ma io sono per l'insegnamento non per il copia e incolla.
    Ups
    Ultima modifica di tampertools; 26-05-2014 a 21:34
    No

  4. #4
    Grande ragazzi!!!!
    Grazie anche per il codice. Adesso me lo studio perchè mi piace capire quello a cui non sono arrivato da solo con le mie forze.
    Purtroppo sono alle prime armi.
    Grazie ancora

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.