Foros del Web » Programando para Internet » PHP »

cual es el correcto orden en los else if

Estas en el tema de cual es el correcto orden en los else if en el foro de PHP en Foros del Web. tengo este script que genera una tabla en base a una consulta sql pero no me funciona ............. hice unas modificaciones en la parte de ...
  #1 (permalink)  
Antiguo 30/10/2009, 09:18
 
Fecha de Ingreso: mayo-2005
Mensajes: 121
Antigüedad: 18 años, 11 meses
Puntos: 0
cual es el correcto orden en los else if

tengo este script que genera una tabla en base a una consulta sql pero no me funciona ............. hice unas modificaciones en la parte de los "if else".......
estara correcta esa parte de los "if else" ?
como deberia ser?

ahora estas partes: $sql2=mysql_query($sql1);
$sql2=mysql_query($sql1);

----deberia ir dentro de los "if" y "else if" o a lo ultimo despues del "else" o ese "else" no debe ir a lo ultimo?

nota:
la consulta la hace en dos tablas diferentes..... en el ejemplo le puse a y b

este es el codigo:

================================================== ==

function almacen($equipo,$cantidad){

if ($equipo!=""){
$sql1="SELECT * FROM a,b WHERE variabl1e='$equipo' AND a=b ORDER BY id_equipo";
$sql2=mysql_query($sql1);
}

else if($cantidad!=""){
$sql1="SELECT * FROM a,b WHERE variable2='$cantidad' AND a=b ORDER BY id_cantidad";
$sql2=mysql_query($sql1);
}

else{
$mostrar='<table width="400" border="1" align="center">
<tr>
<td width="125"><div align="center">equipo</div></td>
<td width="125"><div align="center">cantidad</div></td>
</tr>';

while ($detalle=mysql_fetch_array($sql2))
{
$equipo=$regis["ca_equipo"];
$cantidad=$regis["re_cantidad"];

$mostrar=$mostrar.'
<td><a href="javascript:equipo(\''.$equipo .'\',\''.$cantidad.'\',);"class="diseño">'.$equipo .'</a></td>
<td><a href="javascript:equipo(\''.$equipo .'\',\''.$cantidad.'\');"class="diseño">'.$cantida d.'</a></td>

</tr>';
$mostrar=$mostrar.'</table>';// fin de la tabla y

................ continua el codigo hasta el fin del while y fin de la funcion

================================================== ====

nota:
son dos campos
si ingreso un campo hace una consulta y si ingreso el otro hace otra consulta
y si ingreso los dos a la ves hace otra consulta ... todavia me falta es parte.....

llamada de emergencia ........ayuda!!!!!!!!!
  #2 (permalink)  
Antiguo 30/10/2009, 09:25
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: cual es el correcto orden en los else if

Código:
Si Codicion1 <IF>
  preparo query de la condicion 1
En caso contrario si Condicion 2 <ELSEIF>
  preparo query de la condicion 2
En caso contrario si Condicion 3 <ELSEIF>
 preparo query de la condicion 3
Resto de casos (opcional) <ELSE>
 preparo query para el resto de casos
  #3 (permalink)  
Antiguo 30/10/2009, 09:27
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: cual es el correcto orden en los else if

lo que puedes hacer es hacer la consulta de esta forma

Código PHP:
$sql1="SELECT * FROM a,b WHERE 1=1;


if ($equipo!=""){
$sql1 . ="
and variable1='$equipo' ";
}

 if($cantidad!=""){
$sql1 .="
and variable2='$cantidad'";

}
$sql2=mysql_query($sql1); 
  #4 (permalink)  
Antiguo 30/10/2009, 09:34
 
Fecha de Ingreso: septiembre-2009
Mensajes: 24
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: cual es el correcto orden en los else if

para empezar tienes no puedes comparar dos tablas asi como lo haces(ya que las tablas no son completamente iguales, y si lo fueran no necesitarias las dos XD), tienes que poner claves foraneas o por lo menos poner columnas que sean iguales, algo asi, ejemplo:

a.nombrecolumnaA= b.nombrecolumnaB donde donde nombre existe en las dos tablas y tienen el mismo tipo (string, int, date, etc) no se si me entiendas.

Ten en cuenta que la columna nombre solo la invente a manera de ejemplo.

avisa cualquier cosa(Y)
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:30.