problema update en php

Iniciado por viher, 5 Noviembre 2010, 16:23 PM

0 Miembros y 5 Visitantes están viendo este tema.

viher

hola,estoy haciendo un sistema para editar el contenido de mi web,tengo el siguiente code que no me da error pero no me modifica los datos:

principal
Código (php) [Seleccionar]
<p align="center"><?php
   
include("config.php");
   
$link=Conectarse();
   
$result=mysql_query("select * from videos order by id desc",$link);
?>

<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1 align="center">
      <TR><TD>&nbsp;<B>Nombre</B></TD> <TD>&nbsp;<B>ID</B>&nbsp;</TD> <TD>&nbsp;&nbsp;</TD></TR>
<?php      
   
while($row mysql_fetch_array($result)) {
   $id $row["id"];
      
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td><b><a href='editar_video.php?id=$id'>Editar</a></b></td></tr>"$row["nombre"],$row["id"]);
   }
   
mysql_free_result($result);
   
mysql_close($link);
?>

</table> </p>


editar_video.php
Código (php) [Seleccionar]
<html>
<head>
   <title>Enviar video</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body {
background-color: #FCF;
}
</style>
</head>
<body><h1 align="center">Editar video</h1>
<p>
  <?
   include("config.php");
$id=$_GET['id'];
  $link=Conectarse();
   $result=mysql_query("select * from videos WHERE id=$id",$link);
   while($row = mysql_fetch_array($result)) {
   $id = $row["id"];
   $nombre = $row["nombre"];
   $embed = $row["embed"];
   $img = $row["img"];
   $dur = $row["dur"];
   $porn1 = $row["porn1"];
   $porn2 = $row["porn2"];
   $cat1 = $row["cat1"];
   $cat2 = $row["cat2"];
   }
   mysql_free_result($result);
   mysql_close($link);
?>
</p>
   <form name="form1" method="post" action="editado.php">
       <p>Nombre del video:
       <input name="nombre" type="text" value="<? echo $nombre ?>" size="40" maxlength="40" />
     </p>
       <p>Código embed del video:
         <label>
           <br>
           <textarea name="textarea" id="textarea" cols="45" rows="5"><? echo $embed ?></textarea>
         </label>
       </p>
       <p>Ruta de la imagen del video:
         <input name="img" type="text" value="<? echo $img ?>" size="50" />
     </p>
       <p>Duración del video:
         <input name="dur" type="text" value="<? echo $dur ?>" size="20" />
     </p>
       <p>Pornstar 1:
         <input name="porn1" type="text" value="<? echo $porn1 ?>" size="40" />
     </p>
       <p>Pornstar 2:
         <input name="porn2" type="text" value="<? echo $porn2 ?>" size="40" />
     </p>
       <p>Categoría del video:
         <label for="select"></label>
         <input name="cat1" type="text" value="<? echo $cat1 ?>" size="40" />
       </p>
       <p>Subcategoría del video:       
         <input name="cat2" type="text" value="<? echo $cat2 ?>" size="40" />
       </p>
       <p>
         <input type="submit" value="Actualizar" name="ir"/>
       </p>
</form>
</body>
</html>


editado.php
Código (php) [Seleccionar]
<html>
<head>
   <title>Enviar video</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
body {
background-color: #FCF;
}
</style>
</head>
<body><h1 align="center">Editar video</h1>
<?
  $host="localhost";
$user="userpass";
$db="bd";

        //Aqui recibimos las variables a actualizar

   $id=$_POST['id'];
   $porn1=$_POST['porn1'];
   $porn2=$_POST['porn2'];
   $nombre=$_POST['nombre'];
   $embed=$_POST['embed'];   
   $cat=$_POST['cat'];
   $cat2=$_POST['cat2'];
   $img=$_POST['img'];
   $dur=$_POST['dur']." minutos";

        //Creamos la conexión

        $link = mysql_connect($host, $user, $passwd);
mysql_select_db($db, $link);

        //aqui preguntamos si hicieron click en el boton actualizar
        if($_POST['ir']=="Actualizar")
       {
              $sql=mysql_query("update [/videos] set nombre='$nombre', embed='$embed', img='$img', cat1='$cat1', cat2='$cat2', porn1='$porn1', porn2='$porn2', dur='$dur' where [/id]='$id'",$link);
              echo "Actualizado correctamente";
        }
       else
       {
           echo "Error al editar el video.";
        }
?>
</body>
</html>


que es lo que está mal? gracias

seele

primero que nada... tienes los errores de php activos?
agrega los errores de mysql_error() tambien supongo que viene por ahi el asunto

saludos

viher

no me da ningún error despues de usar  mysql_error();

seele

llegan bien las variables por $_POST, has un print_r

print_r($_POST);

xassiz~

Ese [/videos] es un error al postear el code no?

Código (php) [Seleccionar]

if(isset($_POST['ir'])
{
              $sql=mysql_query("UPDATE videos set nombre='$nombre', embed='$embed', img='$img', cat1='$cat1', cat2='$cat2', porn1='$porn1', porn2='$porn2', dur='$dur' where id='$id'",$link);
              echo "Actualizado correctamente";
}


Y deberías escapar todas esas variables con mysql_real_escape_string().

Saludos ;)

viher

#5
aqui tengo el codigo

Código (php) [Seleccionar]
<?
  $host="localhost";
$user="user";
$passwd="pass";
$db="bd";
        //Aqui recibimos las variables a actualizar
   $id=$_GET['id'];
   $porn1=$_POST['porn1'];
   $porn2=$_POST['porn2'];
   $nombre=$_POST['nombre'];
   $embed=$_POST['embed'];   
   $cat=$_POST['cat'];
   $cat2=$_POST['cat2'];
   $img=$_POST['img'];
   $dur=$_POST['dur']." minutos";
        //Creamos la conexión
        $link = mysql_connect($host, $user, $passwd);
mysql_select_db($db, $link);
              $sql=mysql_query("UPDATE videos set nombre='$nombre', embed='$embed', img='$img', cat='$cat', cat2='$cat2', porn1='$porn1', porn2='$porn2', dur='$dur's where id='$id'",$link);
              echo "Actualizado correctamente<br>";
  echo $id."<br>";
  echo $nombre."<br>";
  echo $img."<br>";
  echo $cat."<br>";
  echo $cat2."<br>";
  echo $dur."<br>";
  echo $porn1."<br>";
  echo $porn2."<br>";
  echo "<h2 align=center><a href=index.php?id=edit>Editar otro video</a></h2>";
?>


el problema es que solo me actualiza los registros $nombre y $dur, todos los demás me los actualiza en blanco,a pesar de que las variables las recibe bien en el "echo" del final. porque? gracias!

viher

Cita de: viher en  6 Noviembre 2010, 16:55 PM
aqui tengo el codigo

Código (php) [Seleccionar]
<?
  $host="localhost";
$user="user";
$passwd="pass";
$db="bd";
        //Aqui recibimos las variables a actualizar
   $id=$_GET['id'];
   $porn1=$_POST['porn1'];
   $porn2=$_POST['porn2'];
   $nombre=$_POST['nombre'];
   $embed=$_POST['embed'];   
   $cat=$_POST['cat'];
   $cat2=$_POST['cat2'];
   $img=$_POST['img'];
   $dur=$_POST['dur']." minutos";
        //Creamos la conexión
        $link = mysql_connect($host, $user, $passwd);
mysql_select_db($db, $link);
              $sql=mysql_query("UPDATE videos set nombre='$nombre', embed='$embed', img='$img', cat='$cat', cat2='$cat2', porn1='$porn1', porn2='$porn2', dur='$dur's where id='$id'",$link);
              echo "Actualizado correctamente<br>";
  echo $id."<br>";
  echo $nombre."<br>";
  echo $img."<br>";
  echo $cat."<br>";
  echo $cat2."<br>";
  echo $dur."<br>";
  echo $porn1."<br>";
  echo $porn2."<br>";
  echo "<h2 align=center><a href=index.php?id=edit>Editar otro video</a></h2>";
?>


el problema es que solo me actualiza los registros $nombre y $dur, todos los demás me los actualiza en blanco,a pesar de que las variables las recibe bien en el "echo" del final. porque? gracias!

alguien sabe por que pasa esto? gracias!

Shell Root

#7
Intenta visualizar la query,
Código (php) [Seleccionar]
$sSQL = "UPDATE videos
SET nombre='$nombre', embed='$embed', img='$img', cat='$cat', cat2='$cat2', porn1='$porn1', porn2='$porn2', dur='$dur's
WHERE id='$id'";
PRINT $sSQL;
//$sQuery = mysql_query($sSQL, $link);
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

viher

no me devuelve nada  :-\

Código (php) [Seleccionar]
<?
  $host="localhost";
$user="rapmadri_general";
$passwd="181302";
$db="rapmadri_graffitiongirls";
        //Aqui recibimos las variables a actualizar
   $id=$_GET['id'];
   $porn1=$_POST['porn1'];
   $porn2=$_POST['porn2'];
   $nombre=$_POST['nombre'];
   $embed=$_POST['embed'];   
   $cat=$_POST['cat'];
   $cat2=$_POST['cat2'];
   $img=$_POST['img'];
   $dur=$_POST['dur']." minutos";
        //Creamos la conexión
        $link = mysql_connect($host, $user, $passwd);
mysql_select_db($db, $link);
              $sql=mysql_query("UPDATE videos set nombre='$nombre', embed='$embed', img='$img', cat='$cat', cat2='$cat2', porn1='$porn1', porn2='$porn2', dur='$dur's where id='$id'",$link);
              echo "Actualizado correctamente<br>";
  echo "<h2 align=center><a href=index.php?id=edit>Editar otro video</a></h2>";
  Print $sql;
?>

Shell Root

Lee el código que te pusé, tiene una diferencia muy grande al que tienes actualmente.  :silbar:
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.