Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Istruzioni per file

  1. #1

    Istruzioni per file

    ciao a tutti!

    il mio problema e' questo:

    in un file di testo devo scrivere una variabile che contiene un numero (ricavato da una select) poi da questo num devo estrarre un numero a caso inferiore o uguale a quello della variabile es.:

    max numero $max=55 - $scelto=10 (scelta random)

    mi serve:
    come aprire un file : $fp = fopen('maximo.txt','w');
    inserire nel file la variabile : fwrite($fp, $max);

    ricavare il valore della variabile : ???????????
    $valoremax=(lo devo leggere dal file)

    chiudere il file : fclose($fp);

    qlc1 mi sa aiutare? grazie ciao!

  2. #2
    Help!

    Ness1 che sappia come leggere una variabile da un file?


    fwrite($fp, $max); //-- inserimento


    fread (?????) //-- lettura

    come faccio a recuperare il valore di $max dal file

  3. #3
    non che si sia capito tutto però...
    per avere un numero casuale tra 0 e $max usi rand(0,$max);
    per invece leggere il contenuto di un file usi
    $file = fopen("maximo.txt","r+");
    $contenuto = fread($file,filesize("maximo.txt"));
    fclose($file);
    visitate http://camicio.altervista.org per caxxate varie :d

  4. #4
    ma scusa a che ti serve creare la variabile, salvarla e leggerla da filequando la hai già cmq in memoria?
    basta che fai echo $max no?

    Se per altri motivi devi leggerla da file quoto camicio.

  5. #5
    lo so che la variabile e' gia in memoria... ma se esco dalla pagina o mi sconnetto da internet la perdo... devo per forza memorizzarla su un file in modo che possa recuperarla senza fare ogni volta una pesante select sul db...

    cmq provero ad usare

    $contenuto = fread($file,filesize("maximo.txt"));

    grazie ora provo!

  6. #6

    no!!! non va!

    questo e' esattamente quello che ho scritto!!

    $maxi=55;
    $fp=fopen('maximo.txt','a+');
    fwrite($fp,$maxi);
    $vm=fread($fp,filesize("maximo.txt"));
    fclose($fp);
    echo $vm;

    ma non va proprio!!!

    $maxi e' ricavato da una select nella realta' (questo e' solo un esempio)

    1 apro il file
    2 scrivo la var $maxi
    3 la legggo?
    4 chiudo il file
    5 scrivo la var...

    ripeto e' solo di prova questo (so bene che non ha senso scritto cosi!) ma una volta che riesco a recuperare il valore che c'e' nel file da una qualsiasi pagina senza fare ogni volta una select sono apposto!

    se non avete ancora capito provo a spiegarmi meglio!!

    grazie per gli aiuti!!

  7. #7
    Ness1 mi sa dare una mano?

    Non ditemi che mi tocca fare una select in ogni pagina solo per recuperare un numero????

    spero ci sia il modo per leggere una variabile da un file!!!

  8. #8
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Guarda che se fai una fwrite il puntatore di posizione all'interno del file si sposta dopo il numero:

    codice:
    NUMERO
          ^
    La fread() parte dalla posizione indicata con ^, quindi non legge nulla.

    Fai un fseek() all'inizio del file e poi fai la tua fread().

    In ogni caso, non credere che una select sia particolarmente costosa; se c'e' l'indice per la colonna in questione, sono 2 accessi in lettura al filesystem: 1 per l'indice e 1 per il dato, e' comunque risibile.

    In ogni caso, qualunque problema reale tu stia cercando di risolvere, sono sicuro - non te ne avere - che questa sia una soluzione del cavolo. Prova a postare il problema reale e vediamo di trovare una soluzione un minimo piu' elegante, questa e' orripilante (senza offesa :])

  9. #9

    Problema reale

    Nessuna offesa (*Ray*)! Anzi grazie per l' aiuto

    Allora il problema reale e' questo:

    ogni utente del mio sito avra' la possibilita di inserire massimo 3 commenti/frasi/osservazioni ecc...

    campi della tabella : user - data - frase senza nessuna chiave (non ne ho bisogno)

    ora ad ogni pagina mi serve estrarre un record a caso tra tutti quelli che avevo nella tabella e visualizzarlo in tutte le pagine del sito...

    la mia idea era questa: per estrarre un record a caso mi serve sapere il numero max di righe all' interno della tabella (select) e pensavo di scriverlo/aggiornalo in un file ogni volta che un utente inserisce una frase (cosi' farei tutto una sola volta senza recuperare il valore tramite select pagina per pagina)

    ho il valore massimo scritto in un file lo recupero e da questo estraggo un valore a caso... faccio una sola select nella tabella
    select... limit ($numrandom,1) e il gioco e' fatto...

    spero di avervi fatto capire meglio il problema altrimenti vi faccio anche un esempio...

  10. #10
    con questa query estrai un record a caso dalla tabella senza bisogno di altro
    codice:
    SELECT * FROM tabella ORDER BY RAND() LIMIT 1
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

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.