Tengo 2 Scripts, de páginas de ejemplo, y no consigo mezclarlos. Se trata de una página que muestra los registros de una base de datos, y los página. Y el otro genera un checkbox y llama a un archivo que elimina los resultados marcados. Es decir, consigo que me funcionen por separado, pero cuando intento juntarlos, no me funciona. En fin os dejo los codigos por separado, y luego la "mezcla" que he hecho y a ver si podeis ayudarme. El problema viene cuando marco los resultados para borrar, hace el Submit y el "refresco" de la página pero lo unico que hace es desmarcar el registro que he marcado. Muchas gracias de anemano.
Primer Sript:
- Paginacion.php
Código PHP:
<?php
/////////////////////////////////////////
//////////////BALUART.NET////////////////
////Paginar Resultados de una consulta///
//////////////MYSQL con PHP//////////////
/////////////////////////////////////////
//creamos las variables básicas del paginador
$maximo_resultados = 3;
$numero_pagina = 0;
//si existe un valor en el url lo guardamos en la variable $numero_pagina
if (isset($_GET['numero_pagina'])) {
$numero_pagina = $_GET['numero_pagina'];
}
//guardamos los valores de las variables en una sola
$mostrar_resultados = $numero_pagina * $maximo_resultados;
// conectamos a la BD
$hostname_connBD = "localhost";
$database_connBD = "********";
$username_connBD = "********";
$password_connBD = "********";
$connBD = mysql_pconnect($hostname_connBD, $username_connBD, $password_connBD) or trigger_error(mysql_error(),E_USER_ERROR);
//Selecionamos la tabla y realizamos la consulta
mysql_select_db($database_connBD, $connBD);
$query_rsTablaPersonalizada = "SELECT * FROM incidencias ORDER BY inci_id ASC";
//añadimos las variables de URL necesarias
$query_limit_resultados = sprintf("%s LIMIT %d, %d", $query_rsTablaPersonalizada, $mostrar_resultados, $maximo_resultados);
$rsTablaPersonalizada = mysql_query($query_limit_resultados, $connBD) or die(mysql_error());
$row_rsTablaPersonalizada = mysql_fetch_assoc($rsTablaPersonalizada);
//Si la consulta trae resultados lo almacenamos en la variable $total_resultados
if (isset($_GET['total_resultados'])) {
$total_resultados = $_GET['total_resultados'];
} else {
$all_resultados = mysql_query($query_rsTablaPersonalizada);
$total_resultados = mysql_num_rows($all_resultados);
}
//si algún valor esta en fracción lo redondeamos al número mayor y restamos 1 para la pag. de inicio
$totalPaginas_resultados = ceil($total_resultados/$maximo_resultados)-1;
// almacenamos los resultados como strings
$string_resultados = "";
// creamos los parámetros de la URL: numero_pagina y total_resultados
if (!empty($_SERVER['QUERY_STRING'])) {
$parametros = explode("&", $_SERVER['QUERY_STRING']);
$newparametros = array();
foreach ($parametros as $param) {
if (stristr($param, "numero_pagina") == false &&
stristr($param, "total_resultados") == false) {
array_push($newparametros, $param);
}
}
if (count($newparametros) != 0) {
$string_resultados = "&" . htmlentities(implode("&", $newparametros));
}
}
$string_resultados = sprintf("&total_resultados=%d%s", $total_resultados, $string_resultados);
//Definimos los colores a usar
$color0 = "#A4B4C1";
$color1 = "#D5E7FB";
$color2 = "#E8F2FC";
$color3 = "#E0FAC5";
$color = $color1;
//creamos el formulario (para borrar registros)
$nbrow=0;
$cont = 0; //Para el checkbox
echo "<form action ='quita.php' method='post'>";
//creamos la tabla
echo "<table border=\"0\" align=\"center\" cellspacing=\"2\">";
echo "<tr bgcolor='$color0'><th>ID</th><th>Nombre</th><th>Apellidos</th><th>Borrar</th></tr>";
do {
//creamos el java
echo " <tr align=\"center\" style=\"background-color:$color\" onMouseOver=\"this.style.backgroundColor='$color3'\" onMouseOut=\"this.style.backgroundColor='$color'\" >";
echo "<td>".$row_rsTablaPersonalizada['inci_id'] . "</td>";
echo "<td>".$row_rsTablaPersonalizada['nombre'] . "</td>";
echo "<td>".$row_rsTablaPersonalizada['apellidos'] . "</td>";
echo "<td><div align=\"center\"><font color=\"#000000\"><font face=\"Verdana\"><input type=\"checkbox\" name=\"delete[]\" value=\"".$inci_id."\"></font></font></div></td>";
echo "</tr>";
//diferenciamos los colores de las filas
if ($color == $color1) {
$color = $color2;
} else {
$color = $color1;
}
}
while ($row_rsTablaPersonalizada = mysql_fetch_assoc($rsTablaPersonalizada));
echo "</table>" ;
echo "<div align=\"center\"><input type='submit' name='borrar' value='Eliminar incidencias'></div>";
echo "</form> \n";
?>
<table width="50%" border="0" align="center">
<tr>
<td width="50%" align="right"><?php
//Creamos la Barra de Navegación
//utilizamos la función max para motrar los 50 valores anteriores al valor máximo
$pagNum_tmp = max(0, $numero_pagina-50);
for ($pagNum_i=$pagNum_tmp+1;$pagNum_i<=$numero_pagina;$pagNum_i++) {
//páginas previas
?>
<a href="<?php printf ("%s?numero_pagina=%d%s", $HTTP_SERVER_VARS["PHP_SELF"], $pagNum_i-1, $string_resultados); ?>"><?php echo $pagNum_i; ?></a>
<?php
}
?>
</td>
<td><strong><?php
// página actual
echo $numero_pagina+1; ?></strong></td>
<td width="50%"><?php
$pagNum_tmp = min($numero_pagina+1+50, $totalPaginas_resultados+1);
for ($pagNum_i=$numero_pagina+2;$pagNum_i<=$pagNum_tmp;$pagNum_i++) {
// páginas siguientes
?>
<a href="<?php printf ("%s?numero_pagina=%d%s", $HTTP_SERVER_VARS["PHP_SELF"], $pagNum_i-1, $string_resultados); ?>"><?php echo $pagNum_i; ?></a>
<?php
}
?>
</td>
</tr>
</table>
<?php
//liberamos memoria
mysql_free_result($rsTablaPersonalizada);
?>
- List_Total.php
- quita.php
List_Total.php
Código PHP:
<?php
$db=mysql_connect('localhost','******','******')or die ("Error en la conexion a la base de datos");
$base=mysql_select_db('*******',$db)or die ("Error seleccionando la base de datos");
$nbrow=0;
$cont = 0; //Para el checkbox
print "<form action ='quita.php' method='post'>";
$result = mysql_query("SELECT inci_id,nombre,apellidos,email,telefono FROM incidencias ORDER by inci_id");
echo "<div align=\"center\">SELECCIONAR LA INCIDENCIA PARA ELIMINARLA </div><p><br><p>\n";
echo "<table CELLSPACING=1 CELLPADDING=1 width='80%' border='1' align='center'> \n";
echo "<tr><td>Eliminar</td><td>ID</td><td>Nombre</td><td>Apellidos</td><td>E-mail</td><td>Telefono</td></tr> \n";
while($row=mysql_fetch_array($result))
{
$nbrow++;
$cont++;
$inci_id=$row["inci_id"];
$nombre =$row["nombre"];
$apellidos= $row["apellidos"];
$email =$row["email"];
$telefono =$row["telefono"];
print "<tr bgcolor='#FBF3E4'> ";
print "<td><div align=\"center\"><font color=\"#000000\"><font face=\"Verdana\"><input type=\"checkbox\" name=\"delete[]\" value=\"".$inci_id."\"></font></font></div></td>";
print "<td> <div align=\"center\"><font color=\"#000000\"><font size=\"1\"><font face=\"Verdana\"><a href=\"incidencia.php?inci_id\">$inci_id</a></font></font></div></td>";
print "<td> <div align=\"center\"><font color=\"#000000\"><font size=\"1\"><font face=\"Verdana\">$nombre</font></font></div></td>";
print "<td> <div align=\"center\"><font color=\"#000000\"><font size=\"1\"><font face=\"Verdana\">$apellidos</font></font></div></td>";
print "<td> <div align=\"center\"><font color=\"#000000\"><font size=\"1\"><font face=\"Verdana\">$email</font></font></div></td>";
print "<td> <div align=\"center\"><font color=\"#000000\"><font size=\"1\"><font face=\"Verdana\">$telefono</font></font></div></td>";
print "</tr>";
}
echo "</table> \n <p><br><p>";
print "<div align=\"center\"><input type='submit' name='borrar' value='Eliminar incidencias'></div>";
print "</form> \n";
//imprime número de registros
print "<b><font size=\"1\"><font face=\"Verdana\">Incidencias totales $nbrow </font></b>";
?>
Código PHP:
<?php
if (count($_POST['delete']))
{
//Establece una conexión con la BD y lanza un mensaje de error en el caso de que ésta no se haya realizado con éxito.
$db=mysql_connect('localhost','********','*******')or die ("Error en la conexion a la base de datos");
$base=mysql_select_db('*********',$db)or die ("Error seleccionando la base de datos");
foreach ($_POST['delete'] as $v)
{
$sql="DELETE FROM incidencias WHERE inci_id=$v";
$rsrecoldesk = mysql_query($sql,$db);
}
}else{ echo ('No has seleccionado ningún registro...');}
header("location:index.php");
?>