Visualizzazione risultati 1 fino 5 di 5

Discussione: pescare frase a caso da database...

  1. #1
    Guest

    Question pescare frase a caso da database...

    Cosa c'è di sbagliato in questo (primo) codice creato da me?

    Codice PHP:
    <?
    $f
    =file("file.txt");

    foreach(
    $f as $l){
    $p=explode("|",$l);
    $frase=$p['0'];
    $autore=$p['1'];
    }
    rand($l);
    reset($l);
    $fras = current($frase);
    $aut = current($frase);
    echo
    "FRASE: ".$fras."<br />Autore: ".$aut;
    ?>
    io ho un database di frasi e vorrei ke venisse pescata una frase a caso ogni volta ke si entra nella pagine...cosè ke nn va??

  2. #2
    Guest

    Predefinito

    L'errore è che dopo il foreach, agisci su $l anzichè su $f.


    Ciao!

  3. #3
    Guest

    Predefinito

    Questo script ha vari problemi...

    Il ciclo foreach è inutile, perché p, frase e autore sono variabili semplici, quindi ad ogni ciclo vengono sovrascritte e alla fine avrai il valore dell'ultima riga.

    Poi rand non funziona in questo modo: rand vuole 1 o 2 numeri interi, e restituirà un numero a caso compreso tra 0 e il valore, o tra i due valori, vedi http://www.php.net/manual/it/function.rand.php

    Anche reset e current sono usati male, perché devono essere usati su un array e servono per scorrerlo, usandoli insieme a next, prev, end e key.

    Secondo me, dopo aver letto il file, dovresti scegliere una riga a caso, generando un numero casuale tra 0 e il numero di righe-1 (gli array partono da 0):
    Codice PHP:
    $righe = count($f);
    $caso = rand($righe-1);
    Ora che hai la riga a caso puoi splittarla e comunicarla
    Codice PHP:
    $p=explode("|",$f[$caso]);
    $frase=$p['0'];
    $autore=$p['1'];
    echo
    "FRASE: ".$frase."<br />Autore: ".$autore;
    La strada è ancora lunga se vuoi diventare un programmatore jedi (ok... guerre stellari mi ha dato alla testa )

  4. #4
    Guest

    Predefinito

    grazie

    cmq c'è un minuscolo errore: $caso = rand(0,$righe-1);

    so bene che la strada è ancora lunga...ma intanto ci provo

  5. #5
    Guest

    Predefinito

    No... omesso può essere 0
    meglio leggi la documentazione
    Ultima modifica di stasera : 10-01-2008 alle ore 16.04.14

Regole di scrittura

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