• User Attivo

    Limitare i record

    Ciao ragazzi houn problema e non riescoa risolverlo, mi servirebbe il vostro aiuto...

    In protica ho creato questo codice che richiama dati da database e li distribuisce in questo modo

    dato1 dato2 dato3
    dato4 dato5 dato6
    dato7 dato8 dato9

    e cosi fino al termine dei dati contenuti nel database.

    Ora vorrei richiamare per esempio 15 dati per ogni pagina ed inserire in basso link alltre altre pagine del tipo

    pagina1 pagina2 pagina3

    in modo da far comparire un link per ogni pagina esistente.

    Il codice è il seguente:

    <? 
    include("connessione.php"); 
    $db = mysql_connect($db_host, $db_user, $db_password); 
    if ($db == FALSE) 
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php"); 
    mysql_select_db($db_name, $db) 
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); 
    // effettui la query 
    $query = "SELECT * FROM tabella1 where aid = '$aid' ORDER BY pid "; 
    $risultato=mysql_query($query,$db) or die ("Errore nella query:" . mysql_error()); 
    // NO 
    // while($riga=mysql_fetch_array($risultato)) 
    //{ 
    // calcoli il numero delle righe che avra la tabella 
    @$nRighe = (int) mysql_num_rows($risultato)/3 ; 
    // stampi il tag table 
     
    echo "<table align= center border=\"1\" width= 300 height= 300 >"; 
    for ( $i=0; $i < $nRighe; $i++ ) { 
    // associ una righa 
    $row = mysql_fetch_array($risultato); 
    // stampi il tag di righa 
    echo "<tr>"; 
     
    // stampi la prima colonna della righa quindi 
    echo "
    <td>
    <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
    <b>Nome Video :</b><a> $row[titolo]</a>
    <b>Visto:</b><br><a>$row[filename]</a>  
    </td>
    "; 
     
     
    // associ la seconda righa 
    $row = mysql_fetch_array($risultato); 
    // stampi la seconda colonna 
     
    echo "
    <td>
    <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
    <b>Nome Video :</b><a> $row[titolo]</a>
    <b>Visto:</b><br><a>$row[filename]</a> 
    </td>
    "; 
    // associ la terza righa 
    $row = mysql_fetch_array($risultato); 
    // stampi la seconda colonna 
     
    echo "
    <td>
    <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
    <b>Nome Video :</b><a> </a>
    <b>Visto:</b><br><a>$row[filename]</a> 
    </td>
    "; 
    } 
    // chiudi la tabella 
    echo "</table>"; 
     
    mysql_close($db); 
    ?>
    

    MI sapreste dare una mano?


  • User Attivo

    In SQL esiste un comando speciale che permette di limitare il numero di record risultanti da una query

    1. Restituire i primi n record della query
    
    SELECT * FROM *<tabella>*  LIMIT *<n>*;
    
    
    1. Restituire n2 record dopo i primi n1 record della query
    
    SELECT * FROM *<tabella>*  LIMIT *<n1>*,*<n2>*;
    
    

    Per il progetto, potresti passare i valori di n1 e n2 come variabile GET alle pagine interessate.

    Ciao :ciauz:


  • User Attivo

    Come va inserito?
    Ho provato in questo modo ma non riesco a visualizzare niente, mi da un errore...:x
    E per le pagine seguenti come faccio?

    <? 
    include("connessione.php"); 
    $db = mysql_connect($db_host, $db_user, $db_password); 
    if ($db == FALSE) 
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php"); 
    mysql_select_db($db_name, $db) 
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); 
    // effettui la query 
    $query = "SELECT * FROM tabella1 where aid = '$aid' ORDER BY pid limit <15> "; 
    $risultato=mysql_query($query,$db) or die ("Errore nella query:" . mysql_error()); 
    // NO 
    // while($riga=mysql_fetch_array($risultato)) 
    //{ 
    // calcoli il numero delle righe che avra la tabella 
    @$nRighe = (int) mysql_num_rows($risultato)/3 ; 
    // stampi il tag table 
     
    echo "<table align= center border=\"1\" width= 300 height= 300 >"; 
    for ( $i=0; $i < $nRighe; $i++ ) { 
    // associ una righa 
    $row = mysql_fetch_array($risultato); 
    // stampi il tag di righa 
    echo "<tr>"; 
     
    // stampi la prima colonna della righa quindi 
    echo "
    <td>
    <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
    <b>Nome Video :</b><a> $row[titolo]</a>
    <b>Visto:</b><br><a>$row[filename]</a>  
    </td>
    "; 
     
     
    // associ la seconda righa 
    $row = mysql_fetch_array($risultato); 
    // stampi la seconda colonna 
     
    echo "
    <td>
    <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
    <b>Nome Video :</b><a> $row[titolo]</a>
    <b>Visto:</b><br><a>$row[filename]</a> 
    </td>
    "; 
    // associ la terza righa 
    $row = mysql_fetch_array($risultato); 
    // stampi la seconda colonna 
     
    echo "
    <td>
    <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
    <b>Nome Video :</b><a> </a>
    <b>Visto:</b><br><a>$row[filename]</a> 
    </td>
    "; 
    } 
    // chiudi la tabella 
    echo "</table>"; 
     
    mysql_close($db); 
    ?>
    

  • User Attivo

    Le parentesi '<' e '>' non vanno messe nel codice

    [PHP]
    $query = "SELECT * FROM tabella1 where aid = " . $aid . " ORDER BY pid";

    $query = "SELECT * FROM nuke_cpg_pictures where aid = " . $stringa . "ORDER BY pid LIMIT 15";
    [/PHP]

    Controlla anche la sintassi del $query = "... mi sembra che c'è un errore

    Per passarei valori alle altre pagine:
    Es .../pagina2.php?start=15&stop=30

    [PHP]
    $start = $_GET["start"];
    $stop = $_GET["stop"];
    //...
    $query = "SELECT * FROM nuke_cpg_pictures where aid = " . $stringa . "ORDER BY pid LIMIT " . $start . "," . $stop;
    [/PHP]

    Ciao :ciauz:


  • User Attivo

    HO inserito il codice in questo modo ma non funziona....

    <? 
    include("connessione.php"); 
    $db = mysql_connect($db_host, $db_user, $db_password); 
    if ($db == FALSE) 
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php"); 
    mysql_select_db($db_name, $db) 
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); 
    // effettui la query 
    $start = $_GET['0'];
    $stop = $_GET['21'];
    $query = "SELECT * FROM tabella where aid = '. $stringa . ' ORDER BY pid LIMIT ' . $start . ',' . $stop;
    

    mi viene restituito questo errore:
    Parse error: syntax error, unexpected T_STRING in /var/www/virtual/sito.it/mobili/htdocs/pagina.php on line 16

    Cos'è sbagliato?

    E poi un'altra cosa... come faccio a richiamare "aid" dalla pagina?

    al momento faccio cosi
    http://www.sito.it/pagina.php?stringa=398


  • User

    Prova questa query...nella precedente hai usato sia il doppio apice che quello singolo...a volte crea confusione...infatti il doppio apice non si chideva mai

    $query= "SELECT * FROM tabella where aid = ".$stringa." ORDER BY pid LIMIT ". $start .",". $stop;
    

  • User Attivo

    grazie! Ho risolto il problema, ora riesco a visualizzare le immagini come desideravo.

    Adesso ho un'altro problemino... il menù per sfogliare le pagine
    ovvero vorrei avere un codice che fosse in grado di contare tutti gli elementi desiderati e suddividerli in X pagine dovrebbe comparire cosi in fondo alle pagine
    [CENTER]Indietro 1 2 3 avanti

    Avevo un codice in un'altra pagina ma non riesco ad adatarlo, potreste darmi una mano ad adattarlo?

    Il codice vecchi da adattare è evidenziato in rosso[/CENTER]

    [LEFT]```
    <?
    include("connessione.php");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    // effettui la query
    $stringa = $_GET["stringa"];
    $start = $_GET["start"];
    $stop = $_GET["stop"];
    $query = "SELECT * FROM tabella1 where aid = " . $stringa . " ORDER BY pid LIMIT " . $start . "," . $stop;

    $risultato=mysql_query($query,$db) or die ("Errore nella query:" . mysql_error());
    // NO
    // while($riga=mysql_fetch_array($risultato))
    //{
    // calcoli il numero delle righe che avra la tabella
    @$nRighe = (int) mysql_num_rows($risultato)/3 ;
    // stampi il tag table

    echo "<table align= center border="1" width= 300 height= 300 >";
    for ( $i=0; $i < $nRighe; $i++ ) {
    // associ una righa
    $row = mysql_fetch_array($risultato);
    // stampi il tag di righa
    echo "<tr>";

    // stampi la prima colonna della righa quindi
    echo "
    <td>
    <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
    <b>Nome Video :</b><a> $row[titolo]</a>
    <b>Visto:</b><br><a>$row[filename]</a>
    </td>
    ";

    // associ la seconda righa
    $row = mysql_fetch_array($risultato);
    // stampi la seconda colonna

    echo "
    <td>
    <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
    <b>Nome Video :</b><a> $row[titolo]</a>
    <b>Visto:</b><br><a>$row[filename]</a>
    </td>
    ";
    // associ la terza righa
    $row = mysql_fetch_array($risultato);
    // stampi la seconda colonna

    echo "
    <td>
    <img border= 3 src='http://www.sito.com/$row[filepath]/thumb_$row[filename]'>
    <b>Nome Video :</b><a> </a>
    <b>Visto:</b><br><a>$row[filename]</a>
    </td>
    ";
    }
    // chiudi la tabella
    echo "</table>";

    ?>

    <?
    if ($start>0)
    { $start_back = $start - $step;
    echo "<font face='Verdana' size='3'><a href=http://www.sito.com/pagina.php?aid=$start_back style='text-decoration: none; font-weight:700'>Indietro</a>
    -";
    }
    ?>
    </td>
    <?
    $query = "SELECT hits(*) AS tot FROM tabella1 where aid = '$stringa' ";
    $risultato = mysql_query($query, $cn);
    $row = mysql_fetch_array($risultato);

    $pages = intval(($riga[tot]-1) / $step)+1;
    ?>
    <td width=20% valign="top">
    <?
    if ($start + $step < $riga[tot])
    { $start_next = $start + $step;
    echo "
    <font face='Verdana' size='3'><a href=http://www.sito.com/pagina.php?aid=$start_next.php style='text-decoration: none; font-weight:700'> Avanti</a>
    ";

    }
    ?>
      </td>
    </tr></table>
    </center>
    </div>
    <br>
    <?
    mysql_close($cn);

    ?>

    
    Spero che anche in questo caso il vostro aiuto sia prezioso, grazie[/LEFT]

  • User Attivo

    Nessuno può darmi una mano?