• User

    Analizzare gli ultimi campi del database

    Salve a tutti sn nuovo di questo forum e mi ritengo abbastanza inesperto di php-mysql.
    Sto creando uno script ke si appoggia a un db ke viene riempito tramite un form. A un certo punto mi serve analizzare gli ultimi 5 campi del db e vedere se è presente un'opzione. Sò ke nn sono stato chiaro quindi faccio un uesempio banale.
    Nel db è presente una sezione "sesso":si riempie con maschi (M) e femmine (F). Ora potrei avere una sequenza tipo MMFMFFFMFFFFF e vorrei poter fare una cosa tipo if(gli ultimi 5 campi sono uguali es tutti F) {fai qualkosa}.
    Grazie in anticipo.


  • User Attivo

    Ciao ceorge... benvenuto nel forum!

    credo di aver capito....

    dunque...

    [php]

    /* dopo che ti sei connesso:

    crei la query: seleziona la colonna sesso dalla tabella utenti,
    ordina per id in modo decrescente (DESC), vale a dire la prima riga è l'ultimo
    valore inserito, e limita la selezione
    ai primi 5 elementi 🙂 le prime 5 righe),
    che sono effettivamente gli ultimi 5 valori inseriti. */

    $query= "SELECT sesso FROM utenti ORDER BY id DESC LIMIT 0,5";

    // esegui la query

    $risultato = mysql_query($query, $connessione) or die ('errore nella selezione');

    /* BADA: $connessione deve essere la variabile che contiene: mysql_connect($db_host,
    $db_user, $db_pass);, io non so come l'hai chiamata.

    dopo: ci pemette di selezionarle TUTTE, CON il ciclo while */

    while ($row = mysql_fetch_array($risultato)) {

    //per ogni riga: se il valore sesso è F:NON FARE NIENTE E COncludi
    //se è M interrompi lo script

    if ($row[sesso] == 'F') {}
    //SE c'è un M, si interrompe e dice che non sono 5 F consecutivi
    else {

    die ('Non sono tutti F');
    }
    }

    /* se lo script non è+ stato interrotto (evidentemente perchè sono tutti f,
    ed è giunto al
    termine, scrive che sn tutti F */

    echo 'Sono tutti F';

    [/php];)


  • User

    grazie mille x la risposta.
    Non si potrebbe generalizzare?? tipo se gli ultimi sono o tutti F o tutti M???


  • User Attivo

    Beh... puoi provare a fare così:

    [php]

    while ($row = mysql_fetch_array($risultato)) {

    $risultato . rand(1, 5) = $row[sesso];
    }

    if($risultato1 === 'F' && $risultato2 === 'F' && $risultato3 === 'F' && $risultato4 === 'F' && $risultato5 ==='F') {
    echo 'gli ultimi 5 sono tutti F';
    } elseif (($risultato1 === 'M' && $risultato2 === 'M' && $risultato3 === 'M' && $risultato4 === 'M' && $risultato5 ==='M') {
    echo 'gli ultimi 5 sono tutti M';
    } else {
    echo 'Gli ultimi 5 sono misti';
    }

    [/php]

    non so se funziona... altrimenti dimmelo è usiamo un altro metodo...


  • User

    grazie dell'interessamento...in realtà la cosa è 1 po' + complicata xkè lo script deve fare lo stesso lavoro su diverse variabili tipo $sesso $età etc...
    e dovrebbe analizzare gli ultimi 15 elementi e dire tipo gli ultimi 3 sn uguali..gli ultimi 4...gli ultimi 10 etc.... vedi se hai qualke idea rapida a proposito..tnx


  • User

    scusa poi l'ultimo metodo ke hai proposto nn funziona qui..
    $risultato . rand(1, 5) = $row[sesso];