Foros del Web » Programando para Internet » PHP »

borrar y modificar

Estas en el tema de borrar y modificar en el foro de PHP en Foros del Web. hola amigos tengo este codigo ------------------------------administracion.php-------------------------- Código PHP: <HTML> <HEAD> <TITLE>Administracion</TITLE> </HEAD> <BODY> <h1><div align="center">Administracion de los Clientes</div></h1> <br> <br> <? include ( "conexion.php" ); //Mostramos los registros    echo  "<table width='100%' border=1 cellspacing='0' align='center' bordercolor='#000000'>\n" ; ...
  #1 (permalink)  
Antiguo 12/02/2003, 23:19
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
Pregunta borrar y modificar

hola amigos tengo este codigo


------------------------------administracion.php--------------------------
Código PHP:

<HTML>
<HEAD>
<TITLE>Administracion</TITLE>
</HEAD>
<BODY>
<h1><div align="center">Administracion de los Clientes</div></h1>
<br>
<br>

<?
include ("conexion.php");

//Mostramos los registros

  
echo "<table width='100%' border=1 cellspacing='0' align='center' bordercolor='#000000'>\n";

    echo 
"<tr>
              <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>ID</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Nombre</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Apellido</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Direccion</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Telefono</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Diagnostico</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Precio</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Fecha</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>------</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>-------</font></div>
            </td>
        </tr>\n"
;;
        


$lista_colores=array('#4682B4','FF7F50');
$num_colores=2;
$indice=0;

        
        
        

while (
$row=mysql_fetch_array($result))
{

$color=$lista_colores[$indice $num_colores];
$indice++;
 
 
 
 
 
 
  echo 
"<tr bgcolor=\"$color\">
              <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["id"]; echo "</font>
            </td>
              <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_nombre"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_apellido"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_direccion"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_telefono"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_diagnostico"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_precio"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo $row["c_fecha"]; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo Modificar; echo "</font>
            </td>
            <td bgcolor=\"$color\" align='center'>
            <font color='#000000'>"
;echo Borrar; echo "</font>
            </td>
        </tr>\n"
;


}


?>
</table>
</BODY>
</HTML>
1) como veran en cada registro que se genera se agregan a la par el MODIFICAR y el BORRAR lo que quiero es agregarle hipervinculo. intente ponerle <a href="borrar.php">Borrar</a> pero me da un error.
2)que cuando haga click en el borrar de un determinado registro este se borre y la pagina se actualize automaticamente
3) igual que el anterior pero en este caso con MODIFICAR, seguro que me tendra que direccionar a una pagina donde tenga los respectivos EditBox donde colocar los "nuevos" datos.

Desde YA Muchas Gracias!
  #2 (permalink)  
Antiguo 13/02/2003, 07:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
1) .. como pretendias poner ese link q te da "error"? .. Ademmas de indicar borrar.php . deberias indicar tambien el "id" o referencia a borrar.php?id=elquecorresponda ...

2) En tus scripts q tengas de proceso .. sea: borrar.php .. o lo que corresponda a tu acción .. Tan solo tienes que redireccionar a la pápina que contiene eso mismo q estas mostrando aquí en el código.

El redireccionamiento automatíco lo puedes hacer via:
Código PHP:
header("location: pagina.php");
exit; 
3) .. Editar un registro en con los <input> u otros elementos de formulario se trata de usar el campo value= de tus campos input por ejemplo. Es decir:

- haces lo mismo que tienes ahí en este código .. pero usas tus:
Código PHP:
echo "<input type=\"text\"' name=\"loquesea\" value=\"".$row['loquesea']."\">"
(otros elementos de formulario como checkbox .. o listas desplegables .. tienen sus estados checked y select para determiniar si está selecionado o no .. En las FAQ's tienes un ejemplo de esto (úlmas páginas) ..)

Un saludo,
  #3 (permalink)  
Antiguo 13/02/2003, 10:02
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
hola amigos....no eh logrado poner el link.....PHP me arroja el siguiente error
Cita:
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in c:\appserv\www\gestion\administracion.php on line 97
o sea en esta linea:
Cita:

<font color='#000000'>"; echo "<a href="borrar.php?id=$row["id"]">Modificar</a> ; echo "</font>
creo que el problema se debe a estoy poniedo mal HTml dentro de PHP.....eh intentado de varias maneras pero no logro colocarlo bien...si alguien puede ayudarme se lo agradeceria mucho!

Desde Ya Muchas Gracias
  #4 (permalink)  
Antiguo 13/02/2003, 15:01
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 15 años, 1 mes
Puntos: 1
comillas

checa las comillas que llevas dentro del echo son comillas simples
  #5 (permalink)  
Antiguo 16/02/2003, 18:26
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
Modificar

hola amigos....antes que nada gracias a PAYO22 y a CLUSTER por la ayuda.....pero si no es mucha molestia, quisiera que vean un poquito el codigo que estoy haciendo
-------------------------------administracion.php-------------------
Código PHP:
<?
echo <<< HTML
<HTML>
<HEAD>
<TITLE>Visualizacion</TITLE>
</HEAD>
<BODY>
<h1><div align="center">Visualizacion de los Clientes</div></h1>
<br>
<br>
HTML;


//Conexion con la base
mysql_connect("localhost","","");
//Ejecutamos la sentencia SQL
$result=mysql_db_query("inticomp","select * from gestion Order By c_fecha DESC");

//Mostramos los registros

  
echo "<table width='100%' border=1 cellspacing='0' align='center' bordercolor='#000000'>\n";

    echo 
"<tr>
              <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>ID</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Nombre</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Apellido</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Direccion</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Telefono</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Diagnostico</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Precio</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>Fecha</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>------</font></div>
            </td>
            <td bgcolor=#cccccc>
            <div align='center'><font color='#000000'>-------</font></div>
            </td>
        </tr>\n"
;;
        


$lista_colores=array('#4682B4','FF7F50');
$num_colores=2;
$indice=0;

        
        
        

while (
$row=mysql_fetch_array($result))
{

$color=$lista_colores[$indice $num_colores];
$indice++;
 
echo 
"<tr bgcolor=\"$color\">";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[id]</font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[c_nombre]</font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[c_apellido]</font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[c_direccion]</font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[c_telefono]</font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[c_diagnostico]</font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[c_precio]</font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'>$row[c_fecha]</font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'><a href = 'actualizar1.php?id=$row[id]'>Modificar</a></font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'><a href = 'borrar.php?id=$row[id]'>Borrar</a></font></td>";
echo 
" </tr>\n";
}

echo 
"</table>";
mysql_free_result ($result); ///liberamos la memoria
mysql_close(); ////cerramos la conexion
echo <<< HTML
<div align="center">
<a href="insertar.html">Añadir un nuevo registro</a><br>
</div>
</BODY>
</HTML>
HTML;
?>
--------------------------actualizar1.php--------------------------------
Código PHP:
<?php
echo <<< HTML
    <HTML>
    <HEAD>
    <TITLE>Actualizar Cliente</TITLE>
    </HEAD>
    <BODY>
    <div align="center">
    <h1>Actualizar un Cliente</h1>
    <br>
HTML;    

//Conexion con la base
mysql_connect("localhost","","");
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select * From gestion where id='$id'";
$result=mysql_db_query("inticomp",$sSQL);

echo <<< HTML
<br>
<FORM METHOD="POST" ACTION="actualizar2.php">
<table width="122" border="1" cellspacing="2" cellpadding="0">
                    <tr>
                        <td>Nombre</td>
                        <td><input type=\"text\"' name=\"nombre\" value=\"".$row
['c_nombre']."\"></td>
                    </tr>
                    <tr>
                        <td>Apellido</td>
                        <td><INPUT TYPE="TEXT" NAME="apellido"></td>
                    </tr>
                    <tr>
                        <td>Direccion</td>
                        <td><INPUT TYPE="TEXT" NAME="direccion"></td>
                    </tr>
                    <tr>
                        <td>Telefono</td>
                        <td><INPUT TYPE="TEXT" NAME="telefono"></td>
                    </tr>
                    <tr>
                        <td>Diagnostico</td>
                        <td><textarea name="diagnostico" rows="4" cols="40"></textarea></td>
                    </tr>
                    <tr>
                        <td>Precio</td>
                        <td><input type="text" name="precio"  size="10"></td>
                    </tr>
                </table>
<INPUT TYPE="SUBMIT" value="Actualizar">
</FORM>
</div>

</BODY>
</HTML>
HTML;
?>
----------------------------------actualizar2.php---------------------------

Código PHP:
<?php
//Conexion con la base
mysql_connect("localhost","","");
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Update gestion Set c_nombre='$nombre', c_apellido='$apellido', c_direccion='$direccion', c_telefono='$telefono', c_diagnostico='$diagnostico', c_precio='$precio' Where id='$id'";
mysql_db_query("inticomp",$sSQL);
mysql_close();
header("location: lectura.php");
exit;
?>
lo que deseo lograr es que cuando presiono sobre el link "modificar" que tiene cada registro este, me envie a un formulario donde pueda colocar los nuevos datos, y tambien que los EditBox ya esten "seteados" con los antiguos correspientes al registro que seleccione
me da el siguiente error:
Cita:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\appserv\www\inticomp\actualizar1.php on line 25
o sea sobre la siguiente linea....eh tratado de usar lo que me dijo cluster pero en vano:
Cita:
<td><input type=\"text\"' name=\"nombre\" value=\"".$row['c_nombre']."\"></td>
si alguien puede ver el codigo y decirme cual puede ser el error se lo agradece mucho.

Desde Ya Muchas Gracias!
  #6 (permalink)  
Antiguo 16/02/2003, 18:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si usas "Heredoc" (echo <<<HTML .. HTML;) No hace falta q te compliques con "escapar" las comillas .. tampoco usar . (punto) de concatenación.

Código PHP:
<td><input type="text" name="nombre" value="$row['c_nombre']"></td
Si lo usases en un echo simple si que te haría falta concatenar (usar el .punto) y \ para las comillas dobles ...

Te recomiendo q leas bien como se trabaja con "heredoc"
http://www.php.net/manual/en/language.types.string.php

Un saludo,
  #7 (permalink)  
Antiguo 16/02/2003, 19:13
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
Gracias Cluster.....Aprendi bastante.....esta exelente usar HEREDOC te ayuda bastante en la programacion.....ahhh y tampoco parece que hacen faltan las comillas simples.....quedaria asi:
Cita:
<td><input type="text" name="nombre" value="$row[c_nombre]"></td>
  #8 (permalink)  
Antiguo 16/02/2003, 20:33
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
no logro modificar el registro deseado

hola amigos....hasta no hay ningun error de sintaxis....pero tengo un pequeño GRAN problema....cuando coloco los nuevos datos en el formulario estos no se modifican....y tampoco muestra error de sintaxis......en cambio cuando le saco la condicion
Código PHP:
$sSQL="Update gestion Set c_nombre='$nombre', c_apellido='$apellido', c_direccion='$direccion', c_telefono='$telefono', c_diagnostico='$diagnostico', c_precio='$precio' Where id='$id' "
o sea cuando le saco la condicion:
Cita:
Where id='$id'
se mofifican TODOS los registros!!!.....sera que no paso la variable id correctamente.......o que estoy haciendo mal???

Desde YA muchas Gracias!
  #9 (permalink)  
Antiguo 16/02/2003, 22:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
1) Revisa q tu $id tenga valor antes de atacar tu $sql .. y q el "ID" q salga exista en tu tabla (de tu BD) q lo use

2) Usa
mysql_db_query("inticomp",$sSQL) or die(mysql_error());

Usa el "or die ...." en todas las mysql_db_query o mysql_query .. e incluso en los _connect . etc. Con eso Mysql te informará de errores de tu SQL .. los cuales "pasan" por PHP si no se especifica q se muestren.

3) Revisa esto:

Código PHP:
echo "<td bgcolor=\"$color\" align='center'><font color='#000000'><a href = 'actualizar1.php?id=$row[id]'>Modificar</a></font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'><a href = 'borrar.php?id=$row[id]'>Borrar</a></font></td>";
echo 
" </tr>\n"
Si usas comillas simples en un echo .. lo q esté entre comillas simples NO se va a Interpretar por PHP .. Fijate en el link q se genera (viendo tu código HTML q se genera ver código -> .. o bien en la barra de tareas .. ahi veras si el $row[id] se genera correctamente o pone eso textualmente ... y no se interpreta ..

Usa comillas dobles .. pero escapadas \" ....

Código PHP:
echo "<td bgcolor=\"$color\" align='center'><font color='#000000'><a href = \"actualizar1.php?id=$row[id]\">Modificar</a></font></td>";
echo 
"<td bgcolor=\"$color\" align='center'><font color='#000000'><a href = \"borrar.php?id=$row[id]\">Borrar</a></font></td>";
echo 
" </tr>\n"
Consejo:
O repasas bien la sintax de PHP y haces tus pruebas FIJANDOTE bien lo q sucede al usar comillas dobles . o simples en un echo .. o usando heredoc .. etc .. O presta mas atención al HTML q debería generarte tu -pagjna- . Piensa que PHP "pre-procesa" la pagina en el servidor generando "dinamicamente" todo HTML/javascript/etc q vas a entregar al cliente (al navegador) .. Con eso claro y PRESTANDO ATENCION a lo q haces creo q tu mismo podras ir averigüando tus propios errores de "parser" o de mal uso de algunas funciones.


Un saludo,
  #10 (permalink)  
Antiguo 17/02/2003, 00:07
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
hola de nuevo.....el id que es enviando aqui:
id=$row[id]
llega a un scripts que se llama actualizar1.php, en donde se encuentra el formulario que contiene los EditBox para modificar los "nuevos" datos.....ahora como puedo hacer para que desde el formulario me envie el mismo id hacia el scripts que se llama actualizar2.php que contiene esto:
Código PHP:
<?php
//Conexion con la base
mysql_connect("localhost","","");
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Update gestion Set c_nombre='$nombre', c_apellido='$apellido', c_direccion='$direccion', c_telefono='$telefono', c_diagnostico='$diagnostico', c_precio='$precio' Where id='$id'";
mysql_db_query("inticomp",$sSQL) or die(mysql_error());
echo 
"$id";
mysql_close();
header("location: lectura.php");
exit;
?>
Desde Ya Muchas Gracias!
  #11 (permalink)  
Antiguo 17/02/2003, 14:35
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

En el formulario de actualizar1.php crea un campo hidden con el valor de id y llamalo id.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #12 (permalink)  
Antiguo 29/04/2004, 11:45
 
Fecha de Ingreso: enero-2004
Ubicación: Colombia
Mensajes: 80
Antigüedad: 13 años, 11 meses
Puntos: 0
JOSEMI: respecto a este caso, el campo hidden quedaria de lasiguiente manera: <td><input type="hidden" name="id" value=.$'id'.></td>
Este campo va includio dentro del form?
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 12:48.