Foros del Web » Programando para Internet » PHP »

reducir codigo

Estas en el tema de reducir codigo en el foro de PHP en Foros del Web. Estoy haciendo una pagina de distintos productos y en la pagina principal hago un llamamiento para poner la cantidad de distintos productos que tengo. mysql_select_db($database_conectar, ...
  #1 (permalink)  
Antiguo 14/11/2007, 10:54
 
Fecha de Ingreso: enero-2007
Mensajes: 23
Antigüedad: 17 años, 3 meses
Puntos: 0
reducir codigo

Estoy haciendo una pagina de distintos productos y en la pagina principal hago un llamamiento para poner la cantidad de distintos productos que tengo.

mysql_select_db($database_conectar, $conectar);
$query_producto = "SELECT * FROM producto WHERE id_sector = 1";
$producto = mysql_query($query_producto, $conectar) or die(mysql_error());
$row_producto= mysql_fetch_assoc($producto);
$totalRows_producto = mysql_num_rows($producto);

El problema es que tengo 21 sectores y tengo que hacer 21 llamamientos como el de arriba, con lo que me genera mucho codigo.
¿Hay alguna forma de reducir el codigo y que me funcione?
  #2 (permalink)  
Antiguo 14/11/2007, 10:59
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: reducir codigo

los sectores los envias por POST? quedaria

Código PHP:
mysql_select_db($database_conectar$conectar);
$query_producto "SELECT * FROM producto WHERE id_sector = '$_POST[sector]'";
$producto mysql_query($query_producto$conectar) or die(mysql_error());
$row_productomysql_fetch_assoc($producto);
$totalRows_producto mysql_num_rows($producto); 
ahora si lo haces correr 21 y seguro van del 1 al 21 entonces pones un for
Código PHP:
for ($i=1;$<=21;$i++)
{
mysql_select_db($database_conectar$conectar);
$query_producto "SELECT * FROM producto WHERE id_sector = '$i'";
$producto mysql_query($query_producto$conectar) or die(mysql_error());
$row_productomysql_fetch_assoc($producto);
$totalRows_producto mysql_num_rows($producto);

espero te sirva
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 14/11/2007, 11:07
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: reducir codigo

select count(*) as total from producto group by id_sector

Te devolverá la cantidad de productos por cada id_sector.
  #4 (permalink)  
Antiguo 14/11/2007, 12:36
 
Fecha de Ingreso: enero-2007
Mensajes: 23
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: reducir codigo

Bien y una vez hecho lo de GROUP BY, como hago el echo para que me de el resultado de cada sector
  #5 (permalink)  
Antiguo 15/11/2007, 09:35
 
Fecha de Ingreso: enero-2007
Mensajes: 23
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: reducir codigo

Como hago para hacer el "echo" de cada sector
  #6 (permalink)  
Antiguo 15/11/2007, 10:25
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: reducir codigo

aqui tienes una idea
Código PHP:
$sector=0;
while(
$row_producto=mysql_fetch_assoc($producto)){
if(
$sector==$row['id_sector']){
echo 
'mismo sector';
}
else{
echo 
'Sector'.$row['id_sector'];
echo 
'datos';
$sector=$row['id_sector'];
}

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 15/11/2007, 10:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: reducir codigo

Solo ciclas el resultado:
Código PHP:
$query "SELECT `id_sector`, COUNT(*) AS 'total' FROM `producto` GROUP BY `id_sector`";
$result mysq_query$query );
while( 
$row mysql_fecth_array$result ) {
      
printf"Para el sector %s, hay %s productos"$row['id_sector'], $row['total'] );

Saludos.
  #8 (permalink)  
Antiguo 26/11/2007, 09:20
 
Fecha de Ingreso: enero-2007
Mensajes: 23
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: reducir codigo

Este me funciona, pero salen todos los resultados seguidos, y lo que yo quiero es el resultado total de cada uno en distintas partes del body

ejemplo:
Producto1(total producto1)
en otro lado del body:
Producto2(total producto2)
  #9 (permalink)  
Antiguo 26/11/2007, 11:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: reducir codigo

Puedes almacenar el resultado en un arreglo, y posteriormente imprimes en donde quieras el arreglo.

Saludos.
  #10 (permalink)  
Antiguo 26/11/2007, 11:52
 
Fecha de Ingreso: enero-2007
Mensajes: 23
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: reducir codigo

No entiendo lo del arreglo
  #11 (permalink)  
Antiguo 26/11/2007, 12:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: reducir codigo

Código PHP:
$query "SELECT `id_sector`, COUNT(*) AS 'total' FROM `producto` GROUP BY `id_sector`";
$result mysq_query$query );
$productos = array();
while( 
$row mysql_fecth_array$result ) {
      
$productos[$row['id_sector']] = $row['total'];


// posteriormente en tu codigo:
echo "Producto 1, total:" $productos[1];

// mas abajo en otro lado
echo "Producto 2, total: " $productos[2]; 
Saludos.
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 09:08.