Foros del Web » Programando para Internet » PHP »

contar una variable de un campo que esta definida como enum en mysql

Estas en el tema de contar una variable de un campo que esta definida como enum en mysql en el foro de PHP en Foros del Web. Hola, quisiera contar el numero de equipos disponibles. Pero no sé bien como realizar el codigo. Tengo una tabla llamada "equipos_aud" con los campos: bien_nac= ...
  #1 (permalink)  
Antiguo 06/01/2004, 15:15
 
Fecha de Ingreso: diciembre-2003
Mensajes: 212
Antigüedad: 20 años, 4 meses
Puntos: 0
contar una variable de un campo que esta definida como enum en mysql

Hola, quisiera contar el numero de equipos disponibles. Pero no sé
bien como realizar el codigo.
Tengo una tabla llamada "equipos_aud" con los campos:
bien_nac= campo autonimerico, y campo clave
disponib_eq= esta definido en Mysql como Enum, y sus posibles valores son "SI" y "NO"

Trate de hacer un contador para q cada vez q encontrada un equipo audiovisual y revisara si era disponible
incrementara una variable q la inicialice en 0, asi:

La variable $tem2= $row["COD_EQ"];
se refiere al cod del equipo que identifica cada equipo audiovisual

$disp=0; //variable que cuenta la disponibilidad de los equipos
<¿
//Busco la disponiblidad de ese equipo
/* $strsql3 = "select DISPONIB_EQ from equipos_aud where BIEN_NAC = $tem6 and DISPONIB_EQ='SI'";
$rs3 = mysql_query($strsql3, $cni) or die(mysql_error());
$row3=mysql_fetch_array($rs3);
$tem6 = $row3["DISPONIB_EQ"];
while ($tem6 = 'SI')
{
$disp = $disp + 1; //incrementa el contador de equipos disponibles
} #fin del while ($tem5 = SI) */

?>

luego muestro esa variable en un campo de una tabla:
<td class="cuerponegrita"><div align="center"><?php echo $disp?></div></td>

Espero me puedan ayudar gracias.

Última edición por sofia2; 06/01/2004 a las 15:18
  #2 (permalink)  
Antiguo 06/01/2004, 17:00
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 5 meses
Puntos: 11
lo mas rapido es que mysql cuente los equipos disponibles y te entregue ese numero:

el select seria asi:

select count(*) as disponibles from equipos_aud where BIEN_NAC = $tem6 and disponib_eq='SI';

y en php se obtendria el valor asi:

$disp=$row['disponibles'];

luego muestra esa variable en un campo de una tabla:
<td class="cuerponegrita">
<div align="center">
<?php echo $disp?>
</div>
</td>
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #3 (permalink)  
Antiguo 07/01/2004, 08:05
 
Fecha de Ingreso: diciembre-2003
Mensajes: 212
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias Claudio!! Esa fue la solucion apropiada
  #4 (permalink)  
Antiguo 07/01/2004, 10:10
 
Fecha de Ingreso: diciembre-2003
Mensajes: 212
Antigüedad: 20 años, 4 meses
Puntos: 0
Otra pregunta como hago para mostrar el numero del bien nacional de los equipos disponibles, tengo el siguiente codigo, pero me muestra solo el bien nacional del primer equipo:

<?php
//Realiza la busqueda del equipo audiovisual
$cni = conectarse();

$strsql = "select COD_EQ,EQUIPO,CANT_TOTAL_EQ from detalle_equipo where COD_EQ= $r_eq";
$rs = mysql_query($strsql, $cni) or die(mysql_error());

while ($row = mysql_fetch_array($rs)){ //while1
$tem2 = $row["COD_EQ"];
$tem9 = $row["EQUIPO"];

Aqui es dde busco el bien nacional de los equipos disponibles
$strsql2 = "select BIEN_NAC from equipos_aud where COD_EQ = $tem2 and DISPONIB_EQ='SI'";
$rs2 = mysql_query($strsql2, $cni) or die(mysql_error());
$row2=mysql_fetch_array($rs2);
$tem6 = $row2["BIEN_NAC"];

//Busco la disponiblidad de ese equipo

$strsql3 = "select count(*) as disponibles from equipos_aud where COD_EQ = $tem2 and DISPONIB_EQ='SI'";
$rs3 = mysql_query($strsql3, $cni) or die(mysql_error());
$row3=mysql_fetch_array($rs3);
$disp = $row3["disponibles"];

?>
<tr>
<td class="cuerponegrita"> <div align="center"><?php echo $row["EQUIPO"];?></div></td>
<td class="cuerponegrita"> <div align="center"><?php echo $row["CANT_TOTAL_EQ"];?></div></td>
<td class="cuerponegrita"><div align="center"><?php echo $disp?></div></td>
<td> <p align="center" class="cuerponegrita"><?php echo $row2["BIEN_NAC"];?></p></td>
</tr>
<!-- <td> <p align="center" class="cuerponegrita"><a href="aiVerSolicEquipos.php?BIEN_NAC=<?php echo $row["BIEN_NAC"]; ?>">Ver
solicitud</a></p></td> -->
<?php
} #fin del while1
mysql_close($cni);

?>

no se si el problema es q el select esta dentro de un while y por eso escoje nada mas el primer equipo. La consulta la probe en sql query y si me funciona:

select BIEN_NAC from equipos_aud where COD_EQ = $tem2 and DISPONIB_EQ='SI'

Espero me puedan ayudar
  #5 (permalink)  
Antiguo 07/01/2004, 11:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tienes que usar otro bucle para recorrer el resultado que te arroja una ejecución de msyql_query que a su vez la "desglosas" en un array usando mysql_fetch_array() .. tal cual haces en el primer paso que haces ..

$rs2 = mysql_query($strsql2, $cni) or die(mysql_error());
whie ($row2=mysql_fetch_array($rs2)){
$tem6 = $row2["BIEN_NAC"];
echo $term6;
}

(bueno .. ahora no sé si era ese el que quieres obtener o el otro que ronda por ahí .. pero la base es la misma .. Lo que obtienes de ejecutar una consulta es un "record-set" (conjunto de registros) .. tantos como tus condicionales usados en tu SQL arroje esa consulta .. Si ejecutas UNA vez sólo mysql_fecht_array() te devolverá el primer registro .. si lo ejecutas denuevo .. el segundo .. y así hasta el último que devolverá "false" . por eso se suele usar un bucle tipo while() según ya has visto).

un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 07/01/2004, 12:51
 
Fecha de Ingreso: diciembre-2003
Mensajes: 212
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola Cluster, hice lo que me dijiste pero no me funciona, nose si es que coloque el while dde no era, lo colocque aqui:

while ($row = mysql_fetch_array($rs)){ //while1
$tem2 = $row["COD_EQ"];
$tem9 = $row["EQUIPO"];

$strsql2 = "select BIEN_NAC from equipos_aud where COD_EQ = $tem2 and DISPONIB_EQ='SI'";
$rs2 = mysql_query($strsql2, $cni) or die(mysql_error());
while ($row2=mysql_fetch_array($rs2)){
$tem6 = $row2["BIEN_NAC"];
// echo $tem6;
}
luego sigue el resto del codigo
para mostrarlo puse:
<td> <p align="center" class="cuerponegrita"><?php echo $tem6;?></p></td>

ahora me muestra el ultimo bien nacional de equipos disponibles.
Sera q tengo q colocarlo fuera del primer while??
Q estoy haciendo mal
  #7 (permalink)  
Antiguo 09/01/2004, 07:21
 
Fecha de Ingreso: diciembre-2003
Mensajes: 212
Antigüedad: 20 años, 4 meses
Puntos: 0
Por favor lean la pregunta anterior.
Si me pueden ayudar se los agradeceria
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 18:31.