Foros del Web » Programando para Internet » PHP »

URGENTE AYUDA... con php mysql update

Estas en el tema de URGENTE AYUDA... con php mysql update en el foro de PHP en Foros del Web. Hola alguien sabe que esta mal en el codigo por que no me ACTUALIZA bien la base de datos en mysql <html> <title></title> <head> <LINK ...
  #1 (permalink)  
Antiguo 11/05/2005, 12:05
Avatar de flesh 'n bone  
Fecha de Ingreso: mayo-2005
Ubicación: Aqui y alla
Mensajes: 91
Antigüedad: 18 años, 11 meses
Puntos: 0
URGENTE AYUDA... con php mysql update

Hola alguien sabe que esta mal en el codigo por que no me ACTUALIZA bien la base de datos en mysql


<html>
<title></title>
<head>
<LINK REL="stylesheet" type="text/css" HREF="estilo.css">
</head>
<body bgcolor=black>
<body>
<form method="post" action="<?php echo $PHP_SELF ?>">
<?
//
?>
<?php
// conexion para postgres
// $conn=pg_connect("dbname=nombre de la base de datos");
//sentencia sql

//conexion con el servidor
$conn = mysql_connect("localhost","root","") OR die("No hay conexión con la base de datos");
//conexion con
//$res=mysql_exec($conn,$query);
mysql_select_db("prog",$conn);

$sql="Select * from tv where programa LIKE '%$programa%'";

$resul = mysql_query($sql,$conn);

if($resul){

echo "<table align=center border=30>";

while($row = mysql_fetch_array($resul))

/*Esta sentencia se puede usar en vez del fetch_array
$resultado = mysql_query("SELECT * FROM tv WHERE programa='$programa' ORDER BY fecha") or die('Ocurrió un error mientras se realizaba la consulta. Error: '.mysql_error());
cerrar_bd();
while($fila = mysql_fetch_assoc($resultado)) {
echo $fila['hora'];//hora del programa
echo $fila['programa'];//nombre del programa
}
*/


{
$a="Eliminar Registro";
$b=chop($a);
$f=$row[fecha];
$f1=chop($f);
$h=$row[hora];
$h1=chop($h);
$p=$row[programa];
$p1=chop($p);
$c=$row[clave];
$c1=chop($c);
$co=$row[concepto];
$co1=chop($co);
$s=$row[stat];
$s1=chop($s);
$fi=$row[inicio];
$fi1=chop($fi);
$ft=$row[termino];
$ft1=chop($ft);
$cob=$row[cobro];
$cob1=chop($cob);

echo " <pre>";
echo " <tr><th>Fecha:</th><td><input type=text value='$f1' name=fecha ></td></tr><br>";
echo " <tr><th>Hora:</th><td><input type=text value='$h1' name=hora ></td></tr><br>";
echo " <tr><th>Programa:</th><td><input type=text value='$p1' name=programa maxlenght='$p1'></td></tr><br>";
echo " <tr><th>Clave:</th><td><input type=text value='$c1'] name=clave></td></tr><br>";
echo " <tr><th>Concepto:</th><td><input type=text value='$co1' name=concepto ></td></tr><br>";
echo " <tr><th>Status:</th><td><input type=text value='$s1' name=stat ></td></tr><br>";
echo " <tr><th>Fecha de inicio:</th><td><input type=text value='$fi1' name=inicio ></td></tr><br>";
echo " <tr><th>Fecha de Termino:</th><td><input type=text value='$ft1' name=termino></td></tr><br>";
echo " <tr><th>Cobro:</th><td><input type=text value='$cob1' name=cobro></td></tr><br>";

echo " <tr><td><center><input type=Submit name=mod value=Modificar></center></td>";
echo " ";
echo " <td><input type=Reset name=Eliminar value='$b'></td></tr>";

echo " </pre>";
echo " <hr width=70%>";


}
echo "</table>";
}

if(isset($fecha)&& isset($hora) && isset($programa) && isset($clave) && isset($concepto) && isset($stat) && isset($inicio) && isset($termino) && isset($cobro))
{
if ( $mod )
{
$sql1 ="UPDATE tv Set fecha= '$fecha', hora= '$hora', programa= '$programa', clave= '$clave', concepto= '$concepto', stat= '$stat', inicio= '$inicio', termino= '$termino', cobro= '$cobro' WHERE fecha='$f1' AND hora='$h1' AND programa='$p1' AND clave='$c1' AND concepto='$co1' AND stat='$s1' AND inicio='$fi1' AND termino='$ft1' AND cobro='$cob1'";
$z=mysql_query($sql1,$conn);
if($z){
echo "<font color=gold>los datos se han actualizado</font>";
}
}

if ( Eliminar )
{
}

?>

<h2><center>Buscar Programa</center></h2>
<pre>
<?
//<select name=area>
//<option></option>
//<option></option>
//<option></option>
//</select> <br><br>
?>

<input type=text name=programa size=50 maxlength=60>
<input type=Submit value=Consultar>
</pre></form>
<p><a href="aplicacion.php">Regresar</a></p>

</body>
</html>

Saludos y gracias
  #2 (permalink)  
Antiguo 11/05/2005, 14:21
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Ok quiero hacerte unas preguntas:
1- Tu actualizas despues que esos datos fueron editados por medio de un formulario y entonces editas.
2- Porque haces tandos condicionales:
WHERE fecha='$f1' AND hora='$h1' AND programa='$p1' AND clave='$c1' AND concepto='$co1' AND stat='$s1' AND inicio='$fi1' AND termino='$ft1' AND cobro='$cob1'";

Si diciendo solamente el id de lo que quieres cambiar basta??
$sql1 ="UPDATE tv Set fecha= '$fecha', hora= '$hora', programa= '$programa', clave= '$clave', concepto= '$concepto', stat= '$stat', inicio= '$inicio', termino= '$termino', cobro= '$cobro' WHERE id = '$id';
  #3 (permalink)  
Antiguo 12/05/2005, 09:17
Avatar de flesh 'n bone  
Fecha de Ingreso: mayo-2005
Ubicación: Aqui y alla
Mensajes: 91
Antigüedad: 18 años, 11 meses
Puntos: 0
OK.
1.- los datos los actualizo yo, despues de haberlos introducido en un formulario.
2.- puse varios condicionales porque pense que al mandar de nuevo los valores de los text que estan en el formulario consultado no alteraria el contenido previo de la bd.

Gracias , voy a checar lo del id anexandolo a la bd y poniendo el foco (where) en el id.

quiero hacerte una pregunta, sabes como leer datos remotos que esten en una web, si es asi, dime como le hago, yo solo se como leer el titulo de una web pero no como hacerle para leer mas datos ahi mostrados para que un formulario los lea automaticamente y solamente puchar el boton "guardar" para mandarlos a la bd, este es el codigo que tengo para leer el titulo.

<?php

$file = fopen ("http://www.algo.com", "r");
if (!$file) {
echo "<p>Unable to open remote file.\n";
exit;
}
while (!feof ($file)) {
$line = fgets ($file, 1024);
/* This only works if the title and its tags are on one line */
if (eregi ("<tbody>(.*)</tboby>", $line, $out)) {
$title = $out[1];
break;
}
}
echo $title;
fclose($file);
?>

Saludos,
flesh 'n bone
  #4 (permalink)  
Antiguo 12/05/2005, 09:22
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Bueno solo puedo decirte que la limitante que tiene funcion que busca por expresiones regulares solo busca por una linea.
eregi ("<tbody>(.*)</tboby>", $line, $out)

ejemplo:
<title>Titulo</title>

Como esta en una sola linea lo muestra, pero si estuviera:
<title>
Titulo
</title>

Pues ya no lo mostrara.
  #5 (permalink)  
Antiguo 12/05/2005, 09:25
Avatar de flesh 'n bone  
Fecha de Ingreso: mayo-2005
Ubicación: Aqui y alla
Mensajes: 91
Antigüedad: 18 años, 11 meses
Puntos: 0
una pregunta y si el dato estuviera en una linea pero dentro de una tabla?, se podria hacer de todos modos?

Saludos
  #6 (permalink)  
Antiguo 12/05/2005, 09:28
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Si esta en una linea dentro de <td> solo pones:
eregi ("<td>(.*)</td>", $line, $out)

y te devolvera todo lo que este dentro de ese td y si haces un bucle que recorre la pagina entonces te mostara todas la informacion que mantenga esa estructura.
  #7 (permalink)  
Antiguo 12/05/2005, 09:30
Avatar de flesh 'n bone  
Fecha de Ingreso: mayo-2005
Ubicación: Aqui y alla
Mensajes: 91
Antigüedad: 18 años, 11 meses
Puntos: 0
muchas gracias lo probare
  #8 (permalink)  
Antiguo 12/05/2005, 10:18
Avatar de flesh 'n bone  
Fecha de Ingreso: mayo-2005
Ubicación: Aqui y alla
Mensajes: 91
Antigüedad: 18 años, 11 meses
Puntos: 0
pregunta acerca del update, donde esta el query de la consulta.

$sql="Select * from tv where programa LIKE '%$programa%'";

El Like sirve para arrojar datos de los cuales no se conozca el nombre completo o para no escribirlo todo, la pregunta es como se le hace para que el LIKE no afecte otras rows de la bd, puesto que al hacerlo de este modo, altera otros registros en donde exista por lo menos una letra de la que ocupe para la hacer consulta.
  #9 (permalink)  
Antiguo 12/05/2005, 10:18
Avatar de flesh 'n bone  
Fecha de Ingreso: mayo-2005
Ubicación: Aqui y alla
Mensajes: 91
Antigüedad: 18 años, 11 meses
Puntos: 0
pregunta acerca del update, donde esta el query de la consulta.

$sql="Select * from tv where programa LIKE '%$programa%'";

El Like sirve para arrojar datos de los cuales no se conozca el nombre completo o para no escribirlo todo, la pregunta es como se le hace para que el LIKE no afecte otras rows de la bd, puesto que al hacerlo de este modo, altera otros registros en donde exista por lo menos una letra de la que ocupe para la hacer consulta.

Saludos,
flesh 'n bone
  #10 (permalink)  
Antiguo 12/05/2005, 10:20
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
El like solo se usa para extraer datos dependiendo a un guia de texto.
Para hacer updates y borras datos se usan los id ya que son unicos y no abra error, un id unico quiere decir que no existira en toda la base de datos 2 datos con una misma id si tienes configurado que esa id sea primary key y que se autoincremente.
  #11 (permalink)  
Antiguo 12/05/2005, 10:25
Avatar de flesh 'n bone  
Fecha de Ingreso: mayo-2005
Ubicación: Aqui y alla
Mensajes: 91
Antigüedad: 18 años, 11 meses
Puntos: 0
Aqui ya corregi el error de antes y altera de todavia la bd aunque el id se auto incrementa y ademas es primary key

if ( $mod )
{
$sql1 ="UPDATE tv Set fecha= '$fecha', hora= '$hora', programa= '$programa', clave= '$clave', concepto= '$concepto', stat= '$stat', inicio= '$inicio', termino= '$termino', cobro= '$cobro' WHERE id='$id' ";
$z=mysql_query($sql1,$conn);
if($z){
echo "<font color=gold>los datos se han actualizado</font>";
}
}
  #12 (permalink)  
Antiguo 12/05/2005, 10:27
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
bueno si quieres esta linea:
$z=mysql_query($sql1,$conn);
if($z){
echo "<font color=gold>los datos se han actualizado</font>";
}

puedes ponerla asi
if(mysql_query($sql1,$conn)){
echo "<font color=gold>los datos se han actualizado</font>";
}
  #13 (permalink)  
Antiguo 12/05/2005, 10:33
Avatar de flesh 'n bone  
Fecha de Ingreso: mayo-2005
Ubicación: Aqui y alla
Mensajes: 91
Antigüedad: 18 años, 11 meses
Puntos: 0
El error sale en la actualizacion de la bd me cambio dos registros, en uno borro el nombre del programa y en el otro registro puso lo que yo puse en la caja de texto para buscar el programa, nose si todavia tengo algo mal en el codigo:

if ( $mod )
{
$sql1 ="UPDATE tv Set fecha= '$fecha', hora= '$hora', programa= '$programa', clave= '$clave', concepto= '$concepto', stat= '$stat', inicio= '$inicio', termino= '$termino', cobro= '$cobro' WHERE id='$id' ";
$z=mysql_query($sql1,$conn);
}
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 15:10.