Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Gestione Elenco news

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    31

    Gestione Elenco news

    Ciao a tutti,
    in pratica da asp sto passando a php e mi è sorto un dubbio per la gestione delle news.

    Ho un db e devo visualizzare 10 news.

    Solo che le prime 3 news sono posizionati e strutturati in modo diverso.

    In asp facevo

    prima news

    rs.movenext

    seconda news

    rs.movenext

    terzanews.


    Per tutte le altre 7 news, strutturati con lo stesso codice html , adottavo un ciclo for.


    Adesso in php, da quello che ho studiato mi sembra che il comando movenext non esiste.

    Ma come faccio per visualizzare le prima 3 news (per le altre 7 faccio un ciclo while)

    Ho pensato di creare tre query diverse con LIMIT per i primi tre risultati e una quarta query per tutte le altre 7 news.

    Ma credo che in termine di prestazioni, con questo metodo, siamo alla frutta.

    In pratica dopo che con mysql_fetc_assoc seleziono tutti i record che devo pubblicare, come faccio a selezionare un determinato record (in mysql_fetc_assoc) in modo da visualizzarlo dove voglio e il resto anche con un ciclo.


    Spero di essere stato compreso.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Codice PHP:
    $result mysql_query($sql);
    $i=0;
    while(
    $row mysql_fetch_array($result))
    {
        if(
    $i 3)
        {
            
    // applichi una certa struttura html
        
    }
        else
        {
            
    // applichi un'altra struttura
        
    }
        
    $i++;


  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    31
    Grazie per la risposta.


    Poniamo un'altro caso, immettiamo che le strutture in html siano tutte diverse.

    In questo caso per evitare diversi if sarebbe corretto utilizzare un select switch e memorizzare il tutto in una variabile

    Ad esempio:

    switch ....

    Case primo record

    $primo= "...."

    Case secondo record
    $secondo="....

    e covi via....


    In modo che con le variabili create posso posizionare il link della news dove voglio io e con l'adeguata formattazione html......

    In termini di ottimizzazione questo è il massimo?

    Non esiste qualcosa che mi fa selezionare o scorrere tra i record selezionati da mysql_fetch_assoc

    Grazie ancora....

  4. #4
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Allora a questo punto ti conviene mettere tutte le news in un array multidimensionale indicizzato e poi richiamare quelle che vuoi dove vuoi:

    Codice PHP:
    $result mysql_query($sql);
    $i=0;
    $n_news mysql_num_rows($result);
    while(
    $news[$i] = mysql_fetch_array($result)) { $i++; }

    // stampi le prima 3 news dove vuoi
    echo $news[0]['contenuto'];
    echo 
    $news[1]['contenuto'];
    echo 
    $news[2]['contenuto'];

    // e poi continui la paginazione dove vuoi usando un ciclo for
    for($i=3;$i<$n_news;$i++)
    {
        echo 
    $news[$i]['contenuto'];


  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    31
    Ciao e grazie ancora per la risposta.

    HO notato una cosa

    codice:
     $i=0; 
    			   $stampa='';
    			   while($i<4)
    			 {			  
    				$rs=mysql_fetch_assoc($query);
     $stampa.="\n".' <p class="data">'.$rs['data'].' [img]images/icon_art.gif[/img]</p>      
      <p class="titolo">'.$rs['titolo'].' »</p>';
          	  
    	  $i++;	 
    	  
    	   
    	  	   }
    		   echo $stampa, "\n\n";
    Questo codice è equivalente a

    codice:
     $i=0; 
    			   $stampa='';
    			   while($rs=mysql_fetch_assoc($query))
    			 {			  
    
    				if ($i<4)
     $stampa.="\n".' <p class="data">'.$rs['data'].' [img]images/icon_art.gif[/img]</p>      
      <p class="titolo">'.$rs['titolo'].' »</p>';
          	  
    	  $i++;	 
    	  
    	   
    	  	   }
    		   echo $stampa, "\n\n";

    QUindi se io richiamo singolarmente, ad esempio per tre volte
    $rs=mysql_fetch_assoc($query);

    ...
    $rs=mysql_fetch_assoc($query);

    ,..
    $rs=mysql_fetch_assoc($query);


    Ottengo tre record diversi.

    Tra i primi due costrutti, il primo è quello più perfomante, giusto?

    Grazie

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.