Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Query con parametri

  1. #1

    Query con parametri

    ciao a tutti,
    vi sottopongo un problema, con la speranza io mi possa spiegare bene,
    ho bisogno di interrogare un campo di un db contenente una sequenza di caratteri del tipo: 12\AMM\U\NAZ\2003.
    Dove 12 è un numero progressivo senza limiti, può raggiungere anche le 4 cifre...
    AMM è una sigla che contraddistingue "amministrazione", può cambiare in GEN (Generale); U sta per "Uscita", Può quindi variare in "E", NAZ stà per nazionale e può assumere, sempre con tre cifre altre sigle che contraddistinguono alcune regioni italiane.

    Non ci sono nella tabella altri campi che esplicativamente riportino le sigle che ho appena scritto.

    Ho pensato di poter giocare sul campo di cui sopra, interrogandolo di volta in volta e cercando AMM se voglio l'anninistrazione oppure GEN se voglio il Generale, U se voglio un dovumento in uscita e di contro E se lo voglio in entrata e così via.

    IN un ipotesi del genere:

    Select * from protocolli Where nprot LIKE "'.substr(stringa_originale, "AMM"); .'"

    come posso far sì che "stringa_originale" sia effettivamente nprot ?

    Vi ringrazio anticipatamente.

  2. #2
    Crea altri 5 campi, effettua il parsing della string a compila i campi con i singoli valori.

    Avere un campo di quel tipo viola la prima forma normale.

  3. #3
    Grazie,
    Era l'unica cosa logica che mi veniva in mente, purtroppo però la base dati è già esistente.
    non sò proprio come fare dal momento che sono già presenti migliaia e migliaia di dati.

  4. #4
    E' semplice, crei i nuovi campi e poi (in pseudo codice):

    <?php
    connect_db();
    select_db();

    $rs = query('SELECT id, protocol FROM table');
    while ($row = get_row()) {
    $fields = explode('\\', $row['protocol']);
    $sql = 'UPDATE table SET ' .
    'field_1 => "' . escape($fields[1]) . '", ' .
    'field_2 => "' . escape($fields[2]) . '", ' .
    'field_3 => "' . escape($fields[3]) . '", ' .
    'field_4 => "' . escape($fields[4]) . '", ' .
    'field_5 => "' . escape($fields[5]) . '" ' .
    'WHERE id = ' . $row['id'];
    query($sql);
    }
    ?>

  5. #5
    Grazie,
    Stavo percorrendo la stessa strada, ma avendo un gran paura, stavo prelevando i dati dalla tabella e li stavo reinserendo in una nuova, contenente i campi aggiuntivi, sempre in pseudo codice, visto che l'archivio parte dal 2003 e ci sono circa 40000 protocolli.

    comunque grazie mille, perchè la strada che mi hai indicato è sicuramente più breve e più pulita.

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.