Foros del Web » Programando para Internet » PHP »

Mostrar Registros

Estas en el tema de Mostrar Registros en el foro de PHP en Foros del Web. Mi pregunta es simple, y como siempre recurro a este foro como ultima opcion despues de buscar y comerme la cabeza, pero parece ser que ...

  #1 (permalink)  
Antiguo 11/02/2009, 09:28
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Mostrar Registros

Mi pregunta es simple, y como siempre recurro a este foro como ultima opcion despues de buscar y comerme la cabeza, pero parece ser que soy muy torpe. Me gustaria coger todos los registros de una tabla y mostrarlos en una pagina web en formato formulario o similar para que se puedan editar y borrar lo que se desee de cada campo y volverlo a subir.

Espero que me podais ayudar, lo basico lo tengo, conectar con la bd, acer la consulta y demas, pero me falta mostrar los registros y campos a traves de un formulario web para lo que he puesto arriba xD.

Podeis ayudarme? O almenos guiarme. Gracias de antemano, como siempre los mejores.
  #2 (permalink)  
Antiguo 11/02/2009, 09:39
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

Dices que ya tienes la consulta hecha para extraer los datos ¿no?.



Código PHP:
// formulario.php
$query mysql_query("SELECT * FROM tutabla");
while(
$resultado mysql_fetch_array($query)){ 
Código HTML:
<form action="" method="post" name="editardatosform">
   <input type="text" name="campo1" value="<?php echo $resultado['campo1'];?>" />
      <br /><br />
   <input type="submit" name="editar" value="editar campo" />
</form> 
Código PHP:
// cerramos el while 
Así muestras un campo de texto (dentro del formulario) con el valor extraído de la bd. Claro que al no indicar ningun condicional en la consulta, el formulario se imprimiría tantas veces como registros tengas en tu bd. Es sólo una forma de guiarte ;).

Ahora solo faltaría procesar los datos que el usuario edite en el formulario de arriba y meterlos en la bd.

¿Alguna duda?
  #3 (permalink)  
Antiguo 11/02/2009, 09:52
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Creo que lo voy pillando. Va todo en el mismo archivo de formulario, el codigo php y el formulario y ahora debo crear el formulario con sus campos de texto, de select y todo el rollo.

Código PHP:
<?php
$dbhost
="localhost";  // host del MySQL (generalmente localhost)
$dbusuario="root"// aqui debes ingresar el nombre de usuario
                      // para acceder a la base
$dbpassword=""// password de acceso para el usuario de la
                      // linea anterior
$db="casas";        // Seleccionamos la base con la cual trabajar
$conexion mysql_connect($dbhost$dbusuario$dbpassword);

mysql_select_db($db$conexion);

$query mysql_query("SELECT * FROM inmuebles");
while(
$resultado mysql_fetch_array($query)){  
?>
<form action="" method="post" name="Editar">
   <input type="text" name="campo1" value="<?php echo $resultado['Referencia'];?>" />
      <br /><br />
    <select name="Tipo">
      <option value="value">Aticos</option>
      <option value="value">Apartamentos</option>
      <option value="value">Adosados/Pareados</option>
      <option value="value">Casas</option>
      <option value="value">Chalet</option>
      <option value="value">Estudios</option>
      <option value="value">Fincas/Parcelas</option>
      <option value="value">Locales</option>
      <option value="value">Nuevas promociones</option>
      <option value="value">Pisos</option>
    </select>
    <input name="Foto1" type="file" id="Foto1" />
   <input type="submit" name="Editar" value="Editar" />
</form>
Algo asi sería no?. Bueno ahi estan los 3 tipos de campos que utilizo: Texto, Select y File. Para que en los selects (listas desplegables) salga por defecto el dato que esta puesto en el campo de la bd como seria?. Y para que la ruta del file salga en el campo del archivo file?.
  #4 (permalink)  
Antiguo 11/02/2009, 10:55
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Bueno otra cosa, creo que he explicado un poco mas. Te explico la estructura como seria:

1º- Primero el cliente accede a una pagina donde aparecen todos los registros de la base de datos y solo el campo Referencia (primaria) en una tabla (que lo he conseguido hacer pero no se colocar los datos para que cada X registros de arriba a abajo se cree una segunda columna y sigan saliendo como tabla)

2º- El cliente elige el registro que desea modificar y se va a una nueva ventana donde le saldra todos los campos de la bd de ese registro en modo de formulario donde el podrá modificar lo que desee y volverlo a subir (update).


Código del 1º punto:

Código PHP:
<?php
$dbhost
="localhost";  // host del MySQL (generalmente localhost)
$dbusuario="root"// aqui debes ingresar el nombre de usuario
                      // para acceder a la base
$dbpassword=""// password de acceso para el usuario de la
                      // linea anterior
$db="casas";        // Seleccionamos la base con la cual trabajar
$conexion mysql_connect($dbhost$dbusuario$dbpassword);

mysql_select_db($db$conexion);

$_pagi_sql "SELECT * FROM inmuebles";

$_pagi_result=mysql_query($_pagi_sql);

$alto=30;
$ancho=25;

while(
$row mysql_fetch_array($_pagi_result))
        {

    echo 
'<div id="wb_Table1" style="position:absolute;left:'.$ancho.'px;top:'.$alto.'px;width:200px;height:25px;z-index:9" align="left">
    <table width="100%" border="1" cellpadding="0" cellspacing="1" id="Table1">
    <tr>
    <td align="left" valign="top" width="200" height="25"><font style="font-size:12px" color="#E2001A" face="myriad pro"><b>Referencia:'
.$row["Referencia"].'
    </b></font></td>
    </table></div>'
;    

        
$alto=$alto+30;
        }
?>
Código del 2º punto:

Código PHP:
<?php
$dbhost
="localhost";  // host del MySQL (generalmente localhost)
$dbusuario="root"// aqui debes ingresar el nombre de usuario
                      // para acceder a la base
$dbpassword=""// password de acceso para el usuario de la
                      // linea anterior
$db="casas";        // Seleccionamos la base con la cual trabajar
$conexion mysql_connect($dbhost$dbusuario$dbpassword);

mysql_select_db($db$conexion);

$query mysql_query("SELECT * FROM inmuebles");
while(
$resultado mysql_fetch_array($query))

{  
echo
 
'<form action="" method="post" name="Editar">
   <input type="text" name="Referencia" value="'
.$resultado['Referencia'].'" />
      <br /><br />
    <select name="Tipo">
      <option value="value">Aticos</option>
      <option value="value">Apartamentos</option>
      <option value="value">Adosados/Pareados</option>
      <option value="value">Casas</option>
      <option value="value">Chalet</option>
      <option value="value">Estudios</option>
      <option value="value">Fincas/Parcelas</option>
      <option value="value">Locales</option>
      <option value="value">Nuevas promociones</option>
      <option value="value">Pisos</option>
    </select>
    <input name="Foto1" type="file" id="Foto1" />
   <input type="submit" name="Editar" value="Editar" />
</form>'
; }
?>
Principales Problemas:

1º- Como vereis consigo hacer una lista descendente de los registros pero como mi mente no llega a mas, es infinita por la variable. Que hago para que a los 10 registros por ejemplo, se cree una segunda columna y siga otros 10 y tal?.

2º- No consigo mostrar los valores de los campos de la BD en el formulario. Es decir necesito que se muestren los valores de cada campo en cada parte del formulario y que se pueda modificar y volver a subir con update.

Gracias de antemano.
  #5 (permalink)  
Antiguo 11/02/2009, 11:41
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

Como te dije, era una guía rápida para orientarte. Para que no imprima tanto <form> en el código, deberías ponerlo asi:


Código PHP:
$query mysql_query("SELECT * FROM inmuebles");

// imprimes UNA sola vez la etiqueta form
echo "<form action=\"\" method=\"post\" name=\"editarinmuebles\">";

// haces el while..
while($resultado mysql_fetch_array($query)){ 

// y mientras haya campos en la bd los imprime.. (código html) 


Código HTML:
<input type="text" name="Referencia" value="'.$resultado['Referencia'].'" />
   <br /><br />
<select name="Tipo">
   <option value="value">Aticos</option>
   <option value="value">Apartamentos</option>
   <option value="value">Adosados/Pareados</option>
   <option value="value">Casas</option>
   <option value="value">Chalet</option>
   <option value="value">Estudios</option>
   <option value="value">Fincas/Parcelas</option>
   <option value="value">Locales</option>
   <option value="value">Nuevas promociones</option>
   <option value="value">Pisos</option>
</select>
   <br /><br />
<input name="Foto1" type="file" id="Foto1" />
   <br /><br />
<input type="submit" name="Editar" value="Editar" /> 
  #6 (permalink)  
Antiguo 11/02/2009, 11:42
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

(Ando escaso de tiempo, más tarde vuelvo y te respondo a lo otro, que es algo más lioso!)
  #7 (permalink)  
Antiguo 11/02/2009, 12:08
Avatar de DjMiki  
Fecha de Ingreso: octubre-2007
Ubicación: Paijan - Trujillo - La Libertad
Mensajes: 90
Antigüedad: 16 años, 6 meses
Puntos: 2
Pregunta Respuesta: Mostrar Registros

bueno amigo como dice d-ART tieneq hacerlo asi lo q envuelve, en tu caso la tabla, tiene q ser fuera del while.
Entonces si haces esto, puede q te funcione:

Código PHP:

$x
=1//variable para conteo de las filas
    
echo '<div id="wb_Table1" style="position:absolute;left:'.$ancho.'px;top:'.$alto.'px;width:200px;height:25px;z-index:9" align="left">
    <table width="100%" border="1" cellpadding="0" cellspacing="1" id="Table1">
    <tr>'

while($row mysql_fetch_array($_pagi_result)) // empieza while
        
{
if (
$x<=10// evaluo la variable para imprimir las filas de la tabla hasta que sea mayor  de 10 ya no imprime la fila
{
  echo 
'  <td align="left" valign="top" width="200" height="25"><font style="font-size:12px" color="#E2001A" face="myriad pro"><b>Referencia:'.$row["Referencia"].'
    </b></font></td>'
;
$x=$x+1;
 }
else { 
// si es mayor cierra la columna y abre otra
echo '</tr><tr>'
$x=1// la varible se regresa a 1 para volver a contar
}
           
$alto=$alto+30;
        }
   </
table></div

Bueno esa es mi logica quizas alguien mas la pueda mejorar o proponerte algo mejor, yo soy un aficionado del php, lleve un curso en el inste de Java JSP, y bueno la sintaxis es parecida, asi q espeor q te pueda ayudar eso.

Ahora lo q yo tengo problemas es con unos scripts en php, para insertar registrar en mysql y editarlos aun no soluciono eso
  #8 (permalink)  
Antiguo 11/02/2009, 12:33
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Creo que entiendo tu logica, pero hay algo que falla en tu código por que no me sale bien. Y ese </table></div> debajo del codigo? Nose.
  #9 (permalink)  
Antiguo 11/02/2009, 12:40
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

Hay algunos errores de sintáxis (comillas, puntos y comas, etc.),
Prueba con éste:

Código PHP:
    $x=1//variable para conteo de las filas
    
echo "<div id=\"wb_Table1\" style=\"position:absolute;left:".$ancho."px;top:".$alto."px;width:200px;height:25px;z-index:9\" align=\"left\">";
        echo 
"<table width=\"100%\" border=\"1\" cellpadding=\"0\" cellspacing=\"1\" id=\"Table1\">";
            echo 
"<tr>";
                
                while(
$row mysql_fetch_array($_pagi_result)){
                    if (
$x<=10){
                        echo 
"<td align=\"left\" valign=\"top\" width=\"200\" height=\"25\"><font style=\"font-size:12px\" color=\"#E2001A\" face=\"myriad pro\"><b>Referencia:".$row['Referencia']."</b></font></td>";
                        
$x=$x+1;
                    }else {
                        echo 
'</tr><tr>'
                        
$x=1// la varible se regresa a 1 para volver a contar
                    
}
                
                
$alto=$alto+30;
            }
            
            echo
"</table></div>"
  #10 (permalink)  
Antiguo 11/02/2009, 15:09
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Me da error en esta linea

Código PHP:
$x=1// la varible se regresa a 1 para volver a contar 
  #11 (permalink)  
Antiguo 11/02/2009, 15:10
Avatar de DjMiki  
Fecha de Ingreso: octubre-2007
Ubicación: Paijan - Trujillo - La Libertad
Mensajes: 90
Antigüedad: 16 años, 6 meses
Puntos: 2
De acuerdo Respuesta: Mostrar Registros

pues si me falataban algunas cosas como los ";" y ahm, tambien el ultimo del
Código HTML:
"</table> y el </div>"
era como te lo dijo d-ART en fin,

disculpa por no haber correguido bien pero bueno taba de slaida del cybert espero haber ayudado, y si alguien puede colocar un tutorial con ejemplos funcionales de como interactuar con MySql seria muy chevere y util, como insertar registros y modificarlos o actualizarlos al igual q la eliminacion, en general mantenimiento.

Y sobre ese error la verdad esta muy extraño no deberia salirte error alli, yo creo q debe ser cerca reviza bien la sintaxis antes de ese error

Última edición por DjMiki; 11/02/2009 a las 15:20
  #12 (permalink)  
Antiguo 11/02/2009, 15:23
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Por cierto y lo del formulario aun no me lo habeis indicado xD. Como hago para que aparezcan los datos de cada campo en un input del formulario?. Asi como lo puse no me salian.

PD: No consigo hacer funcionar el codigo, me sigue saliendo error en esa linea. Y no le veo ningun error.

Última edición por Necrobone; 11/02/2009 a las 16:19
  #13 (permalink)  
Antiguo 11/02/2009, 16:43
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Creo que ya se cual es el problema. La $x solo esta indicando el funcionamiento que tiene que tener cuando pase cada cosa, pero no esta indicado en el codigo que la $x sea un registro, solo dice que es = a 1. Me entendeis?. Como se podria arreglar?.
  #14 (permalink)  
Antiguo 11/02/2009, 17:29
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

El valor x = 1. Eso no tiene nada que ver con la base de datos. Es simplemente para contear las columnas por registros.

¿Qué tipo de error dices que te da la variable $x?


Lo del formulario es como te indiqué. Habría antes que conocer porqué no se muestran los datos de los input. ¿Llamas bien los cambios con el $resultado['campo']? Cuida las mayúsculas/minúsculas. Y si te devuelve algún error dinos cual.

Saludos,
aquí seguimos! ;)
  #15 (permalink)  
Antiguo 11/02/2009, 17:59
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

d-ART. Creo que le he dado un nuevo retoque y queda bastante mejor.

Código PHP:
/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border='1' cellpadding='4' cellspacing='0'>";

/*Priemro los encabezados*/
 
echo "<tr>
         <th colspan=5> Inmuebles </th>
       <tr>
         <th> Referencia </th><th> Tipo </th><th> Estado </th>
         <th> Localidad </th><th> Zona </th>
      </tr>"
;

/*Y ahora todos los registros */
while($row mysql_fetch_array($_pagi_result))
{
 echo 
"<tr>
         <td> $row[Referencia] </td>
         <td> $row[Tipo] </td>
         <td> $row[Estado] </td>
         <td> $row[Localidad] </td>
         <td> $row[Zona] </td>
      </tr>"
;

Y a esta tabla le he añadido una paginacion simple cada X registros. Queda bastante bien y por ahora voy a probar con esto. Pero sigo necesitando tu ayuda.

Para esta parte necesito hacer varias cosas. Creo que voy a hacer el Editar y borrar en uno solo. Con lo cual con la tabla que acabo de poner me gustaria poner al lado de cada una un boton o una casilla de verificacion o algo por el estilo para borrar los registros de la base de datos y si quiere editarlo tan solo tiene que pinchar en cada registro. Es decir, queda:

1º Borrar los registros de la base de datos a traves de esta nueva tabla
2º Respecto a lo del formulario he conseguido hacerlo a traves del codigo que me dijiste pero se me repite el formulario por cada registro. Lo que quiero es que al cliquear un registro de esta tabla me lleve a un formulario de ese registro.

PD:Si se me cargan los campos en el formulario ;) muchas gracias, pero me falta eso, acerlo registro por registro no todos a la vez.
PD2:Ya que estamos vamos a hacer que en esta misma tabla para no complicarnos mucho, se pueda borrar el registro entero (con todos sus campos claro) Ó pinchar en el y que nos lleve a su formulario correspondiente para editarlo y hacerle un update.

Gracias de antemano
  #16 (permalink)  
Antiguo 11/02/2009, 18:08
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

Lo que puedes hacer es al botoncito de eliminar, pasarle una url tipo:

Código PHP:
?eliminar=Inmueble&id=$resultado['id']; 
Y luego "tratar" esa dirección con condicionales:


Código PHP:
$accion$_GET['eliminar'];
$id $_GET['id'];

if((
$accion == "eliminar") && ($id)){
   
// eliminas el registro que coincida con la id que le pasas por la url..



PD.: Está en modo básico. Así tiene mucha vulnerabilidad. Ya luego le haríamos "retoques" para mejorarla ;)
  #17 (permalink)  
Antiguo 11/02/2009, 18:16
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Vale, me he perdido xD.

Paso por paso. Primero creo una nueva columna en la tabla. Dentro de cada celda coloco un boton de borrar?.

Tipo así...

Código PHP:
/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border='1' cellpadding='4' cellspacing='0'>";

/*Priemro los encabezados*/
 
echo "<tr>
         <th colspan=6> Inmuebles </th>
       <tr>
         <th> Referencia </th><th> Tipo </th><th> Estado </th>
         <th> Localidad </th><th> Zona </th><th> Borrar</th>
      </tr>"
;

/*Y ahora todos los registros */
while($row mysql_fetch_array($_pagi_result))
{
 echo 
"<tr>
         <td> $row[Referencia] </td>
         <td> $row[Tipo] </td>
         <td> $row[Estado] </td>
         <td> $row[Localidad] </td>
         <td> $row[Zona] </td> 
         <td><form action=\"\" method=\"post\" name=\"editarinmuebles\">
                 <input type="
submit" name="Borrar" value="Borrar" />
                 </form>
      </tr>"
;

Me equivoco?. Si es cierto bien. Ahora bien, como hago para que se muestre en la URL el código? ya que muestro la tabla en un frame y no se como hacerlo.

Y ya lo ultimo que dices no lo entiendo xDD.
  #18 (permalink)  
Antiguo 12/02/2009, 07:09
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

Está un poco mal el código. De la forma que lo tienes imprimiría tantos <form> como registros encuentre el while en la base de datos. Colócalo así (ya que con un solo form, es suficiente).

Código PHP:
/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border='1' cellpadding='4' cellspacing='0'>";

   
/*Priemro los encabezados*/
      
echo "<tr>
         <th colspan=6> Inmuebles </th>
      <tr>
         <th> Referencia </th><th> Tipo </th><th> Estado </th>
         <th> Localidad </th><th> Zona </th><th> Borrar</th>
      </tr>"
;

      
/*Y ahora todos los registros */
         
while($row mysql_fetch_array($_pagi_result)){
            echo 
"<tr>
               <td>"
.$row['Referencia']."</td>
               <td>"
.$row['Tipo']."</td>
               <td>"
.$row['Estado']."</td>
               <td>"
.$row['Localidad']."</td>
               <td>"
.$row['Zona']."</td> 
               <td><a href=\"accion=eliminar&id?"
.$row['id']."\ target=\"_parent\"">Eliminar</a></td>
           </
tr>";
         }
  
echo "
</table>"; 
A lo último que me refería en el otro post y que dices no entender, es que el código, tal como está es vulnerable (hackeable), pero me refiero a la parte de eliminar el registro. Y que ya lo retocaremos para agregarle más seguridad.
  #19 (permalink)  
Antiguo 12/02/2009, 08:16
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Gracias d-ART por tu respuesta. Ahora mismo he hecho esto:

Código PHP:
    echo "<form action='Borrar.php' method='post' name='Borrar'>";
/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border='1' cellpadding='4' cellspacing='0'>";

/*Priemro los encabezados*/
 
echo "<tr>
         <th colspan=5> Inmuebles </th>
       <tr>
         <th> Referencia </th><th> Tipo </th><th> Estado </th>
         <th> Localidad </th><th>Seleccion </th>
      </tr>"
;

/*Y ahora todos los registros */
while($row mysql_fetch_array($_pagi_result))
{
 echo 
"<tr>
         <td> $row[Referencia] </td>
         <td> $row[Tipo] </td>
         <td> $row[Estado] </td>
         <td> $row[Localidad] </td>
         <td> <input name='boton' type='radio' value=''.$row[Referencia].'' /> </td>
      </tr>"
;
}

            echo 
'<p style="padding-left:700px;padding-top:460px">'.$_pagi_navegacion.'</p>
            <p><input type="submit" name="Borrar" value="Borrar" /></p>'
;
?> 
Es decir, al extremo de cada registro ai un boton de radio para elegir el registro deseado y darle al boton borrar y "Magia". Ahora mi duda es. Despues de darle mil vueltas, no consigo hacer que funcione el codigo para que borre el registro que esta seleccionado con el input de seleccion. Sabrias como hacerlo?. Muchas gracias de antemano por tu ayuda, me estas salvando el pellejo xD.

INTENTO DE CODIGO (Borrar.php):

Código PHP:
<?php
$dbhost
="localhost";  // host del MySQL (generalmente localhost)
$dbusuario="root"// aqui debes ingresar el nombre de usuario
                      // para acceder a la base
$dbpassword=""// password de acceso para el usuario de la
                      // linea anterior
$db="casas";        // Seleccionamos la base con la cual trabajar
$conexion mysql_connect($dbhost$dbusuario$dbpassword);

mysql_select_db($db$conexion);

$_pagi_sql "SELECT * FROM inmuebles";

$_pagi_result=mysql_query($_pagi_sql);
while(
$row mysql_fetch_array($_pagi_result))
$sql "DELETE FROM fincasandrades WHERE Referencia='$Referencia'";
$borrado mysql_query ($sql$conexion) or die ("Error en el borrado del usuario: ".mysql_error());
?>
PD: Se que esta horrible el codigo ese pero me estoy haciendo un cacao que flipas xDD.

Última edición por Necrobone; 12/02/2009 a las 08:33
  #20 (permalink)  
Antiguo 12/02/2009, 12:12
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

A ver, lo que tienes mal es que no recoges el campo $Referencia por ningún lado, jeje.



borrar.php (intenta usar siempre minúsculas en las variables)

Código PHP:
$dbhost="localhost";
$dbusuario="root";
$dbpassword="";
$db="casas";

// conectamos con la base de datos
$conexion mysql_connect($dbhost$dbusuario$dbpassword);

// seleccionamos la base de datos
mysql_select_db($db$conexion);

// recogemos los valores del formulario, en este caso el "borrar"
$referencia $_POST['boton'];
// le pongo boton porque es el nombre que le has dado en el input name="boton"..

if($sql mysql_query("DELETE FROM fincasandrades WHERE Referencia='$referencia'"){
   die(
"borrado!");
}else{
   die(
mysql_error());



PD.: no hace falta que diga que antes, al form, le has tenido que decir que la acción a ejecutar está en el archivo borrar.php, ¿no?

Código HTML:
<form action="borrar.php"...> 

A ver si ahora funciona,
Saludos! ;)
  #21 (permalink)  
Antiguo 12/02/2009, 13:09
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Que cerca estamos xDD. Bueno estas, por que al final vas a acabar haciendolo todo tu. Lo siento T_T. Gracias por insistir en mi.

Bueno lo primero, me da error en esta linea:
Código PHP:
if($sql mysql_query("DELETE FROM fincasandrades WHERE Referencia='$referencia'"){ 
Te copio el formulario aver que error le ves:

Código PHP:
<?php
$dbhost
="localhost";  // host del MySQL (generalmente localhost)
$dbusuario="root"// aqui debes ingresar el nombre de usuario
                      // para acceder a la base
$dbpassword=""// password de acceso para el usuario de la
                      // linea anterior
$db="fincasandrades";        // Seleccionamos la base con la cual trabajar
$conexion mysql_connect($dbhost$dbusuario$dbpassword);

mysql_select_db($db$conexion);

$_pagi_sql "SELECT * FROM inmuebles";

$_pagi_result=mysql_query($_pagi_sql);

//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 12;

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include('paginator.inc.php');
    
    echo 
"<form action='Borrar.php' method='post' name='Borrar'>";
/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border='1' cellpadding='4' cellspacing='0'>";

/*Priemro los encabezados*/
 
echo "<tr>
         <th colspan=5> Inmuebles </th>
       <tr>
         <th> Referencia </th><th> Tipo </th><th> Estado </th>
         <th> Localidad </th><th>Seleccion </th>
      </tr>"
;

/*Y ahora todos los registros */
while($row mysql_fetch_array($_pagi_result))
{
 echo 
"<tr>
         <td> $row[Referencia] </td>
         <td> $row[Tipo] </td>
         <td> $row[Estado] </td>
         <td> $row[Localidad] </td>
         <td> <input name='boton' type='radio' value=''.$row[Referencia].'' /> </td>
      </tr>"
;
}

            echo 
'<p align="center">'.$_pagi_navegacion.'</p>
            <p align="center"><input type="submit" name="Borrar" value="Borrar" /></p>'
;
?>
He probado a cambiar el formulario y poner <input name='boton' type='radio' value=''$Referencia'' />
Pero tampoco funciona...

Última edición por Necrobone; 12/02/2009 a las 13:25
  #22 (permalink)  
Antiguo 12/02/2009, 14:53
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

Tienes que pegar aquí el error que te da. Así sabremos porqué y exactamente dónde. Pero a ver, probemos así, aunque ya te digo que si no sabemos el error...

Código PHP:
//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

// abrimos el form
echo "<form action=\"Borrar.php\" method=\"post\" name=\"Borrar\">";

/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border=\"1\" cellpadding=\"4\" cellspacing=\"0\">";

/*Primero los encabezados*/
echo "<tr>
                <th colspan=5> Inmuebles </th>
                <tr>
                <th> Referencia </th><th> Tipo </th><th> Estado </th>
                <th> Localidad </th><th>Seleccion </th>
            </tr>"
;

/*Y ahora todos los registros */
while($row mysql_fetch_array($_pagi_result)){
    echo 
"<tr>
                    <td> $row[Referencia] </td>
                    <td> $row[Tipo] </td>
                    <td> $row[Estado] </td>
                    <td> 
                    $row[Localidad]"
;
                    
                    
// vamos a probar pasandole la referencia a través de un checkbox!
                    
echo "<input type=\"checkbox\" name=\"referencia\" value=\"".$row[Referencia]."\" />
                    </td>
                </tr>"
;
}

    echo 
"<p align="center">".$_pagi_navegacion."</p>
                <p align=\"center\">
                <input type=\"hidden\" name=\"Borrar\" value=\"Borrar\" /></p>"
;
                
                
// siempre olvidas cerrar el form
                
echo "</form>"
Y en el borrar.php escribe solo:

Código PHP:
$referencia $_POST['referencia'];
die(
$referencia); 
Pero no borres el documento en el que tienes todo escrito! Crea otro y llamalo borrar.php!
  #23 (permalink)  
Antiguo 12/02/2009, 15:21
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Perdona por ser pesado xD. Esto es lo que tengo.

FORMULARIO PHP:

Código PHP:
<?php
$dbhost
="localhost";  // host del MySQL (generalmente localhost)
$dbusuario="root"// aqui debes ingresar el nombre de usuario
                      // para acceder a la base
$dbpassword=""// password de acceso para el usuario de la
                      // linea anterior
$db="fincasandrades";        // Seleccionamos la base con la cual trabajar
$conexion mysql_connect($dbhost$dbusuario$dbpassword);

mysql_select_db($db$conexion);

$_pagi_sql "SELECT * FROM inmuebles";

$_pagi_result=mysql_query($_pagi_sql);

//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 12;

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

// abrimos el form
echo "<form action=\"Borrar.php\" method=\"post\" name=\"Borrar\">";

/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border=\"1\" cellpadding=\"4\" cellspacing=\"0\">";

/*Primero los encabezados*/
echo "<tr>
                <th colspan=5> Inmuebles </th>
                <tr>
                <th> Referencia </th><th> Tipo </th><th> Estado </th>
                <th> Localidad </th><th>Seleccion </th>
            </tr>"
;

/*Y ahora todos los registros */
while($row mysql_fetch_array($_pagi_result)){
    echo 
"<tr>
                    <td> $row[Referencia] </td>
                    <td> $row[Tipo] </td>
                    <td> $row[Estado] </td>
                    <td> 
                    $row[Localidad]"
;
                    
                    
// vamos a probar pasandole la referencia a través de un checkbox!
                    
echo "<td><input type=\"checkbox\" name=\"referencia\" value=\"'.$row[Referencia].'\" />
                    </td>
                </tr>"
;
}

    echo 
'<p align="center">'.$_pagi_navegacion.'</p>
                <p align=\"center\">
                <input type=\'hidden\' name=\'Borrar\' value=\'Borrar\' /></p>'
;
                
                
// siempre olvidas cerrar el form
                
echo "</form>";  
?>

BORRAR.PHP:


Código PHP:
<?php
$dbhost
="localhost";
$dbusuario="root";
$dbpassword="";
$db="fincasandrades";

// conectamos con la base de datos
$conexion mysql_connect($dbhost$dbusuario$dbpassword);

// seleccionamos la base de datos
mysql_select_db($db$conexion);

// recogemos los valores del formulario, en este caso el "borrar"
$referencia $_POST['referencia'];
die(
$referencia); 
// le pongo boton porque es el nombre que le has dado en el input name="boton"..

if($sql mysql_query("DELETE FROM fincasandrades WHERE Referencia='$referencia'"){
   die(
"borrado!");
}else{
   die(
mysql_error());
}  
?>
Ahora veo una tabla igualita a la anterior pero en vez de radio hay un checbox (prefiero el radio por que quiero que borre de 1 en 1, pero mientras funcione me vale).

Antes veia un cuadrado que ponia Hidden pero era por comillas, ya lo he corregido y no se ve. Pero el botton para borrar donde esta??. Esta todo bien?.

PD: Me sigue dando el mismo error cuando pulso el boton borrar en la siguiente linea del archivo borrar.php: Parse error: parse error in C:\wamp\www\fincas andrades\Borrar.php on line 23

Código PHP:
if($sql mysql_query("DELETE FROM fincasandrades WHERE Referencia='$referencia'"){ 

Última edición por Necrobone; 12/02/2009 a las 17:58
  #24 (permalink)  
Antiguo 13/02/2009, 03:42
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

El error que te da en la línea 23 de borrar.php es debido a que me comí un paréntesis cerrado al final del condicional..

FORMULARIO.PHP

Código PHP:
// configuraciones para conectar
$dbhost="localhost";
$dbusuario="root";
$dbpassword="";
$db="fincasandrades";

// conectamos a la bd
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);

// hacemos la consulta
$_pagi_sql "SELECT * FROM inmuebles";
$_pagi_result mysql_query($_pagi_sql);

//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 12;

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

// abrimos el form
echo "<form action=\"Borrar.php\" method=\"post\" name=\"Borrar\">";

/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border=\"1\" cellpadding=\"4\" cellspacing=\"0\">";

/*Primero los encabezados*/
echo "<tr>
 <th colspan=5> Inmuebles </th>
<tr>
 <th> Referencia </th><th> Tipo </th><th> Estado </th>
 <th> Localidad </th><th>Seleccion </th>
</tr>"
;

/*Y ahora todos los registros */
while($row mysql_fetch_array($_pagi_result)){
 echo 
"<tr>
   <td> $row[Referencia]</td>
   <td> $row[Tipo]</td>
   <td> $row[Estado]</td>
   <td>$row[Localidad]</td>"
;

// vamos a probar pasandole la referencia a través de un checkbox!
echo "<td>
   <input type=\"checkbox\" name=\"referencia\" value=\"'.$row[Referencia].'\" />
   </td>
  </tr>"
;
}

echo 
'<p align="center">'.$_pagi_navegacion.'</p>
 <p align=\"center\">
  <input type=\'submit\' name=\'Borrar\' value=\'Borrar\' /></p>'
;

// siempre olvidas cerrar el form
echo "</form>"

BORRAR.PHP
Código PHP:
$dbhost="localhost";
$dbusuario="root";
$dbpassword="";
$db="fincasandrades";

// conectamos con la base de datos
$conexion mysql_connect($dbhost$dbusuario$dbpassword);

// seleccionamos la base de datos
mysql_select_db($db$conexion);

// recogemos los valores del formulario, en este caso el "borrar"
$referencia $_POST['referencia'];
die(
$referencia); 
// le pongo boton porque es el nombre que le has dado en el input name="boton"..

if($sql mysql_query("DELETE FROM fincasandrades WHERE Referencia='$referencia'")){
   die(
"borrado!");
}else{
   die(
mysql_error());

Prueba así y ya vemos,
Saludos!
  #25 (permalink)  
Antiguo 13/02/2009, 07:12
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Ahora no da ningun error pero cuando pulso el boton borrar me sale esto por pantalla:

'.1234567.'

Y no se borra ningun registro. Por lo que yo creo es alguna variable que va entre puntos y comillas simples, es lo que se muestra (seguramente die($referencia); ) . Pero no borra nada.

PD:
lo que sale por pantalla es esta linea <input type=\"checkbox\" name=\"Referencia\" value=\"'.$row[Referencia]\.'" />

Última edición por Necrobone; 13/02/2009 a las 07:32
  #26 (permalink)  
Antiguo 13/02/2009, 08:05
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

Pero eso te sale cuando en el borrar.php solo escribes:

Código PHP:
$referencia $_POST['referencia'];
die(
$referencia); 
¿No?


Cambia esta línea:
Código PHP:
<input type="checkbox\" name=\"referencia\" value=\"'.$row[Referencia].'\" /> 
por esta otra:
Código PHP:
<input type="checkbox\" name=\"referencia\" value=\"".$row[Referencia]."\" /> 
(Aunque estas comprobaciones las hacemos para ver si recoge bien el campo del checkbox. Obviamente ésto no hará que se borre ningún registro. Sólo imprimirá el valor del checkbox activado para borrar).
  #27 (permalink)  
Antiguo 13/02/2009, 08:06
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

Y para borrar usa el ejemplo que te puse anteriormente llamado

BORRAR.PHP,

creo que debería funcionar. Eso sí, sólo puedes borrar de uno en uno. No puedes seleccionar varios checkbox y luego darle a borrar. ;)
  #28 (permalink)  
Antiguo 13/02/2009, 19:37
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Hola d-ART. Perdona por la tardanza en responder, y agradecerte de nuevo que sigas ahi. Me das esperanzas xD.

Respecto a el cambio de linea me da error

Notice: Use of undefined constant Referencia - assumed 'Referencia' in C:\wamp\www\fincas andrades\formulario.php on line 70.

No te preocupes por que borre de uno en uno. De hecho es lo que quiero. Pero se nos resiste el maldito codigo para borrar. Espero tu respuesta.
  #29 (permalink)  
Antiguo 14/02/2009, 03:29
Avatar de dART  
Fecha de Ingreso: enero-2009
Ubicación: Madrid
Mensajes: 246
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Mostrar Registros

Hola,

No pasa nada, de eso trata este foro, de ayudar, jeje. En cuanto al error, asegúrate de que no le falte ningún $ a la variable $referencia.
  #30 (permalink)  
Antiguo 14/02/2009, 09:03
 
Fecha de Ingreso: febrero-2009
Mensajes: 52
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Mostrar Registros

Hola d-ART. Sigo sin ver el problema. Te vuelvo a poner los dos archivos aver si lo solucionamos de una vez.


BORRAR.PHP

Código PHP:
<?php
$dbhost
="localhost";
$dbusuario="root";
$dbpassword="";
$db="fincasandrades";

// conectamos con la base de datos
$conexion mysql_connect($dbhost$dbusuario$dbpassword);

// seleccionamos la base de datos
mysql_select_db($db$conexion);

// recogemos los valores del formulario, en este caso el "borrar"
$referencia $_POST['referencia'];
die(
$referencia); 
// le pongo boton porque es el nombre que le has dado en el input name="boton"..

if($sql mysql_query("DELETE FROM fincasandrades WHERE Referencia='$referencia'")){
   die(
"borrado!");
}else{
   die(
mysql_error());
}  
?>

FORMULARIO.PHP


Código PHP:
<?php
// configuraciones para conectar
// configuraciones para conectar
$dbhost="localhost";
$dbusuario="root";
$dbpassword="";
$db="fincasandrades";

// conectamos a la bd
$conexion mysql_connect($dbhost$dbusuario$dbpassword);
mysql_select_db($db$conexion);

// hacemos la consulta
$_pagi_sql "SELECT * FROM inmuebles";
$_pagi_result mysql_query($_pagi_sql);

//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos 12;

//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("paginator.inc.php");

// abrimos el form
echo "<form action=\"Borrar.php\" method=\"post\" name=\"Borrar\">";

/* Desplegamos cada uno de los registros dentro de una tabla */  
echo "<table border=\"1\" cellpadding=\"4\" cellspacing=\"0\">";

/*Primero los encabezados*/
echo "<tr>
 <th colspan=5> Inmuebles </th>
<tr>
 <th> Referencia </th><th> Tipo </th><th> Estado </th>
 <th> Localidad </th><th>Seleccion </th>
</tr>"
;

/*Y ahora todos los registros */
while($row mysql_fetch_array($_pagi_result)){
 echo 
"<tr>
   <td> $row[Referencia]</td>
   <td> $row[Tipo]</td>
   <td> $row[Estado]</td>
   <td>$row[Localidad]</td>"
;

// vamos a probar pasandole la referencia a través de un checkbox!
echo "<td>
   <input type=\"radio\" name=\"referencia\" value=\"'.$row[Referencia].'\" />
   </td>
  </tr>"
;
}

echo 
'<p align="center">'.$_pagi_navegacion.'</p>
 <p align=\"center\">
  <input type=\'submit\' name=\'Borrar\' value=\'Borrar\' /></p>'
;

// siempre olvidas cerrar el form
echo "</form>";   
?>
Esta todo bien creo, pero hay algo que falla. No borra!!
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 09:38.