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
primero que nada... tienes los errores de php activos?
agrega los errores de mysql_error() tambien supongo que viene por ahi el asunto
saludos
no me da ningún error despues de usar mysql_error();
llegan bien las variables por $_POST, has un print_r
print_r($_POST);
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() (http://php.net/manual/es/function.mysql-real-escape-string.php).
Saludos ;)
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!
Cita de: viher en 6 Noviembre 2010, 16:55 PM
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!
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);
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;
?>
Lee el código que te pusé, tiene una diferencia muy grande al que tienes actualmente. :silbar:
muestra por pantalla el mysql_error pq estas haciendo las cosas a ciegas. ¿no hay una s ahi perdida o me lo parece?
<?
$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
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
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.
<?
$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
http://php.net/manual/es/function.mysql-query.php ahi te lo explica todo.
Por ejemplo,
$sLink = mysql_connect('localhost', 'mysql_user', 'mysql_password') or die("Error: ".mysql_error());
#---
mysql_query($sSQL, $sLink) or die("Error: ".mysql_error());
<?
$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
$sLink = mysql_connect('localhost', 'user', 'pass') or die("Error: ".mysql_error());
mysql_select_db($db, $sLink);
$sSQL = "UPDATE videos SET nombre='$nombre', embed='$embed', img='$img', cat='$cat', cat2='$cat2', porn1='$porn1', porn2='$porn2', dur='$dur' WHERE id='$id'" or die("Error: ".mysql_error());
PRINT $sSQL;
echo "Actualizado correctamente<br>";
echo "<h2 align=center><a href=index.php?id=edit>Editar otro video</a></h2>";
?>
sige sin actualizarse pero no me devuelve ningún error
si no haces el query logico que no haga nada.
<?
$db="db";
//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
$sLink = mysql_connect('localhost', 'user', 'pass') or die("Error: ".mysql_error());
mysql_select_db($db, $sLink);
$sSQL = "UPDATE videos SET nombre='$nombre', embed='$embed', img='$img', cat='$cat', cat2='$cat2', porn1='$porn1', porn2='$porn2', dur='$dur' WHERE id='$id'" or die("Error: ".mysql_error());
mysql_query($sSQL, $sLink) or die("Error: ".mysql_error());
PRINT $sSQL;
echo "Actualizado correctamente<br>";
echo "<h2 align=center><a href=index.php?id=edit>Editar otro video</a></h2>";
?>
el problema que he visto es que he modificado el campo "embed" y me lo modifica pero en blanco,no recive bien el texto a modificar y se queda en blanco
esto es lo que me devuelve el PRINT $sSQL
UPDATE videos SET nombre='a', embed='', img='c', cat='', cat2='f', porn1='e', porn2='g', dur='d minutos minutos' WHERE id='1626'Actualizado correctamente
Poné la estructura de la base de datos, quiero ver el tipo de campo que es ID. Cuando ejecutas la consulta, te printea algún error?
la estructura de ID es "int(10)" y no me printea ningún error
Me lo suponia, como es un valor Entero, deberá pasarse como el valor que es, es decir, no es lo mismo hacer
SELECT * FROM tblPoC WHERE (id = "1")
qué
SELECT * FROM tblPoC WHERE (id = 1)
Intentad printear la consulta SQL y la ejecutas directamente desde el motor de base de datos. A ver si se ingresa correctamente o es problema del códigp PHP.
he ejecutado la siguiente consulta en phpmyadmin
UPDATE videos SET nombre='aaa', embed='bbbb', img='ccccc', cat='ddddd', cat2='eeeee', porn1='fffff', porn2='gggg', dur='hhhh' WHERE id=1648
y me lo ha actualizado correctamente
http://img819.imageshack.us/img819/9144/phpmyadmin.jpg
y quité las comillas de la consulta sql del codigo php pero sige devolviendo lo que modifico en blanco y se actualiza en blanco
Esa consulta es mucho más diferente que la que tenias.
UPDATE videos SET nombre='a', embed='', img='c', cat='', cat2='f', porn1='e', porn2='g', dur='d minutos minutos' WHERE id='1626'
Vuelve a printear la query y verifica en el motor de base de datos.
Quizas los errores no se muestran porque tiene la directiva display_erros (http://www.php.net/manual/es/errorfunc.configuration.php#ini.display-errors) del PHP.INI Off