PHP y Mysql

Muy buenas:
Estoy haciendo una pequeña web de apuntes de derecho y tengo una pequeña duda. Veamos. Hay muchos de estos apuntes que ya los despliego por pantalla (están en una base de datos mySQL) y son bastante extensos por lo que para mostrarlos seguidos de cabo a rabo son algo molestos para el usuario, ya que el scroll a realizar es bastante grande. Mi idea sería hacer una paginación de ese registro que contiene los datos, apareciendo por páginas, y abajo de todo un enlace a la siguiente página (si estás en la página 1, pues el enlace sería página 2 de 5 en total). Creo haberme explicado bien. ¿Cómo podría hacer esto?. Hay una función que es exactamente lo que quiero, se llama explode que utiliza el separador <!--pagebreak--> de PHPNuke.
Como podría coger el registro de la base de datos, dividirlo por el lugar donde esté el <!--¿pagebreak--> y hacer los links respectivos para "atrás" y "adelante" para verlo todo?
Espero que puedas ayudarme, Gracias.

1 Respuesta

Respuesta
1
Aquí esta un ejemplo que ha funcionado excelente:
<?
// Set Script Variables
$DB_Host="localhost";
$DB_Name="MyDataBase";
$DB_User="MyUserName";
$DB_Pass="MyPassword";
$Per_Page=10;
// Open MySQL Connection
$Connection=mysql_connect($DB_Host, $DB_User, $DB_Pass);
// Run The Query Without a Limit to get Total result
$SQL="SELECT COUNT(*) AS Total FROM Products WHERE Description LIKE '%".$_REQUEST['Keyword']."%'";
$SQL_Result=mysql_db_query($DB_Name, $SQL);
$SQL_Result_Array=mysql_fetch_array($SQL_Result);
$Total=$SQL_Result_Array['Total'];
// Create a new SELECT Query with the ORDER BY clause and without the COUNT(*)
$SQL="SELECT * FROM Products WHERE Description LIKE '%".$_REQUEST['Keyword']."%' ORDER BY ProductID";
// Append a LIMIT clause to the SQL statement
if (empty($_GET['Result_Set']))
{
$Result_Set=0;
$SQL.=" LIMIT $Result_Set, $Per_Page";
}else
{
$Result_Set=$_GET['Result_Set'];
$SQL.=" LIMIT $Result_Set, $Per_Page";
}
// Run The Query With a Limit to get result
$SQL_Result=mysql_db_query($DB_Name, $SQL);
$SQL_Rows=mysql_num_rows($SQL_Result);
// Display Results using a for loop
for ($a=0; $a < $SQL_Rows; $a++)
{
$SQL_Array=mysql_fetch_array($SQL_Result);
$Product=$SQL_Array['Name'];
$Description=$SQL_Array['Description'];
echo "$Product - $Description<BR><BR>";
}
// Create Next / Prev Links and $Result_Set Value
if ($Total>0)
{
if ($Result_Set<$Total && $Result_Set>0)
{
$Res1=$Result_Set-$Per_Page;
echo "<A HREF=\"test.php?Result_Set=$Res1&Keyword=".$_REQUEST['Keyword']."\"><;<; Previous Page</A> ";
}
// Calculate and Display Page # Links
$Pages=$Total / $Per_Page;
if ($Pages>1)
{
for ($b=0,$c=1; $b < $Pages; $b++,$c++)
{
$Res1=$Per_Page * $b;
echo "<A HREF=\"test.php?Result_Set=$Res1&Keyword=".$_REQUEST['Keyword']."\">$c</A> \n";
}
}
if ($Result_Set>=0 && $Result_Set<$Total)
{
$Res1=$Result_Set+$Per_Page;
if ($Res1<$Total)
{
echo " <A HREF=\"test.php?Result_Set=$Res1&Keyword=".$_REQUEST['Keyword']."\">Next Page >></A>";
}
}
}
// Close Database Connection
mysql_close($Connection);
?>
----------
La base de datos que hemos usado para este es como la siguiente:
CREATE TABLE Products (
ProductID int(10) auto_increment NOT NULL PRIMARY KEY,
Name varchar(100),
Description text
);
----------

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas