Foros del Web » Programando para Internet » PHP »

Modificar base de datos PHP y MSQL

Estas en el tema de Modificar base de datos PHP y MSQL en el foro de PHP en Foros del Web. Hola tengo el siguiente problemita, este codigo no me genera ningun error, o sea en si una vez subido funciona perfectamente, el problema esta en ...
  #1 (permalink)  
Antiguo 21/12/2009, 18:48
 
Fecha de Ingreso: diciembre-2009
Mensajes: 3
Antigüedad: 14 años, 11 meses
Puntos: 0
Modificar base de datos PHP y MSQL

Hola tengo el siguiente problemita, este codigo no me genera ningun error, o sea en si una vez subido funciona perfectamente, el problema esta en que no me modifica la base de datos, si me podrian ayudar les agradeceria.
Obviamente dejo por sentado que HOST, USER, PASS, NOMBRE DE BASE, los puse yo por razones obvias

Este es el archivo clasibd.php
Código PHP:
<?
$clasifica
=mysql_connect("HOST","USER","PASS");
mysql_select_db("NOMBRE DE BASE",$clasifica);
$result mysql_query("SELECT seccion, mensaje, id_clasificado FROM clasificados",$clasifica);
if (
$row mysql_fetch_array($result)){
echo 
"<center>";
echo 
"<table class='tabla' cellspacing='0'>\n";
echo 
"<tr class='titulo'>\n";
echo 
"<td class='seccion'>Seccion</td>\n";
echo 
"<td class='mensaje'>Aviso</td>\n";
echo 
"<td class='opcion'>Borrar</td>\n";
echo 
"<td class='opcion'>Modificar</td>\n";
echo 
"<td class='opcion'>Publicar</td>\n";
echo 
"</tr>\n";
do {
echo 
"<tr class='avisos'>\n";
echo 
"<td class='seccion'>".$row["seccion"]."</td>\n";
echo 
"<td class='mensaje'>".$row["mensaje"]."</td>\n";
echo 
"<td class='opcion'><img src='icontexto-webdev-cancel-032x032.png' width='32' height='32' /></td>\n";
echo 
"<td class='opcion'><img src='icontexto-webdev-config-032x032.png' width='32' height='32' /></td>\n";
echo 
"<td class='opcion'><a href='publicar.php?id=".$row["id_clasificado"]."' name='ident'><img src='icontexto-webdev-ok-032x032.png' width='32' height='32' /></a></td>\n";
echo 
"</tr>\n";
} while (
$row mysql_fetch_array($result));
echo 
"</table>\n";
echo 
"</center>";
} else {
echo 
"<center>¡ No hay clasificados para publicar !</center>";
}
?>

Este es el archivo publicar.php
Código PHP:
<?
$clasifica
=mysql_connect("HOST","USER","PASS");
mysql_select_db("NOMBRE DE BASE",$clasifica);
$publica=SI;
$id=$_REQUEST["ident"];
if (
$id_clasificados==$id) {
mysql_query("UPDATE clasificados SET publica='$publica' WHERE id_clasificado='$id'",$clasifica);
$res=mysql_query($sql,$clasifica);
echo 
"<center>El mensaje se esta publicando, espera unos segundos <meta http-equiv=\"refresh\" CONTENT=\"5; url=http://www.publicaloaca.com.ar/admin/pnladmin.html\"><center>"; }
else { echo 
"<center>El mensaje no se pudo publicar con exito, espere unos segundos<meta http-equiv=\"refresh\" CONTENT=\"5; url=http://www.publicaloaca.com.ar/admin/pnladmin.html\"></center>"; }
?>
en este ultimo codigo ya prove de cambiar

$id=$_REQUEST["ident"];
por
$id=$_GET["ident"];
y por
$id=$_POST["ident"];
  #2 (permalink)  
Antiguo 21/12/2009, 19:28
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 11 meses
Puntos: 16
Respuesta: Modificar base de datos PHP y MSQL

¿Cuando asignas el valor a la variable $publica, lo haces des de una constante? Porque si quieres asignarle el valor SI debes hacerlo entre comillas:

$publica = "SI";

De otro modo cuando en el UPDATE pones publica= '$publica' le estás asignando una variable vacía.

Además, en estas líneas creo que hay un error:

mysql_query("UPDATE clasificados SET publica='$publica' WHERE id_clasificado='$id'",$clasifica);
$res=mysql_query($sql,$clasifica);

En la primera línia supongo que quieres crear la variable $sql que utilizas en la segunda. Quedaría de la siguiente manera:

$sql = "UPDATE clasificados SET publica='$publica' WHERE id_clasificado=$id";
$res=mysql_query($sql,$clasifica);

Y otra cosa, si el campo id_clasificado es del tipo int no hace falta poner comillas simples alrededor del valor.

Y ya por último. Veo que muestras un mensaje según se ha podido publicar el mensaje o no. Creo que los deberías mostrar según el resultado de la consulta (almacenado en la variable $res) ya que $id_clasificados==$id no te asegura que se realice la consulta a la base de datos con éxito.

Prueba con los cambios y si sigue sin funcionar intenta aportar información del error.
  #3 (permalink)  
Antiguo 21/12/2009, 19:37
 
Fecha de Ingreso: diciembre-2009
Mensajes: 3
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Modificar base de datos PHP y MSQL

Cita:
Iniciado por Osdiwe Ver Mensaje
¿Cuando asignas el valor a la variable $publica, lo haces des de una constante? Porque si quieres asignarle el valor SI debes hacerlo entre comillas:

$publica = "SI";

De otro modo cuando en el UPDATE pones publica= '$publica' le estás asignando una variable vacía.

Además, en estas líneas creo que hay un error:

mysql_query("UPDATE clasificados SET publica='$publica' WHERE id_clasificado='$id'",$clasifica);
$res=mysql_query($sql,$clasifica);

En la primera línia supongo que quieres crear la variable $sql que utilizas en la segunda. Quedaría de la siguiente manera:

$sql = "UPDATE clasificados SET publica='$publica' WHERE id_clasificado=$id";
$res=mysql_query($sql,$clasifica);

Y otra cosa, si el campo id_clasificado es del tipo int no hace falta poner comillas simples alrededor del valor.

Y ya por último. Veo que muestras un mensaje según se ha podido publicar el mensaje o no. Creo que los deberías mostrar según el resultado de la consulta (almacenado en la variable $res) ya que $id_clasificados==$id no te asegura que se realice la consulta a la base de datos con éxito.

Prueba con los cambios y si sigue sin funcionar intenta aportar información del error.
Voy a probar lo que decis pero igual el error no esta ahi tambien probe cambiando
WHERE id_clasificado=$id"
por
WHERE id_clasificado
si hace la modificacion que quiero pero en todos los campos y no solo en el que yo deseo.
Por defecto en el formulario de para publicar los mensajes el $publica=no, al apretar la imagen acepta los pasaria a $publica=si.
De este modo, los usuarios verian los mensajes luego del que el administrador de el OK.
Repito esto lo logre hacer a la perfeccion pero me modifica todos los campos PUBLICA y no unicamente el que yo deseo.
  #4 (permalink)  
Antiguo 21/12/2009, 19:39
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 11 meses
Puntos: 16
Respuesta: Modificar base de datos PHP y MSQL

Pues si te modifica todos los campos publica el problema está en el WHERE. Comprueba que en la variable $id te guarda correctamente el valor que quieres.
  #5 (permalink)  
Antiguo 22/12/2009, 04:56
 
Fecha de Ingreso: diciembre-2009
Mensajes: 3
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Modificar base de datos PHP y MSQL

Si creo que el problema esta en la variable $id no me la esta tomando como se debe, pero no logro descubrir el problema para solucionarlo, ya que no me tira ningun tipo de error.
  #6 (permalink)  
Antiguo 22/12/2009, 04:59
Avatar de Kenichi  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 160
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: Modificar base de datos PHP y MSQL

Hola, vi que tienes
Código PHP:
if ($id_clasificados==$id) { 
Y la variable $id_clasificados donde esta definida?
__________________
Cansado de tener que hacer webs con doble login, o no entender nada del codigo de phpBB? Usa un sistema de foros simple, usa Linken Foros
  #7 (permalink)  
Antiguo 22/12/2009, 05:00
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 11 meses
Puntos: 16
Respuesta: Modificar base de datos PHP y MSQL

recoje la id así:

$id = $_GET['id'];

Fíjate que en la url en la que pasas la id pones:
<a href='publicar.php?id=".$row["id_clasificado"]."' name='ident'>

Cuando recoges la variable su nombre en $_GET es id (id=".$row["id_clasificado"]."') aunque el enlace tenga como name="ident".
  #8 (permalink)  
Antiguo 22/12/2009, 05:02
Avatar de Kenichi  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 160
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: Modificar base de datos PHP y MSQL

Pero tambien, falta que declare $id_clasificados, y para que haga el sql tiene que ser igual a la otra variable $id
__________________
Cansado de tener que hacer webs con doble login, o no entender nada del codigo de phpBB? Usa un sistema de foros simple, usa Linken Foros
  #9 (permalink)  
Antiguo 22/12/2009, 05:33
 
Fecha de Ingreso: diciembre-2009
Ubicación: Linz
Mensajes: 48
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Modificar base de datos PHP y MSQL

no se si mi comentario sirva de algo (aunque espero que si...) porque soy bastante novato en php+mysql pero una cosa que siempre hago mientras programo es mostrar ( ya sabes 'echo $variable; )la variable para verificar que su contenido es correcto.
Saludos!!
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 21:43.