Foros del Web » Programando para Internet » PHP »

update table

Estas en el tema de update table en el foro de PHP en Foros del Web. Aver me explico tengo un fichero llamado votar.php, que coge variables de un pagina. luego despues de votar, llama a votar2.php, aparecen actualizados en el ...
  #1 (permalink)  
Antiguo 26/02/2003, 12:26
Avatar de jonk  
Fecha de Ingreso: julio-2002
Ubicación: Barakaldo
Mensajes: 104
Antigüedad: 21 años, 8 meses
Puntos: 0
update table

Aver me explico tengo un fichero llamado votar.php, que coge variables de un pagina. luego despues de votar, llama a votar2.php, aparecen actualizados en el form los datos, pero no consigo actualizar los valores en la base de datos

votar.php
[PHP]
<html>

<head>
<title>Votar por 1 Mensaje</title>
<meta name="generator" content="Namo WebEditor v4.0">



</head>
<body bgcolor="black" text="white" link="#0099FF" vlink="#FFCC00" alink="lime">
<form method="post" action="votar2.php?ratio=<? echo$rat;?>&indice=<? echo$id;?>">
<div align="left">
<table style="border-width:5pt; border-color:rgb(255,204,0); border-style:dashed;" border="0" cellpadding="0" cellspacing="0" width="100%">

<tr>
<td height="27" valign="middle" bgcolor="#FFCC00">
<p align="center"><font color="black" face="Arial"><b>&nbsp;Mensaje ID:
</b></font><font color="black"><? echo $id ?></font></p>
</td>
<td height="27" bgcolor="#FFCC00">
<p align="center"><font color="black">&nbsp;</font><font color="black" face="Arial"><b>Total
Puntos: </b></font><font color="black"><? echo $rat?></font></p>
</td>
</tr>
<tr>
<td colspan="2" width="300" height="87" bgcolor="white" valign="middle">
<p align="center" style="line-height:100%; margin-top:0; margin-bottom:0;"><select name="punto"><option value="1" >1
<option value="2">2</option>
<option value="3" >3
<option value="4">4</option>
<option value="5">5</option>

</select>
<p align="center" style="line-height:100%; margin-top:0; margin-bottom:0;"><input type="submit" value="Enviar Voto"></p>
</td>
</tr>
<tr>
<td colspan="2" width="300" height="40" bgcolor="white">
<p align="center">&nbsp;</p>
</td>
</tr>
</table>
</div></form>
<p align="center">



</body>

</html>


votar2.php
Código PHP:
<html>

<head>
<title>Votar por 1 Mensaje</title>
<meta name="generator" content="Namo WebEditor v4.0">


<?
$nv
=$ratio+$punto;
?>
</head>
<body bgcolor="black" text="white" link="#0099FF" vlink="#FFCC00" alink="lime">
<form method="post" action="votar2.php">
    <div align="left">
<table style="border-width:5pt; border-color:rgb(255,204,0); border-style:dashed;" border="0" cellpadding="0" cellspacing="0" width="100%">

    <tr>
        <td height="27" valign="middle" bgcolor="#FFCC00">
            <p align="center"><font color="black" face="Arial"><b>&nbsp;Mensaje ID: 
            </b></font><font color="black"><? echo $indice?></font></p>
        </td>
        <td height="27" bgcolor="#FFCC00">
            <p align="center"><font color="black">&nbsp;</font><font color="black" face="Arial"><b> 
            Puntos Anteriores: </b></font><font color="black"><? echo $ratio?></font></p>
        </td>
    </tr>
    <tr>
        <td colspan="2" width="300" height="87" bgcolor="white" valign="middle">
            <p align="center"><font color="red" size="5" face="Arial"><b><? echo $nv?></b></font></p>
        </td>
    </tr>
    <tr>
        <td colspan="2" width="300" height="40" bgcolor="white">
            <p align="center"><b><font color="black" size="2" face="Arial">Nuevos 
            Puntos</font></b></p>
        </td>
    </tr>
</table>
    </div>
</form>
<?
$db 
mysql_connect("localhost"barakaldo ,xxxxxx); 
mysql_select_db(barakaldo,$db);
mysql_query("update contestador set rating=$nv where idcontestador=$id"$db);
?>
            <p align="center">&nbsp;
 
</body>

</html>
me podeis echar una mano :)

esta es la web donde se puede ver :

Prueba de Votos

thx
__________________

MyWay. A mi manera
http://myway.i-barakaldo.com

Última edición por jonk; 26/02/2003 a las 12:32
  #2 (permalink)  
Antiguo 26/02/2003, 14:36
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Primero, si te falla una consulta, lo mas recomendable es comprobar si el valor devuelto por mysql_query() es valido. mysql_query() devuelve FALSE cuando se ha producido un error en la ejecucion de la consulta. Luego, con mysql_error() puedes mostrar el mensaje de error que devuelve mysql. En tu caso:
Código PHP:
$result=mysql_query("update contestador set rating=$nv where idcontestador=$id"$db);
if (!
$result)
{
  echo 
"Error. Mysql dice: ".mysql_error();
  exit;

o en su version corta:
Código PHP:
mysql_query("update contestador set rating=$nv where idcontestador=$id"$db) or die(mysql_error()); 
Yo personalmente prefiero la primera. Utilizala para ver el mensaje de error.

Aunque voy a ser generoso y te voy a dar la solucion. Tu pasas a esa pagina el parametro "indice". ¿ De donde sacas la variable $id que usas en la consulta? ¿No deberia ser $indice?

Suerte.

PD: He sido generoso porque soy de Barakaldo ;).
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 28/02/2003, 13:26
Avatar de jonk  
Fecha de Ingreso: julio-2002
Ubicación: Barakaldo
Mensajes: 104
Antigüedad: 21 años, 8 meses
Puntos: 0
gracias :)

funciona perfectamente :) ahora las votaciones funcionan, lo unico que para ver actualizadas se tiene que actualizar la page :)

puedes ver como queda en:

I-Barakaldo -- El Contestador en el apartado Ver mensajes

thx a tod@s


Cita:
Mensaje Original por josemi
Hola,

Primero, si te falla una consulta, lo mas recomendable es comprobar si el valor devuelto por mysql_query() es valido. mysql_query() devuelve FALSE cuando se ha producido un error en la ejecucion de la consulta. Luego, con mysql_error() puedes mostrar el mensaje de error que devuelve mysql. En tu caso:
Código PHP:
$result=mysql_query("update contestador set rating=$nv where idcontestador=$id"$db);
if (!
$result)
{
  echo 
"Error. Mysql dice: ".mysql_error();
  exit;

o en su version corta:
Código PHP:
mysql_query("update contestador set rating=$nv where idcontestador=$id"$db) or die(mysql_error()); 
Yo personalmente prefiero la primera. Utilizala para ver el mensaje de error.

Aunque voy a ser generoso y te voy a dar la solucion. Tu pasas a esa pagina el parametro "indice". ¿ De donde sacas la variable $id que usas en la consulta? ¿No deberia ser $indice?

Suerte.

PD: He sido generoso porque soy de Barakaldo ;).
__________________

MyWay. A mi manera
http://myway.i-barakaldo.com
  #4 (permalink)  
Antiguo 28/02/2003, 14:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para solventar el problema del "refresco" manual . .hazlo "automático"

Una vez procesado la contabilización de ese voto ...

Código PHP:
<?
$db 
mysql_connect("localhost"barakaldo ,xxxxxx); 
mysql_select_db(barakaldo,$db);
mysql_query("update contestador set rating=$nv where idcontestador=$id"$db);
// ideal usar header("location: $PHP_SELF"): exit; 
// Pero ahí en tu código como lo tienes estructurado con HTML
//  incrustado por aquí y por allá te va a dar problemas de cabeceras.

// usa la versión javascript de redireccionamiento o un meta refresh .. tipo:

echo "<meta http-equiv=\"refresh\" content=\"0; URL=$PHP_SELF\">";

// $PHP_SELF es variable de servidor . indica la ruta y nombre de este script q lo ejecuta ...
?>
Un saludo,
  #5 (permalink)  
Antiguo 28/02/2003, 15:41
Avatar de jonk  
Fecha de Ingreso: julio-2002
Ubicación: Barakaldo
Mensajes: 104
Antigüedad: 21 años, 8 meses
Puntos: 0
gracias :) el problema es que las votaciones se realizan en una ventana emergente que se abre desde una pagina principal, (msg.php) es la que se debe actualizar no la de votar2.php

thx

Cita:
Mensaje Original por Cluster
Para solventar el problema del "refresco" manual . .hazlo "automático"

Una vez procesado la contabilización de ese voto ...

Código PHP:
<?
$db 
mysql_connect("localhost"barakaldo ,xxxxxx); 
mysql_select_db(barakaldo,$db);
mysql_query("update contestador set rating=$nv where idcontestador=$id"$db);
// ideal usar header("location: $PHP_SELF"): exit; 
// Pero ahí en tu código como lo tienes estructurado con HTML
//  incrustado por aquí y por allá te va a dar problemas de cabeceras.

// usa la versión javascript de redireccionamiento o un meta refresh .. tipo:

echo "<meta http-equiv=\"refresh\" content=\"0; URL=$PHP_SELF\">";

// $PHP_SELF es variable de servidor . indica la ruta y nombre de este script q lo ejecuta ...
?>
Un saludo,
__________________

MyWay. A mi manera
http://myway.i-barakaldo.com
  #6 (permalink)  
Antiguo 28/02/2003, 16:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo solucionastes ya? .. Lo digo porque prodrias probar a preguntar en el foro de Javacript para que te orienten sobre el tema de window.opener y todo el tema para cerrar el "pop up" y refrescar la ventan padre que lanzó el pop up ..

Un saludo,
  #7 (permalink)  
Antiguo 28/02/2003, 16:37
Avatar de jonk  
Fecha de Ingreso: julio-2002
Ubicación: Barakaldo
Mensajes: 104
Antigüedad: 21 años, 8 meses
Puntos: 0
todavia no lo he solucionado :) jejeje
enseguia posteo

has visto la page y como lo hace?

:)

Cita:
Mensaje Original por Cluster
Lo solucionastes ya? .. Lo digo porque prodrias probar a preguntar en el foro de Javacript para que te orienten sobre el tema de window.opener y todo el tema para cerrar el "pop up" y refrescar la ventan padre que lanzó el pop up ..

Un saludo,
__________________

MyWay. A mi manera
http://myway.i-barakaldo.com
  #8 (permalink)  
Antiguo 28/02/2003, 17:23
Avatar de jonk  
Fecha de Ingreso: julio-2002
Ubicación: Barakaldo
Mensajes: 104
Antigüedad: 21 años, 8 meses
Puntos: 0
De acuerdo

encontre en un post tuyo esto:

<a href="javascript:window.opener.location.reload(); window.close();"> Actualizar Votos</a>

funciona :)


Cita:
Mensaje Original por Cluster
Lo solucionastes ya? .. Lo digo porque prodrias probar a preguntar en el foro de Javacript para que te orienten sobre el tema de window.opener y todo el tema para cerrar el "pop up" y refrescar la ventan padre que lanzó el pop up ..

Un saludo,
__________________

MyWay. A mi manera
http://myway.i-barakaldo.com
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:42.