Foros del Web » Programando para Internet » PHP »

Mezclar dos Scripts

Estas en el tema de Mezclar dos Scripts en el foro de PHP en Foros del Web. Buenas, 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 ...
  #1 (permalink)  
Antiguo 22/12/2008, 02:41
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Mezclar dos Scripts

Buenas,

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);
?>
Y este es el que elimina (2 archivos)
- 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>"

?>
quita.php
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"); 
?>
  #2 (permalink)  
Antiguo 22/12/2008, 02:42
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Mezclar dos Scripts

Y aquí lo que yo he podido mezclar:
- index.php
- quita.php

index.php
Código PHP:
<?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_rsrecoldesk "SELECT * FROM incidencias ORDER BY inci_id ASC";
//añadimos las variables de URL necesarias
$query_limit_resultados sprintf("%s LIMIT %d, %d"$query_rsrecoldesk$mostrar_resultados$maximo_resultados);
$rsrecoldesk mysql_query($query_limit_resultados$connBD) or die(mysql_error());
$row_rsrecoldesk mysql_fetch_assoc($rsrecoldesk);
//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_rsrecoldesk);
  
$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 

print "<form action ='quita.php' method='post'>";
$query_rsrecoldesk ;
//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>Gestor de Correo</th><th>Tipo de conexion</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_rsrecoldesk['inci_id'] . "</td>";
echo 
"<td>".$row_rsrecoldesk['nombre'] . "</td>";
echo 
"<td>".$row_rsrecoldesk['apellidos'] . "</td>";
echo 
"<td>".$row_rsrecoldesk['gestor'] . "</td>";
echo 
"<td>".$row_rsrecoldesk['conexion'] . "</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_rsrecoldesk mysql_fetch_assoc($rsrecoldesk));
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($rsrecoldesk);
?>
quita.php

Es el mismo que el de arriba.
  #3 (permalink)  
Antiguo 22/12/2008, 15:29
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Mezclar dos Scripts

carscx:
Mezclarlos, si se puede pero debe ser algo bien estudiado y con mucho cuidado.
Lo que puedes hacer con mayor facilidad es crear un index.php sencillo
que te muestre tres opciones una, listar, otra quitar y una tercera paginar o listar y paginar.
Saludos
Franco
P.S. Otra alternativa es que expongas un codigo similar pero mucho mas sencillo que lo que has puesto. Para asi poder dar soluciones rapidas.
  #4 (permalink)  
Antiguo 23/12/2008, 18:07
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 15 años, 5 meses
Puntos: 10
Respuesta: Mezclar dos Scripts

Muchas gracias por responder, pero la verdad mi conocimiento de PHP es bastante nulo, asi que encontre un programa que genera codigo PHP y maneja base de datos MySQL, lo probe y funciona de maravilla. El Programa se llama PHP Generator for MySQL.

A mi me soluciono bastante.

Gracias de nuevo franco!
  #5 (permalink)  
Antiguo 23/12/2008, 18:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mezclar dos Scripts

PHP Generator for MySQL parece una buena opcion, pero lo mejor es usarlo para aprender, analizando el codigo que te genera.
__________________
- León, Guanajuato
- GV-Foto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:47.