Comunidad de diseño web y desarrollo en internet online

variables Number q se comportan como String!!!???

Citar            
MensajeEscrito el 27 May 2006 08:36 am
Hola buenas a todos.
Bueno, estoy aprendiendo por mi parte AS, php y mysql, por lo q estoy constantemente experimentando cosillas. Lo ultimo q se me ocurrio fue crear un sistema de votacion como los q aparecen en muchas páginas web. El problema q tengo es q consigo realizar la consulta a mi DB por medio de un php q a su vez utilizo para enviar en forma de variables , el nº de votos a flash; pero no se q ocurre q las variables q utilizo en flash, aunq las defino como variable:Number....etc se comportan como String, de tal manera q cuando intento sumar las variables q contienen los votos de cada opcion ( opcion se refiere a la hora de votar hay 4 opciones), en vez de sumarme los 4 valores lo q hace es ponerlos uno al lado de otro.

mi php es:<?php

$dbh = mysql_connect("localhost", "root" , "root") or die ('problemas con la conexión por : ' . mysql_error());
mysql_select_db("pruebas2",$dbh);

$q1 = "SELECT Votos FROM votacion WHERE id=1";
$q2 = "SELECT Votos FROM votacion WHERE id=2";
$q3 = "SELECT Votos FROM votacion WHERE id=3";
$q4 = "SELECT Votos FROM votacion WHERE id=4";

$res1 = mysql_query($q1,$dbh) or die (mysql_error());
if (mysql_num_rows($res1)>0){
while(list($opcion1)=mysql_fetch_array($res1)){

echo "&opcion1=".$opcion1;

}
}
$res2 = mysql_query($q2,$dbh) or die (mysql_error());
if (mysql_num_rows($res2)>0){
while(list($opcion2)=mysql_fetch_array($res2)){

echo "&opcion2=".$opcion2;

}
}
$res3 = mysql_query($q3,$dbh) or die (mysql_error());

if (mysql_num_rows($res3)>0){
while(list($opcion3)=mysql_fetch_array($res3)){
//echo $opcion3;
//esta nomenclatura de mostrar las variables es para q las
//entienda flash
echo "&opcion3=".$opcion3;

}
}
$res4 = mysql_query($q4,$dbh) or die (mysql_error());
if (mysql_num_rows($res4)>0){
while(list($opcion4)=mysql_fetch_array($res4)){

echo "&opcion4=".$opcion4;

}


}else{

echo "hay algun problema";
}


?>

y mi AS q he metido en el boton q muestra los resultados es:

on(release) {

var datos:LoadVars = new LoadVars();
datos.onLoad =function (exito:Boolean){
if (exito) {
var opcion1:Number = Number (datos.opcion1);
var opcion2:Number = Number(datos.opcion2);
var opcion3:Number = Number(datos.opcion3);
var opcion4:Number = Number(datos.opcion4);
var votostotal:Number = Number(opcion1+opcion2+opcion3+opcion4);
//mensaje_txt.text = datos.opcion1;
//opcion1=datos.opcion1); esto son pruebas pero tampoco me funcionan
//opcion2=datos.opcion2;
//opcion3=datos.opcion3;
//opcion4=datos.opcion4;
//votostotal = opcion1+opcion2+opcion3+opcion4;
trace (votostotal);


}else{
mensaje_txt.text= "Error al cargar los datos";
}
}

datos.load("http://localhost/enviarVotacion3.php");
}

Bueno si han llegado hasta aqui ya les doy las gracias y si además pueden arrogarme algo de luz... mucho más

Por guelu

21 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 27 May 2006 09:25 am
asumo que en el al tomar las variables estan llegando bien, es decir que en el codigo de más abajo las variables opcion1, .... opcion4 tienen el valor de la cantidad de votos.

Prueba con

Código :

if (exito) {
var v1:Number = Number (this.opcion1);
var v2:Number = Number(this.opcion2);
var v3:Number = Number(this.opcion3);
var v4:Number = Number(this.opcion4);
var votostotal:Number = v1+v2+v3+v4 ;


oSimplemente

Código :

if (exito) {
var votostotal:Number =Number (this.opcion1) + Number(this.opcion2) + Number(this.opcion3) + Number(this.opcion4);


otra cosa no menos importante , no será que lo que estas devolviendo desde php no está bien??.

Si quieres contar votos la consulta optima sería

Código :

$sql = "SELECT Count(Votos) AS cantidad FROM votacion GROUP BY id"


con eso despues puedes hacer un while

Código :

$res = mysql_query($sql,$dbh)
while ( ($row = mysql_fetch_array($res) )
{
 echo "&opcion".$row["id"]."=".$row["cantidad"]
}

Por colaborame

50 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 May 2006 12:32 pm
Pues sinceramente no se si es correcta la salida q tengo del php, la salida es :

&opcion1=18&opcion2=5&opcion3=86&opcion4=28

a cada opcion se le asigna un numero de votos, y esos votos soy capaz de q aparezcan el flash en un campo de texto dinámico escribiendo:

var datos:LoadVars = new LoadVars();
datos.onLoad =function (exito:Boolean){
if (exito) {
if (exito) {
mensaje_txt.text = datos.opcion1;

pero si escribo :

var datos:LoadVars = new LoadVars();
datos.onLoad =function (exito:Boolean){
if (exito) {
if (exito) {
var opcion1:Number =datos.opcion1;
var opcion2:Number=datos.opcion2;
var opcion3:Number=datos.opcion3;
var opcion4:Number=datos.opcion4;
var votostotal:Number = opcion1+opcion2+opcion3+opcion4;
trace (votostotal);
}

la salida del trace es 1858628, q no es la suma sino 18+5+86+26 es la union de los diferentes valores!!! es decir los trata como un string.

Probé las opciones q me distes (menos el cambio de las consultas de la DB ya q quiero ver si con las actuales consultas funcina) y no ha dado resultado.
gracias por la ayuda

Por guelu

21 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 27 May 2006 01:58 pm
jejejejejejjej!!! gracias a todos los q se han interesado por el tema pero ya esta resulto;)
la solucion se encuentra en escribir este scritp:

var numero:Number = 0;
var suma:Number = Number(this.opcion1)+ Number(this.opcion2)+ Number(this.opcion3)+ Number(this.opcion4;
trace(suma);

asi q ya funciona. Para los q se encuentren con el mismo problema, hay q hacer tb una sutil variacion en el php cambiar la linea :

echo "&opcion4=".$opcion4;

por:

echo "&opcion4=".$opcion4."&";

de esta manera se indica q la ultima variable es tb String

Pues lo dicho muchas gracias a todos!!!

Por guelu

21 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 28 May 2006 02:01 am
a okas entonces tenia razon en lo que te decia ;) espero que te haya servdo chauuuuu

Por colaborame

50 de clabLevel



Genero:Masculino  

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.