Foros del Web » Programando para Internet » PHP »

ayuda para modificar tabla

Estas en el tema de ayuda para modificar tabla en el foro de PHP en Foros del Web. hola denuevo.. tengo el siguiente codigo Código PHP: </tr> <?  foreach ( $datos  as  $us )  { ?> <tr>       <td align="center"> <?=$us [ 'id' ]; ?> </td> ...
  #1 (permalink)  
Antiguo 24/06/2005, 14:25
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 13 años, 1 mes
Puntos: 0
ayuda para modificar tabla

hola denuevo..

tengo el siguiente codigo

Código PHP:
</tr>
<? foreach ($datos as $us
{
?>
<tr>  
    <td align="center"><?=$us['id'];?></td>
    <td align="center"><?=$us['n_matricula'];?></td>
    <td align="center"><?=$us['alumno_nom'];?> <?=$us['alumno_apell'];?></td>
    <td align="center"><input name="sol1" type="text" size="1" value="<?=$us['sol1'];?>"></td>
  <td align="center"><input name="sol2" type="text" size="1" value="<?=$us['sol2'];?>"></td>
    <td align="center"><input name="ctrl1" type="text" size="1" value="<?=$us['ctrl1'];?>"></td>
    <td align="center"><input name="ctrl2" type="text" size="1" value="<?=$us['ctrl2'];?>"></td>
    <td align="center"><input name="ctrl3" type="text" size="1" value="<?=$us['ctrl3'];?>"></td>
    <td align="center"><input name="ctrl4" type="text" size="1" value="<?=$us['ctrl4'];?>"></td>
    <td align="center"><input name="examen" type="text" size="1" value="<?=$us['examen'];?>"></td>
</tr>
<?}?>
</table>
<input type="button" value="Actualizar" onclick="<?$exito=modifica_datos_usuario($valorsol1.valuesol2.valuectrl1.valuectrl2.valuectrl3.valuectrl4.valueexamen.value$matricula );?>">
este es el codigo de la funcion:
Código PHP:
<?php 
function modifica_datos_usuario($ramo$sol1$sol2$ctrl1$ctrl2$ctrl3$crl4$examen$matricula$nombre)
{
    global 
$db;
      
    
$upd "UPDATE $ramo SET sol1='$sol1',sol2 = '$sol2' ,ctrl1 = '$ctrl1', ctrl2 = '$ctrl2', ctrl3 = '$ctrl3', ctrl4 = '$ctrl4' examen = '$examen' WHERE n_matricula='matricula'";
    
$res mysql_query($upd,$db);
  if(!
$res)
    {
    echo 
mysql_error() . " : " mysql_errno();
        return(
0);
    }
  return(
1);
}
?>
supuestamete al presionar en actualiar deberia actualizar la tabla con los nuevo valores dados en los input text...pero al apretarlo los valores siguen iguales...
k esta mal ??

esop grax

Última edición por dark_night; 24/06/2005 a las 16:14
  #2 (permalink)  
Antiguo 24/06/2005, 19:42
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 13 años, 1 mes
Puntos: 0
nadie??? :(
  #3 (permalink)  
Antiguo 24/06/2005, 20:06
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 13 años, 11 meses
Puntos: 2
Estas usando un evento onClick (JavaScript), a PHP, y no veo el formulario (la etiqueta form) por ningún lado. PHP trabaja en el lado del servidor, así q es ahí donde debes de enviar la página, para q se ingresen los datos a la DB y volver a traerla.
Tu solución podría ser meter los datos dentro de form, algo así:
Código PHP:
if(!isset($enviar)){
<form action=<?=$_SERVER['PHP_SELF'];?> method="POST">
todos los input q quieras
<input type="submit" name=enviar value="Actualizar datos">
}else{
$upd = "UPDATE $ramo SET sol1='$sol1',sol2 = '$sol2' ,ctrl1 = '$ctrl1', ctrl2 = '$ctrl2', ctrl3 = '$ctrl3', ctrl4 = '$ctrl4' examen = '$examen' WHERE n_matricula='$matricula'";
    $res = mysql_query($upd,$db);
echo "los datos se han actualizado con éxito";
//aquí deberás de realizar una nueva consulta para mostrar los datos
$consulta = "SELECT * FROM tu_tabla WHERE n_matricula = '$matricula'";
$q = mysql_db_query($dbname,$consulta) or die($consulta."<br>".mysql_error());
$row = mysql_fetch_array($q);
echo $row['sol1'];
echo $row['sol2'];
etc
}
Saludos cuidate
PD: Todo orientativo, nada probado, chequea q esten bien las comillas y demás
__________________
Dios dira que esto no es justo, pero lo sera...
  #4 (permalink)  
Antiguo 24/06/2005, 21:08
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 13 años, 1 mes
Puntos: 0
gracias el kodigo kedo asi

Código PHP:
<?require("conexion_mysql.inc");
 require(
"funcion_modificar.inc");
 require(
"funcion_mostrar.inc");
 
   
session_start(); 
   if (!isset(
$_SESSION['nombre'],$_SESSION['usuario']))
      {
      
$mensaje="usuario no inicio sesion";
      
header("Location:index_js.php?mensaje=$mensaje");
      exit;
      }

$db conectar_base_datos();
$ret = array();
$consulta="SELECT * FROM $valor WHERE n_matricula = '$matricula' AND profe_nom = '$nombre'";
$resmysql_query($consulta$db);
while(
$fila mysql_fetch_array($res)) {
      
$ret[] = $fila; }
        
$datos=$ret;

if(!isset(
$enviar)){ ?>
<html>
<head>
<title></title>
</head>
<body>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST">  
<table border="1">
<tr>
  <td>id</td>
    <td>nº Matricula</td>
    <td>Alumno</td>
    <td>sol 1</td>
  <td>sol 2</td>
    <td>ctrl 1</td>
    <td>ctrl 2</td>
    <td>ctrl 3</td>
    <td>ctrl 4</td>
    <td>Examen</td>
</tr>
<? foreach ($datos as $us
{
?>
<tr>  
    <td align="center"><?=$us['id'];?></td>
    <td align="center"><?=$us['n_matricula'];?></td>
    <td align="center"><?=$us['alumno_nom'];?> <?=$us['alumno_apell'];?></td>
    <td align="center"><input name="sol1" type="text" size="1" value="<?=$us['sol1'];?>"></td>
  <td align="center"><input name="sol2" type="text" size="1" value="<?=$us['sol2'];?>"></td>
    <td align="center"><input name="ctrl1" type="text" size="1" value="<?=$us['ctrl1'];?>"></td>
    <td align="center"><input name="ctrl2" type="text" size="1" value="<?=$us['ctrl2'];?>"></td>
    <td align="center"><input name="ctrl3" type="text" size="1" value="<?=$us['ctrl3'];?>"></td>
    <td align="center"><input name="ctrl4" type="text" size="1" value="<?=$us['ctrl4'];?>"></td>
    <td align="center"><input name="examen" type="text" size="1" value="<?=$us['examen'];?>"></td>
</tr>
<?}?>
</table> 
<input type="submit" name="enviar" value="Actualizar datos"> 
<?}
else

$upd "UPDATE $ramo SET sol1='$sol1',sol2 = '$sol2' ,ctrl1 = '$ctrl1', ctrl2 = '$ctrl2', ctrl3 = '$ctrl3', ctrl4 = '$ctrl4' examen = '$examen' WHERE n_matricula='$matricula'"
    
$res mysql_query($upd,$db); 
echo 
"los datos se han actualizado con éxito"
?>
</body>
</html>
el problema es ke parece ke al recargar la pagina con al precionar el actualizar no se estan remandando los datos k recive en un comienzo y no actualiza la bd.
se puede hacer ke al actualizar la tabla mande un alert en ves de un mensaje en html y cierre la pag??

asi kdaria perfecto

grax

Última edición por dark_night; 24/06/2005 a las 21:19
  #5 (permalink)  
Antiguo 25/06/2005, 04:10
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por dark_night
el problema es ke parece ke al recargar la pagina con al precionar el actualizar no se estan remandando los datos k recive en un comienzo y no actualiza la bd.
Más bien que no los recibes... haz uso de variables globales: http://www.forosdelweb.com/showthrea...989#post238989

Puedes hacer una asignación previa:
Código PHP:
$var=$_POST['var']; 
ó dentro de la misma cadena (tu query):
Código PHP:
$query=" BLABLALA '".$_POST['var']."', ..etc"
www.php.net/variables.external

Cita:
se puede hacer ke al actualizar la tabla mande un alert en ves de un mensaje en html y cierre la pag??
Si, se puede... y eso es JavaScript... pero podrías ayudarte de PHP para detectar cuando se actualiza (para no usar cookies)... por ejemplo, un campo del formulario (que creo ya tienes identificada esa acción):
Código PHP:
if(isset($_POST['campo'])) {
echo 
"<script>alert('BBBBUUUUUU!!!!!'); window.close();</script>";

Consulta --de ser necesario-- el foro de JS (ve las FAQ) sobre esto último...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 25/06/2005, 11:17
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 13 años, 1 mes
Puntos: 0
ok lo de js lo veo despues, cuando ya este todo funcionando..
el problema es ke en la pag anterior a esta

estoy mandando dos variables asi

Código PHP:
<input type="button" name="Editar" value="Editar" onclick="window.open('modificar.php?matricula=<?=$us['n_matricula'];?>&valor=<?=$valor?>')">
lei el link ke me mandaste pero no entendi mucho :p, como las recivo para ke al presionar el boton y recarge la pag no se pierdan ??
  #7 (permalink)  
Antiguo 25/06/2005, 17:01
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 13 años, 1 mes
Puntos: 0
ayuda plz :(
  #8 (permalink)  
Antiguo 26/06/2005, 03:49
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
El botón que muestras solo debe abrirte un pop-up (no sé por qué mencionas "recargar"). Estás pasando parámetros por URL, entonces debes recojer con $_GET.

Ejemplo: Si mi URL es pagina.php?saludo=Hola&despedida=Adios, entonces en pagina.php puedo tener:
Código PHP:
echo $_GET['saludo']; //imprimirá "Hola"
echo $_GET['despedida']; // Imprimirá "Adios" 
Espero te quede un poco más claro.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 26/06/2005, 09:59
 
Fecha de Ingreso: octubre-2004
Ubicación: chile
Mensajes: 116
Antigüedad: 13 años, 1 mes
Puntos: 0
el codigo esta asi

Código PHP:
<?require("conexion_mysql.inc");
 require(
"funcion_modificar.inc");
 require(
"funcion_mostrar.inc");
 
   
session_start(); 
   if (!isset(
$_SESSION['nombre'],$_SESSION['usuario']))
      {
      
$mensaje="usuario no inicio sesion";
      
header("Location:index_js.php?mensaje=$mensaje");
      exit;
      }

$db conectar_base_datos();
$ret = array();

if(!isset(
$enviar)){ 

$consulta="SELECT * FROM $valor WHERE n_matricula = '$matricula' AND profe_nom = '$nombre'";
$resmysql_query($consulta$db);
while(
$fila mysql_fetch_array($res)) {
      
$ret[] = $fila; }
        
$datos=$ret;?>

<html>
<head>
<title></title>
</head>
<body>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST">  
<table border="1">
<tr>
  <td>id</td>
    <td>nº Matricula</td>
    <td>Alumno</td>
    <td>sol 1</td>
  <td>sol 2</td>
    <td>ctrl 1</td>
    <td>ctrl 2</td>
    <td>ctrl 3</td>
    <td>ctrl 4</td>
    <td>Examen</td>
</tr>
<? foreach ($datos as $us
{
?>
<tr>  
    <td align="center"><?=$us['id'];?></td>
    <td align="center"><?=$us['n_matricula'];?></td>
    <td align="center"><?=$us['alumno_nom'];?> <?=$us['alumno_apell'];?></td>
    <td align="center"><input name="sol1" type="text" size="1" value="<?=$us['sol1'];?>"></td>
  <td align="center"><input name="sol2" type="text" size="1" value="<?=$us['sol2'];?>"></td>
    <td align="center"><input name="ctrl1" type="text" size="1" value="<?=$us['ctrl1'];?>"></td>
    <td align="center"><input name="ctrl2" type="text" size="1" value="<?=$us['ctrl2'];?>"></td>
    <td align="center"><input name="ctrl3" type="text" size="1" value="<?=$us['ctrl3'];?>"></td>
    <td align="center"><input name="ctrl4" type="text" size="1" value="<?=$us['ctrl4'];?>"></td>
    <td align="center"><input name="examen" type="text" size="1" value="<?=$us['examen'];?>"></td>
</tr>
<?}?>
</table> 
<input type="submit" name="enviar" value="Actualizar datos"> 
<?}
else

$upd "UPDATE $valor SET sol1='$sol1',sol2 = '$sol2' ,ctrl1 = '$ctrl1', ctrl2 = '$ctrl2', ctrl3 = '$ctrl3', ctrl4 = '$ctrl4' examen = '$examen' WHERE n_matricula='$matricula'"
    
$res mysql_query($upd,$db); 
echo 
"los datos se han actualizado con éxito"
?>
</body>
</html>
la del final(para actualizar la tabla) consulta no se realiza me da el siguiente error:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET sol1='10',sol2 = '30' ,ctrl1 = '60', ctrl2 = '50', ctrl3 = : 1064

k esta mal ?? k puede ser?
esop grax

Última edición por dark_night; 26/06/2005 a las 11:01
  #10 (permalink)  
Antiguo 26/06/2005, 16:18
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 13 años, 11 meses
Puntos: 2
Concadena la consulta y prueba a ver q pasa:
$consulta="SELECT * FROM $valor WHERE n_matricula = '".$matricula."' AND profe_nom = '".$nombre."'";
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #11 (permalink)  
Antiguo 27/06/2005, 02:52
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... ¿de dónde sale $valor?... veo que lo ocupas en ambas consultas más no que le asignes un valor...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 22:04.