Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179

    Visualizzare TUTTI gli articoli

    Salve ragazzi volevo chiedervi un informazione, ho un piccolo problema...
    Praticamente leggevo la guida nella sezione php del sito PHP/MYSQL PRATICA e mi sono trovato davanti a un problema...praticamente ad un certo punto la guida spiega come visualizzare i titolo di tutti gli articoli e poi creare le pagine PRECEDENTE e SUCCESSIVA...io non c'ho capito niente...non c'è un modo piu' semplice per farlo? io non sto facendo proprio quello script ma sto facendo qualcosa di diverso, per ora il codice che ho davanti è il seguente:

    Codice PHP:
    <?
    include("config.php");
    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione.");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database.");
    if (!isset(
    $start) OR $start<0)
    $start=0;
    $step 20;
    $query "SELECT id,titolo,artista,data,prezzo FROM catalogo ORDER BY titolo DESC LIMIT $start,$step";
    $result mysql_query($query$db);
    while (
    $row mysql_fetch_array($result))

    echo 
    $row[artista]." - ".$row[titolo];
     }
    mysql_close($db);
    ?>
    Quindi volevo chiedere un codice piu' leggibile in modo che capisca di cosa si tratta, lo scopo di questa pagina non è visualizzare i titoli ma visualizzare il campo TITOLO e ARTISTA per estesi senza alcun collegamento...grazie mille, siete grandi (riuscite risolvere tutti i miei problemi XD )
    Mimmo

  2. #2
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179
    up
    Mimmo

  3. #3

    Beh..... il codice è piuttosto leggibile.
    Cos'è che non capisci???

    L'unica cosa che vedo omessa è la provenienza di $start.
    Suppongo provenga dall'URL della pagina, ma quello glielo devi dire te: in fondo alla pagina devi semplicemente mettere i link Avanti e Indietro.

    Ti scrivo il codice, un po' migliorato e commentato.
    Codice PHP:
    <?php
    // richiamo le variabili di accesso al DB
    include("config.php"); 

    // connessione al DB
    $db mysql_connect($db_host$db_user$db_password) OR die ("Errore nella connessione."); 

    // seleziono il DB
    mysql_select_db($db_name$db) or die ("Errore nella selezione del database."); 

    // recupero la variabile passata dalla url che indica a che pagina siamo
    $pag $_GET['pag'];
     

    if (!isset(
    $pag) OR $pag <= 1) {
    // se la variabile start non è assegnata, è perché sto aprendo la pagina 1
    // per cui stampo i primi 20 record presenti nel DB
    $start0
    $step 20;
    } else {
    // se start è dichiarata vuol dire che almeno i primi 20 record
    // li ho già visualizzati, per cui devo scattare ai 20 successivi
    $start $pag 20;
    $step $start 20;
    }
    $query "SELECT id,titolo,artista,data,prezzo FROM catalogo ORDER BY titolo DESC LIMIT $start,$step"
    $result mysql_query($query$db); 
    while (
    $row mysql_fetch_array($result)) 

    echo 
    $row[artista]." - ".$row[titolo]; 


    // compongo il menu di navigazione tra le pagine
    $prima $pag 1;
    $dopo $pag 1;

    // il menu avrà il bottone INDIETRO solo se mi trovo 
    // nella pagina 2 o successiva
    if ($pag >= 2) {
    $navigazione .= "
    <a href=\"?pag=
    $prima\">Indietro</a>
    "
    ;
    }

    $navigazione .= "
    <a href=\"?pag=
    $dopo\">Avanti</a>
    "
    ;

    echo 
    "<hr />".$navigazione;

    mysql_close($db); 
    ?>
    Come puoi notare, la pagina richiama sempre se stessa associando solo la variabile pag per indicare allo script quanti record sono stati visualizzati.
    Codice PHP:
    $navigazione .= "
    <a href=\"?pag=
    $xxx\">xxx</a>
    "

    Ti manca solo di aggiungere un controllo per far capire allo script di non stampare il bottone Avanti nel caso tu sia arrivato all'ultimo record.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179
    Ok ora provo, grazie
    Mimmo

  5. #5
    Utente di HTML.it L'avatar di Milver
    Registrato dal
    Dec 2006
    Messaggi
    179
    Salve ragà questa discussione è un pò antica comunque da un pò ho ripreso questo script e ho notato che comunque quando clicco la prima volta Avanti va all'indirizzo index.php?page=1 ma mi vede sempre le stesse cose che vedevo prima..poi quando riclicco di nuovo avanti mi escono gli altri articoli..come faccio a risolvere il problema?
    Inoltre, quando finiscono gli articoli esce sempre Avanti, non finisce mai..
    Mimmo

  6. #6
    Beh..... come impostare un menù di navigazione tra le pagine che sia "sensibile" alla pagina visitata te l'ho spiegato ben bene nel codice che ti avevo scritto in precedenza.
    Con un pizzico di astrazione ci dovresti arrivare anche da solo.
    Ad ogni modo, puoi risolvere semplicemente aggiungendo un conteggio dei record che escono fuori dalla query di select.

    Codice PHP:
    $result mysql_query($query$db);
    $num mysql_num_rows($result); 
    Una volta che sai quanti record sono stati estrapolati dalla query, e saranno quindi visualizzati dallo script, non hai altro da fare che dividere per il numero di record per ogni pagina e sai subito di quante pagine sarà composto il tuo catalogo.

    Codice PHP:
    $quante_pagine ceil($num $step
    In fondo allo script devi modificare come segue:

    Codice PHP:
    if ($pag $quante_pagine) { 
    $navigazione .= 
    <a href=\"?pag=
    $prima\">Indietro</a> 
    "


    ################################

    Il tuo secondo problema è semplice.
    Se tu sei sulla prima pagina dello script, visto la seguente porzione di codice:

    Codice PHP:
    if (!isset($pag) OR $pag <= 1) {// eccetera 
    Se $PAG non è dichiarato o se $PAG è minore o uguale a 1, allora $pag sarà sempre uguale a 1.
    Per cui appena te apri la pagina $pag non è dichiarato e sarà sempre associato a 1.
    Se nel menù di navigazione metti il link alla pagina xxx.php?pag=1, questa richiamerà sé stessa.
    Credo sia ovvio.

    Ometti questo link e vedrai che non avria problemi.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.