Visualizzazione dei risultati da 1 a 7 su 7

Discussione: while array

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    77

    while array

    Ciao a tutti!
    Ho uno script che, dati due valori xx yy, li incrocia e mi da il risultato xy.

    Il meccanismo è il seguente. Prendo i due valori genitori, li incrocio con substr.
    Ho un array dove ogni chiave xx yy xy ha valore 0 se non è presa in considerazione, e 1 quando è il risultato dell'incrocio (in questo caso xy è l'unico = 1).
    A questo punto se >0 lo mostro e in questo modo ho il risultato dell'incrocio.

    questo script gestisce delle stringhe che sono composte da 4 caratteri, ma vorrei implementarlo e arrivare a 6 caratteri: le combinazione diventeranno veramente tante
    ora per ogni combinazione mi controlla se >0 e mi fa un echo e ogni operazione ha la sua riga di codice.

    if ($conteggio['ABCD'] > 0) echo 'mare';
    if ($conteggio['ACBD'] > 0) echo 'gatto';
    if ($conteggio['DBCA'] > 0) echo 'nero';
    ...etc!

    è possibile creare un while che ogni volta processa un valore dell'array (aumentando sempre di 1) e se >0 lo stampa?
    L'ultima cosa è che ogni codice corrisponde ad una parola univoca. Quindi ora, gestendo tutto "manualmente" ogni codice ha il proprio echo.
    E' possibile integrare con questo ipotetico while un qualcosa che estragga anche da un database la parola che corrisponde a questo codice?

    ABCD => mare
    ACBD => gatto
    DBCA => nero

    etc...

    Grazie per i consigli.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    77
    mi spiego meglio..
    ho questo script che incrocia dai valori e assegna un valore da 0 a 1 quando questo valore è il risultato.

    es AB x AB = (0,25)AA - (0,25)BB - (0,5)AB

    ho un array che mi mostra i nuovi valori-risultato e tramite una funzione if visualizzo i risultati > 0 (nel mio caso interrogo tutte le combinazioni che potrei ottenere e mostro solo le > 0)

    vorrei sapere come semplificare il meccanismo, magari integrandolo a mysql.
    potrei creare una tabella con due valori: il primo è il codice/genotipo (AA) e il secondo è il nome/fenotipo (mutazione AA)

    in questo modo potrei fare un ciclo strutturato così:

    select * from tabella where genotipo=array[$risultato]
    e poi mostro $row['fenotipo']

    questa è teoria..avrei bisogno di un aiuto per la pratica.
    in questo modo dovrei riuscire ad eliminare centinaia di righe di codice, in cambio di una decina..

    grazie per consigli e spunti.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    77
    Codice PHP:
    for ($i 0$i count ($risultato); $i++) {

    $stringa = array($risultato[$i]);
        
    $array implode(","$stringa);
       
    $sql "SELECT * FROM tabella WHERE codice IN ('$array')";
    $query mysql_query($sql)or die("Non riesco ad eseguire la query");
    $results mysql_fetch_array($query);

    while (
    $results) {
    $descrizione $results[descrizione];
    }

    echo 
    $descrizione."
    "
    ;


    ma non funziona..
    la tabella è così

    ----- id - codice - descrizione
    ----- 1 - AA - mutazione AA
    ----- 2 - AB - mutazione AB
    ----- n - XX - mutazione XX

    tutte le variabili e gli array prima di questo codice funzionano.
    infatti se stampo l'array risultati mi da l'elenco dei codici.

  4. #4
    Ho letto e riletto attentamente tutti e tre i post, ma non sono riuscito a capire cosa devi fare.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    77
    ...immagino...riprovo

    Questo codice prende dei valori e li incrocia, restituendo nuove combinazioni genetiche.
    Partendo da AA e BB incrocio ottenendo 4 AB
    Un array mi mostrerà la quantità (come chiave) e il codice (come valore) del risultato. in questo esempio
    Codice PHP:
    $combinazioni = array(  => 'AA'=> 'BB'4=> 'AB'); 
    il codice e le combinazioni sono molto più complesse.
    a questo punto se il codice è > 0 lo stampa.

    La situazione attuale consiste nell'andare ad interrogare ogni combinazione > 0 e fare un echo..

    volevo provare ad andare a semplificare la cosa con un while o un for..integrando mysql dal quale estrae i valori da una tabella con struttura id, codice, descrizione

    es
    AA - mutazione A
    BB - mutazione B
    AB - mutazione ibrida

    ho buttato giù questo, che in teoria dovrebbe funzionare, ma la pagina carica fino all'infinito e non mostra nulla.
    $risultato è l'array dei risultati > 0

    Codice PHP:
    for ($i 0$i count ($risultato); $i++) {

    $stringa = array($risultato[$i]);
        
    $array implode(","$stringa);
       
    $sql "SELECT * FROM tabella WHERE codice IN ('$array')";
    $query mysql_query($sql)or die("Non riesco ad eseguire la query");
    $results mysql_fetch_array($query);

    while (
    $results) {
    $descrizione $results[descrizione];
    }

    echo 
    $descrizione."
    "
    ;



  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    scusa ma se
    AB x AB = (0,25)AA - (0,25)BB - (0,5)AB

    questa qua
    $combinazioni = array( 0 => 'AA', 0 => 'BB', 4=> 'AB');
    non dovrebbe essere
    $combinazioni = array( 0 => 'AA', 0 => 'BB', 2=> 'AB');
    in base a cosa è 4?

    ..e comunque non ci ho capito nulla nemmeno io..

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    77
    AA x BB -> AB AB AB AB (4AB) perchè moltiplicando due x due si hanno 4 combinazioni diverse
    quindi

    AB x AB -> AA AB AB BB (1AA, 2AB, 1BB)

    calcolando che AB = BA

    ad ogni modo l'errore credo sia nell'ultimo codice che ho postato per interrogare il database..o nell'array dell'implode o nel while sottostante.. perchè la pagina carica all'infinito e non mostra nulla..qualche parentesi chiusa nel posto sbagliato?

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.