Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1

    Problema con funzioni If

    Ciao a tutti
    sto cercando di realizzare un semplice codice per effettuare delle estrazioni.
    Ho un database dove sono inseriti i numeri gia' usciti e un form dove inserisco il numero.
    l'estrazione avviene tutto ok!
    la lettura del database avviene tutto ok!
    il problema sorge quando il valore dell'estrazione e quello del database coincidono,
    in questo caso dovrebbe apparire la scritta numero gia in archivio invece mi appare hai vinto e il resto dei messaggi!
    Quindi i problemi sono due (al momento)
    1) Quale errore faccio nei cicli if?
    2) come faccio a far terminare il codice al verificarsi di una condizione?

    spero di essermi spiegato

    grazie


    metto il codice per capire meglio...



    Codice PHP:
    <?php
    // recupero il dato dal form $nome1
    $nome1=$_POST['nome'];

    // Creo un array per l estrazione dei numeri
    $estrazione = array("1""2""3");

    // Utilizzo la funzione array_rand per estrarre a caso uno degli elementi della array
    $n array_rand($estrazione1);

     
    // leggo nel file testo archivio dove ci sono i numeri gia usciti e ottengo la $testo
    foreach(file("prodotticonfronto.txt") as $riga){
    $p=explode("|",$riga);
    $testo=trim($p['0']);
    }

    // Stampo a video il risultato...// se il valore dell'estrazione e' uguale al valore inserito nel form e il valore inserito nel form e' diverso dal valore nel database allora Hai Vinto

    if ($estrazione[$n] == $nome1 and $nome1 != $testo) {
    echo
    "hai vinto";}

    //Se il valore dell'estrazione e' uguale al valore inserito nel form e quest'ultimo e' uguale al valore in archivio allora Numero gia in archivio

    if ($estrazione[$n] == $nome1 and $nome1 ==$testo){ 
    echo
    "Numero gia in archivio";
    }

    // nelle altre condizioni e cioe' valore recuperato dal form non presente in archivio

     
    else    echo "Grazie per aver partecipato Ritente Sarai Piu Fortunato!!" ;

    ?>

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non so quante righe ci sono nel file .txt ma $testo contiene sempre un dato preso dall'ultima.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    ciao
    il file testo e' una serie di numeri messi uno sotto l'altro . nel caso mio al momento sono
    1
    3
    5
    7
    9

    ma il problema non e' nel database.
    Io non riesco a farlgli dire
    se si verifica questa condizione allora fai questo.
    il problema e' che facendo l'estrazione puo' succedere che il dato preso dal form coincida con l'estrazione , ma se l'estrazione e il valore ($testo) sono uguali allora vuole dire che il valore e' gia' presente nel database e dovrebbe apparire la scritta gia presente in archivio"
    invece non appare!

    ho modificato il codice ...
    ma sempre stesso problema..


    Codice PHP:
    <?php$nome1=$_POST['nome'];
    // Creo un array per l estrazione dei numeri
     
    $estrazione = array("1""2""3");
    // Utilizzo la funzione array_rand per estrarre a caso uno degli elementi della array
    $n array_rand($estrazione1);
     
    // leggo nel file testo archivio dove ci sono i numeri gia usciti
    foreach(file("prodotticonfronto.txt") as $riga)
    {
    $p=explode("|",$riga);
    $testo=trim($p['0']);
    }  
    // Stampo a video il risultato...
    if ($estrazione[$n] == $nome1) {
    if (
    $nome1!=$testo){
    echo 
    "Hai Vinto";} 
    else{ echo
    " Riprova";
    }}
    else {echo
    "Grazie per aver partecipato";}


    ?>

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Perche non fai un echo delle diverse variabili prima della if ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    in una prima versione per tenerne traccia lo facevo ma che mi cambia stampandole prima?

  6. #6
    Quote Originariamente inviata da robotsitepc Visualizza il messaggio
    ...ma che mi cambia stampandole prima?
    Magari capisci qual'è il problema!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Grazie per il consiglio
    ho risistemato il codice stampo le variabili , si al 90% le condizioni sono rispettate ma continua a dirmi Hai vinto anche quando lil numero inserito e' gia' presente nel database!



    Codice PHP:

    <?php$nome1=$_POST['nome'];
    // Creo un array per l estrazione dei numeri
     
    $estrazione = array("1""2""3");
    // Utilizzo la funzione array_rand per estrarre a caso uno degli elementi della array
    $n array_rand($estrazione1);
    // Stampo a video il risultato...
     // leggo nel file testo archivio dove ci sono i numeri gia usciti

    echo "Il Numero inserito e' ...<br />Il <b>" $nome1 "</br>";
    echo 
    "Il Numero estratto e' ...<br />Il <b>" $estrazione[$n] . "</br>";

    foreach(
    file("prodotticonfronto.txt") as $riga){
    $p=explode("|",$riga);
    $testo=trim($p['0']);
    echo 
    "I numeri presenti nel database sono ... <b>"$testo "</br>";
    if (
    $testo==$nome1) {
    echo 
    "numero gia uscito!!ESTRAZIONE NULLA...";
    }
    if (
    $nome1==$estrazione[$n])  {if ($nome1<>$testo) {echo "Hai Vinto";}

    }
    }
    ?>

  8. #8
    quando il valore inserito quello database e quello dell'estrazione coincidono ottengo questa schermata!
    (usando ad esempio 3 )

    Il Numero inserito e' ...
    Il 3
    Il Numero estratto e' ...
    Il 3
    Hai VintoHai Vintonumero gia uscito!!ESTRAZIONE NULLA...Hai VintoHai VintoHai Vinto

    cioe' stampa tutto!

    dove sbaglio_!

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sbagli nel non terminare il ciclo quando hai un risultato definitivo.
    Per esempio se uno ha vinto che senso ha continuare? Metti un break ed esci dal ciclo, se continui è ovvio che ti viene fuori tutto.

  10. #10
    Ti ringrazio tantissimo per l'aiuto! ora e' tutto in ordine!
    resta il fatto che mi esce HAI VINTO anche se il dato inserito e' gia presente nel database...
    metto il codice che ho risistemato sicuramente e' il modo in cui ho scritto la parte del ciclo foreach...
    siate pazienti ....


    Codice PHP:
    <?php$
    nome1=$_POST['nome'];
    // Creo un array per l estrazione dei numeri
     
    $estrazione = array("1""2""3");
    // Utilizzo la funzione array_rand per estrarre a caso uno degli elementi della array
    $n array_rand($estrazione1);
    // Stampo a video il risultato...
     // leggo nel file testo archivio dove ci sono i numeri gia usciti

    echo "Il Numero inserito e' ...<br />Il <b>" $nome1 "</br>";
    echo 
    "Il Numero estratto e' ...<br />Il <b>" $estrazione[$n] . "</br>";
    foreach(
    file("prodotticonfronto.txt") as $riga){
    $p=explode("|",$riga);
    $testo=trim($p['0']);

    if (
    $testo==$nome1) {
    echo 
    "numero gia uscito!!ESTRAZIONE NULLA...";
    break ;
    }
    if (
    $testo<>$estrazione[$n]) {
    if (
    $nome1==$estrazione[$n])  {
    if (
    $nome1!=$testo) {
    echo 
    "Hai Vinto";
    break;
    }else{echo
    "";
    }}else{ echo
    "";
    }}else{ echo
    "";
    }}
    if (
    $nome1<>$estrazione[$n])   { echo "Riprova sarai  piu Fortunato";}?>

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.