Foros del Web » Programando para Internet » PHP »

quiero saber si este codigo donde esta mal

Estas en el tema de quiero saber si este codigo donde esta mal en el foro de PHP en Foros del Web. ya que no me funciona Código PHP: //********** function  assignreferrals ( $acountid , $refid , $status , $level ) { include  "config.php" ; if( $status == ...
  #1 (permalink)  
Antiguo 19/12/2013, 21:16
 
Fecha de Ingreso: diciembre-2013
Mensajes: 6
Antigüedad: 10 años, 4 meses
Puntos: 0
quiero saber si este codigo donde esta mal

ya que no me funciona



Código PHP:
//**********
function assignreferrals($acountid,$refid,$status,$level) {
include 
"config.php";

if(
$status==0) {
$rs=mysql_query("Update members set ref_by=".$refid." where ID=".$acountid);
}

if(
$level < ($levels+1)) {
$referralid=0;
$rs=mysql_query("Select * from members where ID=".$refid);
if(
mysql_num_rows($rs)>0)
{
$arr=mysql_fetch_array($rs);
if(
$level==1) {
$rs=mysql_query("Update members set Level1=Level1+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level1." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level1." where ID=".$refid);
}
elseif(
$level==2) {
$rs=mysql_query("Update members set Level2=Level2+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level2." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level2." where ID=".$refid);
}
elseif(
$level==3) {
$rs=mysql_query("Update members set Level3=Level3+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level3." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level3." where ID=".$refid);
}
elseif(
$level==4) {
$rs=mysql_query("Update members set Level4=Level4+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level4." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level4." where ID=".$refid);
}
elseif(
$level==5) {
$rs=mysql_query("Update members set Level5=Level5+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level5." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level5." where ID=".$refid);
}
elseif(
$level==6) {
$rs=mysql_query("Update members set Level6=Level6+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level6." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level6." where ID=".$refid);
}
elseif(
$level==7) {
$rs=mysql_query("Update members set Level7=Level7+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level7." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level7." where ID=".$refid);
}
elseif(
$level==8) {
$rs=mysql_query("Update members set Level8=Level8+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level8." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level8." where ID=".$refid);
}
elseif(
$level==9) {
$rs=mysql_query("Update members set Level9=Level9+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level9." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level9." where ID=".$refid);
}
elseif(
$level==10) {
$rs=mysql_query("Update members set Level10=Level10+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level10." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level10." where ID=".$refid);
}



if(
$arr[11]!=0) {
$referralid=$arr[11];
}

if(
$referralid!=0) {
assignreferrals($acountid,$referralid,1,$level+1);
}

}
}

}
//end of function


//**********
function assignreferralss($acountid,$refid,$status,$level) {
include 
"config.php";

if(
$status==0) {
$rs=mysql_query("Update members set ref_by=".$refid." where ID=".$acountid);
}

if(
$level < ($levels+1)) {
$referralid=0;
$rs=mysql_query("Select * from members where ID=".$refid);
if(
mysql_num_rows($rs)>0)
{
$arr=mysql_fetch_array($rs);
if(
$level==1) {
$rs=mysql_query("Update members set Level1=Level1+1 where ID=".$refid);
}
elseif(
$level==2) {
$rs=mysql_query("Update members set Level2=Level2+1 where ID=".$refid);
}
elseif(
$level==3) {
$rs=mysql_query("Update members set Level3=Level3+1 where ID=".$refid);
}
elseif(
$level==4) {
$rs=mysql_query("Update members set Level4=Level4+1 where ID=".$refid);
}
elseif(
$level==5) {
$rs=mysql_query("Update members set Level5=Level5+1 where ID=".$refid);
}
elseif(
$level==6) {
$rs=mysql_query("Update members set Level6=Level6+1 where ID=".$refid);
}
elseif(
$level==7) {
$rs=mysql_query("Update members set Level7=Level7+1 where ID=".$refid);
}
elseif(
$level==8) {
$rs=mysql_query("Update members set Level8=Level8+1 where ID=".$refid);
}
elseif(
$level==9) {
$rs=mysql_query("Update members set Level9=Level9+1 where ID=".$refid);
}
elseif(
$level==10) {
$rs=mysql_query("Update members set Level10=Level10+1 where ID=".$refid);
}

if(
$arr[11]!=0) {
$referralid=$arr[11];
}

if(
$referralid!=0) {
assignreferralss($acountid,$referralid,1,$level+1);
}

}
}

}
//end of function 
  #2 (permalink)  
Antiguo 20/12/2013, 11:50
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
Respuesta: quiero saber si este codigo donde esta mal

Bueno, podemos comenzar por sacar el include de las funciones (preferible) ó utilizar include_once en su lugar (http://www.php.net/manual/es/function.include-once.php)
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #3 (permalink)  
Antiguo 20/12/2013, 12:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: quiero saber si este codigo donde esta mal

La verdad es que yo lo veo demasiado largo y complicado, lleno de UPDATEs que podrían hacerse de un modo más dinámico (sin contar conque sin concoer la estructura de tablas es dificil opinar bien).

Piensalo así, si esos son los nombres de los campos, yo esto:
Código PHP:
if($level==1) {
$rs=mysql_query("Update members set Level1=Level1+1 where ID=".$refid);
}
elseif(
$level==2) {
$rs=mysql_query("Update members set Level2=Level2+1 where ID=".$refid);
}
elseif(
$level==3) {
$rs=mysql_query("Update members set Level3=Level3+1 where ID=".$refid);
}
elseif(
$level==4) {
$rs=mysql_query("Update members set Level4=Level4+1 where ID=".$refid);
}
elseif(
$level==5) {
$rs=mysql_query("Update members set Level5=Level5+1 where ID=".$refid);
}
elseif(
$level==6) {
$rs=mysql_query("Update members set Level6=Level6+1 where ID=".$refid);
}
elseif(
$level==7) {
$rs=mysql_query("Update members set Level7=Level7+1 where ID=".$refid);
}
elseif(
$level==8) {
$rs=mysql_query("Update members set Level8=Level8+1 where ID=".$refid);
}
elseif(
$level==9) {
$rs=mysql_query("Update members set Level9=Level9+1 where ID=".$refid);
}
elseif(
$level==10) {
$rs=mysql_query("Update members set Level10=Level10+1 where ID=".$refid);

bien podría reemplazarlo por esto:
Código PHP:
if($level>=AND $level<=10 ) {
$qry "Update members set Level".trim($level)."=Level".trim($level)."+1 where ID=".$refid;
$rs=mysql_query($qry);

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 20/12/2013 a las 12:14
  #4 (permalink)  
Antiguo 20/12/2013, 12:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: quiero saber si este codigo donde esta mal

Ah!
Y esta cosa:
Código PHP:
if($level==1) {
$rs=mysql_query("Update members set Level1=Level1+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level1." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level1." where ID=".$refid);
}
elseif(
$level==2) {
$rs=mysql_query("Update members set Level2=Level2+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level2." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level2." where ID=".$refid);
}
elseif(
$level==3) {
$rs=mysql_query("Update members set Level3=Level3+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level3." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level3." where ID=".$refid);
}
elseif(
$level==4) {
$rs=mysql_query("Update members set Level4=Level4+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level4." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level4." where ID=".$refid);
}
elseif(
$level==5) {
$rs=mysql_query("Update members set Level5=Level5+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level5." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level5." where ID=".$refid);
}
elseif(
$level==6) {
$rs=mysql_query("Update members set Level6=Level6+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level6." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level6." where ID=".$refid);
}
elseif(
$level==7) {
$rs=mysql_query("Update members set Level7=Level7+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level7." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level7." where ID=".$refid);
}
elseif(
$level==8) {
$rs=mysql_query("Update members set Level8=Level8+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level8." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level8." where ID=".$refid);
}
elseif(
$level==9) {
$rs=mysql_query("Update members set Level9=Level9+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level9." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level9." where ID=".$refid);
}
elseif(
$level==10) {
$rs=mysql_query("Update members set Level10=Level10+1 where ID=".$refid);
$rs=mysql_query("Update members set Total=Total+".$level10." where ID=".$refid);
$rs=mysql_query("Update members set Unpaid=Unpaid+".$level10." where ID=".$refid);

bien podrías cambiala por esto:
Código PHP:
if($level>=and $level<=10 ) {
$qry "Update members set Level".trim($level)."=Level".trim($level)."+1, Total=Total+".$level.", Unpaid=Unpaid+".$level." where ID=".$refid;
$rs=mysql_query($qry);

En serio, deberías estudiar un poco de SQL antes de ponerte a meterlo en el PHP...

Nota: Tener diez campos para almacenar diez valores diferentes de diez niveles, es una muestra de que ea base está desnormalizada, y por tanto es bastante ineficiente. Eso más allá de que te funcione o no. Una base desnormalizada implica que a corto plazo tendrás consultas de baja performance, y problemas de optimización. Pero ese es tema de otro foro (Bases de Datos).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 20/12/2013 a las 12:13
  #5 (permalink)  
Antiguo 20/12/2013, 12:08
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: quiero saber si este codigo donde esta mal

Es con AND, si pones un OR, siempre será TRUE xd.
  #6 (permalink)  
Antiguo 20/12/2013, 12:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: quiero saber si este codigo donde esta mal

Cita:
Iniciado por marlanga Ver Mensaje
Es con AND, si pones un OR, siempre será TRUE xd.
Cierto...


Es que no me acostumbro a que no exista un BETWEEN para usar en programación, como en SQL...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 20/12/2013, 12:16
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: quiero saber si este codigo donde esta mal

Yo sólo digo verdades, incluso cuando insulto.

Etiquetas: quiero, select, sql
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 19:11.