Foros del Web » Programando para Internet » PHP »

¿Qué está mal?

Estas en el tema de ¿Qué está mal? en el foro de PHP en Foros del Web. Bueno ¿me podrían decir que está mal? use la guia para hacer encuestas para hacer algo parecido(da puntos cada vez que votas), en el sql ...
  #1 (permalink)  
Antiguo 08/03/2008, 15:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
¿Qué está mal?

Bueno ¿me podrían decir que está mal? use la guia para hacer encuestas para hacer algo parecido(da puntos cada vez que votas), en el sql me guarda 500 como vlimit y no el valor de time() o_o nosé porque y tampoco se guarda el "punto" en votes
Código PHP:
<?php
$userid 
$_SESSION[$CONFIG_name.'userid'];
$servidor "localhost"
$usuario "root";
$password ""
$conextar=mysql_connect ($servidor,$usuario,$password); 
$sql "SELECT 'vlimit' FROM 'login' WHERE 'userid' = '$userid'";
$vlimit mysql_query($sql,$conextar); 
$actual_time time();
if (
$actual_time $vlimit >= 30) {
$gay time();
$sqlupdate "UPDATE 'login' SET 'vlimit' = $gay WHERE 'userid' = '$userid'";
mysql_query($sqlupdate,$conextar);
$sqlupdate2 "UPDATE 'login' SET 'votes' = $votes+1 WHERE 'userid' = '$userid'";
mysql_query($sqlupdate2,$conextar); 
print 
"<p>Works 1</p>"// de momento no interesan son para ver si funciona
end;
} else {
print 
"<p>Works 0</p>";
end;
}
?>
gracias de antemano
  #2 (permalink)  
Antiguo 08/03/2008, 18:58
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: ¿Qué está mal?

Cambia esto:
Código PHP:
$sql "SELECT 'vlimit' FROM 'login' WHERE 'userid' = '$userid'"
Por esto:
Código PHP:
$sql "SELECT vlimit FROM login WHERE userid = '$userid'"
El nombre de los campos y as tablas no van entre comillas.
Has lo mismo con el resto de las consultas.-

Saludos
  #3 (permalink)  
Antiguo 08/03/2008, 21:01
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: ¿Qué está mal?

Deberia quedar asi verdad?, pues no funciona xD, en la tabla me aparece que vlimit es 500 no time() lo puse en 0 manualmente para ver si era culpa de este script y pues si lo es, ademas no se me cuenta el voto en la columna votes
Código PHP:
<?php
$userid 
$_SESSION[$CONFIG_name.'userid'];
$servidor "localhost"
$usuario "root";
$password ""
$conextar=mysql_connect ($servidor,$usuario,$password); 
$sql "SELECT vlimit FROM login WHERE userid = '$userid'";
$vlimit mysql_query($sql,$conextar); 
$actual_time time();
if (
$actual_time $vlimit >= 30) {
$nlimit time();
$sqlupdate "UPDATE login SET vlimit = $nlimit WHERE userid = '$userid'";
mysql_query($sqlupdate,$conextar);
$sqlupdate2 "UPDATE login SET votes=votes + 1 WHERE userid = '$userid'";
mysql_query($sqlupdate2,$conextar); 
print 
"<p>Works 1</p>";
end;
} else {
print 
"<p>Works 0</p>";
end;
}
?>
  #4 (permalink)  
Antiguo 08/03/2008, 21:08
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: ¿Qué está mal?

aqui te faltan unas comillas

Código PHP:
$sqlupdate "UPDATE login SET vlimit = $nlimit WHERE userid = '$userid'"
mysql_query($sqlupdate,$conextar); 
$sqlupdate2 "UPDATE login SET votes=votes + 1 WHERE userid = '$userid'"
Código PHP:
$sqlupdate "UPDATE login SET vlimit =' $nlimit 'WHERE userid = '$userid'"
mysql_query($sqlupdate,$conextar); 
$sqlupdate2 "UPDATE login SET votes=votes + 1 WHERE userid = '$userid'"
u esto que es?

Código PHP:
votes=votes 
votes no deberia de ser una variable, si es un campo de la base datos prueba con poner:


Código PHP:
$sqlupdate2 "UPDATE login SET  votes=($votes+ 1) WHERE userid = '$userid'"
pero aunque no pongas $votes.
dedonde sale el valor votes para sumarle 1?
  #5 (permalink)  
Antiguo 08/03/2008, 21:24
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: ¿Qué está mal?

Y ahora? sigue pasando lo mismo
Código PHP:
<?php
$userid 
$_SESSION[$CONFIG_name.'userid'];
$servidor "localhost"
$usuario "root";
$password ""
$conextar=mysql_connect ($servidor,$usuario,$password); 
$sql "SELECT vlimit FROM login WHERE userid = '$userid'";
$vlimit mysql_query($sql,$conextar);
$sql2 "SELECT votes FROM login WHERE userid = '$userid'";
$votes mysql_query($sql2,$conextar);
$actual_time time();
if (
$actual_time $vlimit >= 30) {
$nlimit time();
$sqlupdate "UPDATE login SET vlimit =' $nlimit 'WHERE userid = '$userid'"
mysql_query($sqlupdate,$conextar);  
$sqlupdate2 "UPDATE login SET  votes=($votes+ 1) WHERE userid = '$userid'";  
mysql_query($sqlupdate2,$conextar); 
print 
"<p>Works 1</p>";
end;
} else {
print 
"<p>Works 0</p>";
end;
}
?>
ahora ya no me pone en 500 el vlimit lo deja en 0 XD
PD: seguramente diras que me fije si
Código PHP:
$userid $_SESSION[$CONFIG_name.'userid']; 
es correcto, bueno pues si ya que lo verifique con
Código PHP:
$userid $_SESSION[$CONFIG_name.'userid'];
print 
"<p>$userid</p>"

Última edición por Query; 08/03/2008 a las 21:30
  #6 (permalink)  
Antiguo 08/03/2008, 21:32
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: ¿Qué está mal?

prueba ahora con el codigo asi:
he hechi algun cambio fijate


Código PHP:

<?php
$userid 
$_SESSION[$CONFIG_name.'userid'];
$servidor "localhost"
$usuario "root";
$password ""
$conextar=mysql_connect ($servidor,$usuario,$password); 
$sql "SELECT vlimit FROM login WHERE userid = '$userid'";
$vlimit mysql_query($sql,$conextar);
$sql2 "SELECT votes FROM login WHERE userid = '$userid')";
$votes mysql_query($sql2,$conextar);

$votesb=$votes+1
$actual_time 
time();
if (
$actual_time $vlimit >= 30) {
$nlimit time();
$sqlupdate "UPDATE login SET vlimit =' $nlimit 'WHERE userid = '$userid'"
mysql_query($sqlupdate,$conextar);  
$sqlupdate2 "UPDATE login SET  votes='$votesb' WHERE userid = '$userid'";  
mysql_query($sqlupdate2,$conextar); 
print 
"<p>Works 1</p>";
end;
} else {
print 
"<p>Works 0</p>";
end;
}
?>
  #7 (permalink)  
Antiguo 08/03/2008, 21:59
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: ¿Qué está mal?

sigue igual =/

PD: te falto punto y coma en la linea 13 xD
  #8 (permalink)  
Antiguo 08/03/2008, 22:12
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: ¿Qué está mal?

tienes el valor cero introducido en elo campo de votes en la tabla login

o esta el campo vacio?
  #9 (permalink)  
Antiguo 08/03/2008, 22:17
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: ¿Qué está mal?

prueba con estos parentesis: en la linea 13

Código PHP:


<?php 
$userid 
$_SESSION[$CONFIG_name.'userid']; 
$servidor "localhost";  
$usuario "root"
$password "";  
$conextar=mysql_connect ($servidor,$usuario,$password);  
$sql "SELECT vlimit FROM login WHERE userid = '$userid'"
$vlimit mysql_query($sql,$conextar); 
$sql2 "SELECT votes FROM login WHERE userid = '$userid')"
$votes mysql_query($sql2,$conextar); 

$votesb=($votes+1); 

echo 
$votes;  // a ver que imprime
echo $votesb;

$actual_time time(); 
if (
$actual_time $vlimit >= 30) { 
$nlimit time(); 
$sqlupdate "UPDATE login SET vlimit =' $nlimit 'WHERE userid = '$userid'";  
mysql_query($sqlupdate,$conextar);   
$sqlupdate2 "UPDATE login SET  votes='$votesb' WHERE userid = '$userid'";   
mysql_query($sqlupdate2,$conextar);  
print 
"<p>Works 1</p>"
end
} else { 
print 
"<p>Works 0</p>"
end

?>
  #10 (permalink)  
Antiguo 08/03/2008, 22:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: ¿Qué está mal?

sigue igual o_o"
  #11 (permalink)  
Antiguo 08/03/2008, 22:27
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: ¿Qué está mal?

sigue igual el que, hombre,

te da algun fallo

has provado a imprimir primero las variables que sacas del query.

prueba aimprimir $votes a ver que te imprime, igual esta vacia,

y responde a esto

como esta el campo vote de la BD esta en cero?, tiene ya agun valor o esta vacio?

y despues de responderme a lo que te acabo de preguntar prueba esto



<?php
$userid = $_SESSION[$CONFIG_name.'userid'];
$servidor = "localhost";
$usuario = "root";
$password = "";
$conextar=mysql_connect ($servidor,$usuario,$password);
$sql = "SELECT vlimit FROM login WHERE userid = '$userid'";
$vlimit = mysql_query($sql,$conextar);
$sql2 = "SELECT votes FROM login WHERE userid = '$userid')";
$votes = mysql_query($sql2,$conextar);

$votesb=($votes+1);

echo $votes; // a ver que imprime
echo $votesb;

$actual_time = time();
if ($actual_time - $vlimit >= 30) {
$nlimit = time();
$sqlupdate = "UPDATE login SET vlimit =' $nlimit 'WHERE userid = '$userid'";
mysql_query($sqlupdate,$conextar);
$sqlupdate2 = "UPDATE login SET votes='$votesb' WHERE userid = '$userid'";
mysql_query($sqlupdate2,$conextar);
print "<p>Works 1</p>";
end;
} else {
print "<p>Works 0</p>";
end;
}
?>
  #12 (permalink)  
Antiguo 08/03/2008, 22:38
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: ¿Qué está mal?

le di un valor manualmente para imprimirlo y darme cuenta haber si andaba y pues imprimio "nada" xD
el campo esta en 0
probe eso y imprimio 1 $votes y nada $votesb, ademas, se me pusieron en 0 vlimit y votes en el sql(tenian otros valores por lo que puse arriva xD)
  #13 (permalink)  
Antiguo 08/03/2008, 22:47
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: ¿Qué está mal?

pues si yo imprimo esto:

<?php

$votes="2";
$votesb=($votes+1);

echo $votes;
echo $votesb;


?>

me da 2 y 3

no puede ser que ati te de vacio cuando imprimes $votesb si $votes=1
  #14 (permalink)  
Antiguo 08/03/2008, 23:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: ¿Qué está mal?

pues nose xD voy a poner todas las tablas nuevas aver si es eso luego edito
cambie las tablas y las puse de nuevo limpias y no... o_o

Última edición por Query; 08/03/2008 a las 23:15
  #15 (permalink)  
Antiguo 09/03/2008, 08:28
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Re: ¿Qué está mal?

a ver vuelve a pner el codigo ultimo que usaste y la estructura de tu tabla

algo haces mal en algun sistio, a ver si lo encontramos


te recuerdo que el session_start (); debe ir en la primera linea del código.
  #16 (permalink)  
Antiguo 09/03/2008, 18:20
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: ¿Qué está mal?

Este es el ultimo:
Código PHP:
<?php
session_start
();
include_once 
'config.php'// loads config variables
include_once 'query.php'// imports queries
include_once 'functions.php';
$userid $_SESSION[$CONFIG_name.'userid'];
$servidor "localhost"
$usuario "root";
$password ""
$conextar=mysql_connect ($servidor,$usuario,$password); 
$sql "SELECT vlimit FROM login WHERE userid = '$userid'";
$vlimit mysql_query($sql,$conextar);
$sql2 "SELECT votes FROM login WHERE userid = '$userid'";
$votes mysql_query($sql2,$conextar);

$votesb=$votes 1;
$actual_time time();
if (
$actual_time $vlimit >= 30) {
$nlimit time();
$sqlupdate "UPDATE login SET vlimit =' $nlimit 'WHERE userid = '$userid'"
mysql_query($sqlupdate,$conextar);  
$sqlupdate2 "UPDATE login SET  votes='$votesb' WHERE userid = '$userid'";  
mysql_query($sqlupdate2,$conextar); 
print 
"<p>Works 1</p>";
end;
} else {
print 
"<p>Works 0</p>";
end;
}
?>
La tabla la tengo separada en 2 .sql son asi
Código:
DROP TABLE IF EXISTS `login`;
CREATE TABLE `login` (
  `account_id` int(11) unsigned NOT NULL auto_increment,
  `userid` varchar(23) NOT NULL default '',
  `user_pass` varchar(32) NOT NULL default '',
  `lastlogin` datetime NOT NULL default '0000-00-00 00:00:00',
  `sex` enum('M','F','S') NOT NULL default 'M',
  `logincount` mediumint(9) unsigned NOT NULL default '0',
  `email` varchar(39) NOT NULL default '',
  `level` tinyint(3) NOT NULL default '0',
  `error_message` smallint(11) unsigned NOT NULL default '0',
  `connect_until` int(11) unsigned NOT NULL default '0',
  `last_ip` varchar(100) NOT NULL default '',
  `memo` smallint(11) unsigned NOT NULL default '0',
  `ban_until` int(11) unsigned NOT NULL default '0',
  `state` int(11) unsigned NOT NULL default '0',
  PRIMARY KEY  (`account_id`),
  KEY `name` (`userid`)
) TYPE=MyISAM AUTO_INCREMENT=2000000;
Código:
ALTER TABLE `login` ADD `vlimit` int(11) NOT NULL AFTER `state`;
ALTER TABLE `login` ADD `votes` int(11) NOT NULL AFTER `state`;

Última edición por Query; 09/03/2008 a las 19:59
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 03:58.