Tema destacado: Suscripción al boletín mensual de elhacker.net
Autor
|
Tema: problema update en php (Leído 2,365 veces)
|
viher
Desconectado
Mensajes: 94
|
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<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> <B>Nombre</B></TD> <TD> <B>ID</B> </TD> <TD> </TD></TR> <?php while($row = mysql_fetch_array($result)) { $id = $row["id"]; printf("<tr><td> %s</td><td> %s </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<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<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
|
|
|
|
|
En línea
|
|
|
|
seele
Desconectado
Mensajes: 137
|
primero que nada... tienes los errores de php activos? agrega los errores de mysql_error() tambien supongo que viene por ahi el asunto
saludos
|
|
|
|
|
En línea
|
|
|
|
viher
Desconectado
Mensajes: 94
|
no me da ningún error despues de usar mysql_error();
|
|
|
|
|
En línea
|
|
|
|
seele
Desconectado
Mensajes: 137
|
llegan bien las variables por $_POST, has un print_r print_r($_POST);
|
|
|
|
|
En línea
|
|
|
|
|
xassiz~
|
Ese [/videos] es un error al postear el code no? 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 
|
|
|
|
|
En línea
|
|
|
|
viher
Desconectado
Mensajes: 94
|
aqui tengo el codigo <? $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!
|
|
|
|
« Última modificación: 9 Noviembre 2010, 15:03 por viher »
|
En línea
|
|
|
|
viher
Desconectado
Mensajes: 94
|
aqui tengo el codigo <? $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!
|
|
|
|
|
En línea
|
|
|
|
Shell Root
Desconectado
Mensajes: 2.456
Alex Jurado
|
Intenta visualizar la query, $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);
|
|
|
|
« Última modificación: 9 Noviembre 2010, 21:36 por Shell Root »
|
En línea
|
 ---
|
|
|
viher
Desconectado
Mensajes: 94
|
no me devuelve nada  <? $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; ?>
|
|
|
|
|
En línea
|
|
|
|
Shell Root
Desconectado
Mensajes: 2.456
Alex Jurado
|
Lee el código que te pusé, tiene una diferencia muy grande al que tienes actualmente. 
|
|
|
|
|
En línea
|
 ---
|
|
|
bizco
Desconectado
Mensajes: 698
|
muestra por pantalla el mysql_error pq estas haciendo las cosas a ciegas. ¿no hay una s ahi perdida o me lo parece?
|
|
|
|
|
En línea
|
|
|
|
viher
Desconectado
Mensajes: 94
|
<? $host="localhost"; $user="userl"; $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); $sSQL = "UPDATE videos SET nombre='$nombre', embed='$embed', img='$img', cat='$cat', cat2='$cat2', porn1='$porn1', porn2='$porn2', dur='$dur' WHERE id='$id'"; PRINT $sSQL; echo "Actualizado correctamente<br>"; echo "<h2 align=center><a href=index.php?id=edit>Editar otro video</a></h2>"; ?> esto es lo que me devuelve UPDATE videos SET nombre='a', embed='', img='c', cat='', cat2='h', porn1='e', porn2='f', dur='d minutos minutos's WHERE id='1603'Actualizado correctamente y embed me sale vacío cuando es el campo que he editado
|
|
|
|
|
En línea
|
|
|
|
Shell Root
Desconectado
Mensajes: 2.456
Alex Jurado
|
Exacto, este es el punto que quiero tocar... Mirad la sentencia SQL, y como bien te lo dijo @bizco, hay una s que interfiere con la query. UPDATE videos SET nombre='a', embed='', img='c', cat='', cat2='h', porn1='e', porn2='f', dur='d minutos minutos's WHERE id='1603' debería ser así, y el ID supongo que es númerico o es un varchar? UPDATE videos SET nombre='a', embed='', img='c', cat='', cat2='h', porn1='e', porn2='f', dur='d minutos minutos' WHERE id=1603
|
|
|
|
|
En línea
|
 ---
|
|
|
bizco
Desconectado
Mensajes: 698
|
viher ahi en eso que pones no veo donde haces la consulta, esta la cadena pero no ejecutas la consulta. de todos modos mira lo que dice Shell Root y acostumbra a manejar los posibles errores y no tenrdras estos problemas.
|
|
|
|
|
En línea
|
|
|
|
viher
Desconectado
Mensajes: 94
|
<? $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); mysql_query("UPDATE videos SET nombre='$nombre', embed='$embed', img='$img', cat='$cat', cat2='$cat2', porn1='$porn1', porn2='$porn2', dur='$dur' WHERE id='$id')",$link); PRINT $sSQL; echo "Actualizado correctamente<br>"; echo "<h2 align=center><a href=index.php?id=edit>Editar otro video</a></h2>"; ?> ejecute la consulta pero aun asi sige igual,y como hago para poner los posibles errores? gracias
|
|
|
|
|
En línea
|
|
|
|
|
|