Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [PHP] foreach con limiti..?

    Ciao a tutti ho un foreach che mi stampa una news alla volta. Vorrei che mi stampasse solo le prime 10. Siccome non posso usare un while (che sarebbe più semplice ma in questo caso sono costretto ) vorrei sapere se si può costruire il foreach in modo che alla decima ripetizione del ciclo si fermi.

    Ringrazio anticipamente chi saprà aiutarmi o anche dirmi che non è possibile!

    Matteo

  2. #2
    più che altro puoi leggere solo 10 news... no?

    in che modo le leggi?

    se le leggi da un database mysql aggiungi LIMIT 10 alla fine della query...


  3. #3

    ...

    Praticamente, non potendo usare un DB, immagazzino le news in un file di testo e le prendo con la funzione file(). file() mette ogni linea (ogni linea contiene tutte le info della news separate da un #) in un array. Con foreach spezzo le linee dividendo ogni informazione (uso un explode su # come indicatore).
    Il fatto è che voglio solo le prime 10 (ovvero le ultime 10 in ordine cronologico) altrimenti mi riempie la pagina.

    Spero di essere stato chiaro! :rollo:
    Grazie!!!
    Matteo

  4. #4
    $i =1;
    foreach(bla bla)
    {
    if($i > 10) break;

    //bla bla

    $i++;
    }


  5. #5

    ...

    Grazie, mo' lo provo!!!

    Matteo

  6. #6
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    ma perché, allora usare un foreach?

    Codice PHP:
    $news file('news.txt');

    for(
    $i=0;$i<10;$i++) echo $news[i]; 

  7. #7
    se proprio DEVI (cosa alquanto strana) e se cicli un array numerico puoi usare l'indice come controllo

    Codice PHP:
    foreach($array as $i => $v) {
      if(
    $i>9) break;
      .....

    www.gext.it

  8. #8

    ...

    Grazie! Ci sono riuscito!
    Devo affidarmi al foreach perchè è l'unico che so associare al tipo di array che mi viene fuori con file(), questo l'ho capito e sinceramente non saprei come altro fare

    Ora però mi sorge un dubbio.. C'è mica una funzione che apre un file di testo per scriverci dentro (tipo fwrite() per intenderci) col puntatore all'inizio del file che però non mi sovrascriva quello che c'è dentro?
    Il fatto è che file() mi prende le prime news che trova (le più vecchie, in ordine cronologico) mentre io vorrei le ultime. Il problema sarebbe risolto se scrivessi le news all'inizio del file in modo da avere l'ultima all'inizio, no?
    Matteo

  9. #9
    lo apri in aggiornamento(w+) e poi fai rewind

    http://it2.php.net/manual/it/function.rewind.php

    dovrebbe fungere



  10. #10

    ...

    No, così non funziona: w+ tronca il file a 0 byte quindi cancella ciò che c'era prima e scrive i dati che gli sono stati passati.
    Matteo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.