Visualizzazione risultati 1 fino 2 di 2

Discussione: [php][mysql] recupero stringa e modifica

  1. #1
    adminreluca non è connesso Utente
    Data registrazione
    06-03-2006
    Messaggi
    112

    Predefinito [php][mysql] recupero stringa e modifica

    Ciao a tutti ragazzi!

    Sto gestendo la sistemazione di persone all'interno di tende per dormire la notte.
    Ogni tenda ha un numero diverso di posti.

    Il problema è che devo recuperare una stringa dal mysql contenente un numero definito di codice fiscali, ogni codice è separato dall'altro tramite il carattere "-".
    Il numero definito di codici fiscali (posti) è a sua volta un numero recuperato dal database.

    Il mio problema, è che il codice che ho scritto non effettua la modifica della stringa.

    Dalla stringa recuperata controllo se il codice fiscale è già inserito. In caso negativo lo inserisco, solo se nella tenda c'è ancora posto, altrimenti lo lascio in sospeso.

    Vi posto il codice, se avete anche altre proposte, sono ben accette:
    Codice PHP:
    //----------------------------------------------------------------------------
    // controllo le notti di partecipazione
    $rs = mysql_query("SELECT * FROM $nome_tabella WHERE codice_fiscale = '$piace_da_inserire' ");
    $nr = mysql_num_rows($rs);

    if (
    $nr != 0)
    {
    for(
    $x = 0; $x < $nr; $x++)
    {
    $row = mysql_fetch_assoc($rs);

    $notte1 = $row['pernottamento_giorno_1'];

    if (
    $notte1 == "Si"){
    //seleziono la riga della tenda per la prima notte dalla tabella e controllo se il
    //codifce fiscale e stato gia inserito, poi lo inserisco
    $sql = "SELECT * FROM att_$nome_tabella WHERE id='$attendamento' ";
    $result = mysql_query($sql);
    $array = mysql_fetch_array($result);
    $stringa = $array['presenze_notte_1'];

    //conto i posti disponibili nella tenda
    $funz4=explode("-",$stringa,$posti_max);
    $conto=count($funz4);//conto gli elementi array
    if ($conto >= $posti_max){ echo 'Alcuni volontari non sono stati inseriti per mancanza di posto nella tenda selezionata';
    }else{
    // se invece c e posto faccio il calcolo
    $posti_liberi = $posti_max-$conto;

    for(
    $a=1;$a<=$posti_liberi;$a++){//ciclo for per aprire l'array

    $controllo = strstr($stringa, $piace_da_inserire);
    if(
    $controllo === false ) {
    $nuova_stringa = $piace_da_inserire.'-'.$stringa;
    mysql_query("UPDATE att_$nome_tabella SET presenze_notte_1='$nuova_stringa' WHERE id='$attendamento' ") OR DIE(mysql_error());
    }
    }
    }
    }

    }
    } else {
    echo
    "Errore";
    }
    Ultima modifica di adminreluca : 14-03-2013 alle ore 19.42.59

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Freno un attimo i tuoi "entusiasmi", ma ti consiglierei di fare tre tabelle nel tuo database: una per le tende (con le informazioni sulla capacità massima), una per gli occupanti e una che leghi tende e occupanti (un record di quest'ultima ha il significato di "l'occupante X sta nella tenda Y").

    Ti risulterebbe molto più facile risolvere il tuo problema, e molti altri che potrebbero sorgere in seguito (prova con la tua gestione a spostare da una tenda all'altra uno degli occupanti...).

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •