Foros del Web » Programando para Internet » PHP »

ayuda porfavor amigos

Estas en el tema de ayuda porfavor amigos en el foro de PHP en Foros del Web. hola que tal foro quisiera que me ayudaran con esto tengo un campo de fecha en mi base de datos en formato YYYY/MM/DD ahora quisiera ...
  #1 (permalink)  
Antiguo 17/03/2011, 11:53
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
ayuda porfavor amigos

hola que tal foro quisiera que me ayudaran con esto

tengo un campo de fecha en mi base de datos en formato YYYY/MM/DD ahora quisiera saber como nacer un contador por ejemplo

si tengo en mi campo estos valores

2011/03/17
2011/03/15
2011/03/14
2011/03/18
2011/02/26
2011/02/04
2011/02/01
2011/02/21
2011/02/22
2011/04/17
2011/04/30
2011/06/19
2011/06/01

generar en una tabla lo siguiente:

enero feb marzo abril mayo junio etc........
0 5 4 2 0 2 etc........

el cero es porque no tiene ningun registro
  #2 (permalink)  
Antiguo 17/03/2011, 11:57
 
Fecha de Ingreso: marzo-2009
Mensajes: 356
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: ayuda porfavor amigos

Podrias extraer el mes, luego con un sumador almacenar la cantidad de meses con igual numero
e insertarlo
  #3 (permalink)  
Antiguo 17/03/2011, 12:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: ayuda porfavor amigos

Algun ejemplo de como hacerlo???
  #4 (permalink)  
Antiguo 17/03/2011, 12:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 356
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: ayuda porfavor amigos

select COUNT(month(TU_CAMPO_FECHA)) from tabla where month(TU_CAMPO_FECHA) = $i

WENO CON ESO PODRIAS SABER LO Q NECESITAS, LA CANTIDAD DE CADA MES Q TIENES ALMACENADOS

$i = autoincrementado claro q va 1-12 (podria ir en un for) y COUNT va contando el numero de meses iguales

ahora podrias almacenarlo o ir insertando, ya a tu imaginacion como quieras hacerlo
  #5 (permalink)  
Antiguo 17/03/2011, 12:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: ayuda porfavor amigos

me podrias decir como pongo el for este es lo que he hecho pero me imprime en columnas y no en una sola fila

Código PHP:
<?php

$bd_host 
"localhost"
$bd_usuario "root"
$bd_password ""
$bd_base "test"

$con mysql_connect($bd_host$bd_usuario$bd_password); 

mysql_select_db($bd_base$con); 

$i=0;
$sql=mysql_query("select COUNT(month(fecha)) from alguna where month(fecha) = $i",$con);


echo 
"<table border='1'>
  <tr>
  <td>Enero</td>
  <td>Febrero</td>
  <td>Marzo</td>
  <td>Abril</td>
  <td>Mayo</td>
  <td>Junio</td>
  <td>Julio</td>
  <td>Agosto</td>
  <td>Septiembre</td>
  <td>Octubre</td>
  <td>Noviembre</td>
  <td>Diciembre</td>
  </tr>\n"
;

for ( 
$i $i <= 12 $i ++) {
    echo 
"<tr>
    <td>$i</td>
    </tr> \n"
;
}
?>
  #6 (permalink)  
Antiguo 17/03/2011, 13:07
 
Fecha de Ingreso: marzo-2009
Mensajes: 356
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: ayuda porfavor amigos

la consulta metela dentro del for, ya que asi va reportando la cantidad de cada mes.

y listo
  #7 (permalink)  
Antiguo 17/03/2011, 13:15
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: ayuda porfavor amigos

mmm creo que todavia tengo algo mal porque en la base de datos solo tengo 3 registro y me imprime el numero 13 en toda la fila aqui pongo el codigo

Código PHP:
<?php

$bd_host 
"localhost"
$bd_usuario "root"
$bd_password ""
$bd_base "test"

$con mysql_connect($bd_host$bd_usuario$bd_password); 

mysql_select_db($bd_base$con); 

echo 
"<table border='1'>
  <tr>
  <td>Enero</td>
  <td>Febrero</td>
  <td>Marzo</td>
  <td>Abril</td>
  <td>Mayo</td>
  <td>Junio</td>
  <td>Julio</td>
  <td>Agosto</td>
  <td>Septiembre</td>
  <td>Octubre</td>
  <td>Noviembre</td>
  <td>Diciembre</td>
  </tr>\n"
;

for ( 
$i $i <= 12 $i ++) { 
    
$sql=mysql_query("select COUNT(month(fecha)) from alguna where month(fecha) = $i",$con);
}
echo 
"<tr>
    <td>$i</td>
    <td>$i</td>
    <td>$i</td>
    <td>$i</td>
    <td>$i</td>
    <td>$i</td>
    <td>$i</td>
    <td>$i</td>
    <td>$i</td>
    <td>$i</td>
    <td>$i</td>
    <td>$i</td>
    </tr> \n"
;
?>
  #8 (permalink)  
Antiguo 17/03/2011, 13:20
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: ayuda porfavor amigos

for ( $i = 0 ; $i <= 12 ; $i ++) { por eso te imprime 13 veces,
  #9 (permalink)  
Antiguo 17/03/2011, 13:26
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: ayuda porfavor amigos

Prueba de esta manera

Código PHP:
Ver original
  1. <?php
  2.  
  3. $bd_host = "localhost";
  4. $bd_usuario = "root";
  5. $bd_password = "";
  6. $bd_base = "test";
  7.  
  8. $con = mysql_connect($bd_host, $bd_usuario, $bd_password);
  9.  
  10. mysql_select_db($bd_base, $con);
  11.  
  12. echo "<table border='1'>
  13.  <tr>
  14.  <td>Enero</td>
  15.  <td>Febrero</td>
  16.  <td>Marzo</td>
  17.  <td>Abril</td>
  18.  <td>Mayo</td>
  19.  <td>Junio</td>
  20.  <td>Julio</td>
  21.  <td>Agosto</td>
  22.  <td>Septiembre</td>
  23.  <td>Octubre</td>
  24.  <td>Noviembre</td>
  25.  <td>Diciembre</td>
  26.  </tr>
  27.  <tr>";
  28.  
  29. for ( $i = 0 ; $i <= 12 ; $i ++)
  30. {
  31.     $sql=mysql_query("select COUNT(month(fecha)) cantidad from alguna where month(fecha) = $i",$con);
  32.     echo "<td>cantidad</td>";
  33. }
  34. echo "</tr>";
  35. ?>
  #10 (permalink)  
Antiguo 17/03/2011, 13:27
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: ayuda porfavor amigos

no creo que entendiste mal me imprime una vez el numero 13
  #11 (permalink)  
Antiguo 17/03/2011, 13:30
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: ayuda porfavor amigos

Probaste como te dije yo??? es obvio que te imprima el valor 13 si tienes la Variable fuera del ciclo, ademas estas imprimiendo una variable autoincrementable prueba con el codigo que te pase, sino te resulta hazlo saber, aunque creo que esta bien, saludos
  #12 (permalink)  
Antiguo 17/03/2011, 13:38
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: ayuda porfavor amigos

con el codigo que me pusiste bUllan9ebrio ahora si me imprime 13 veces pero el texto "cantidad" nada de numero solo letras y si le cambio

for ( $i = 0 ; $i <= 12 ; $i ++) por for ( $i = 1 ; $i <= 12 ; $i ++) ya imprime 12 veces el texto "cantidad" y lo que quiero es que imprima la suma de cada mes ejemplo

si tengo en mi campo estos valores

2011/03/17
2011/03/15
2011/03/14
2011/03/18
2011/02/26
2011/02/04
2011/02/01
2011/02/21
2011/02/22
2011/04/17
2011/04/30
2011/06/19
2011/06/01

generar en una tabla lo siguiente:

enero 0
feb 5
marzo 4
abril 2
mayo 0
junio 2
etc........

el cero es porque no tiene ningun registro
  #13 (permalink)  
Antiguo 17/03/2011, 14:16
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: ayuda porfavor amigos

Prueba con esto

Código PHP:
Ver original
  1. for ( $i = 1 ; $i <= 12 ; $i ++)
  2.       {
  3.           $sql=mysql_query("select COUNT(month(fecha)) as cantidad from alguna where month(fecha) = $i",$con);
  4.           echo "<td>cantidad</td>";
  5.       }
  #14 (permalink)  
Antiguo 17/03/2011, 14:45
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: ayuda porfavor amigos

mmmm nada sigue mostrando lo mismo

en el encabezado de la tabla muestra:

enero febrero marzo etc......

y en las filas solo muestra

cantidad cantidad cantidad cantidad (para todos los meses)
  #15 (permalink)  
Antiguo 17/03/2011, 15:32
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: ayuda porfavor amigos

Pues claro que te muestra CANTIDAD no vez que en el <td> estas colocando que te imprima eso...

Debes colocar ahi lo que te resulte de la base de datos, por ejemplo,

echo $resultado['campoBaseDatos'];
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #16 (permalink)  
Antiguo 17/03/2011, 15:39
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: ayuda porfavor amigos

mmmm tienes razon ya lo cambie pero ahora no imprime nada
  #17 (permalink)  
Antiguo 17/03/2011, 15:45
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: ayuda porfavor amigos

Y que tal si almacenas el resultado de mysql_query en un array ???? eso seria GENIAL

$resultado = mysql_fetch_array($sql);

Ahora si podrias usar:

$resultado['campoBaseDatos'];
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #18 (permalink)  
Antiguo 17/03/2011, 15:53
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: ayuda porfavor amigos

Gracias por tu tiempo pero sigue sin imprimir nada, y sigo buscando soluciones, le pongo le quito y nada
  #19 (permalink)  
Antiguo 17/03/2011, 18:00
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: ayuda porfavor amigos

Hola

Postea el ultimo codigo que usastes.

Comprueba que en la consulta esten los campos y la tabla de tu BBDD que estas usando.

Código PHP:

$sql
=mysql_query("SELECT COUNT(month(fecha)) AS cantidad FROM alguna WHERE month(fecha) = $i",$con); 
Un saludo
  #20 (permalink)  
Antiguo 18/03/2011, 09:28
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: ayuda porfavor amigos

este es el ultimo codigo que utilice ya con lo que me indicaste jaronu

Código PHP:
<?php
 
$bd_host 
"localhost"
$bd_usuario "root"
$bd_password ""
$bd_base "test"
 
$con mysql_connect($bd_host$bd_usuario$bd_password); 
 
mysql_select_db($bd_base$con); 
 
echo 
"<table border='1'>
  <tr>
  <td>Enero</td>
  <td>Febrero</td>
  <td>Marzo</td>
  <td>Abril</td>
  <td>Mayo</td>
  <td>Junio</td>
  <td>Julio</td>
  <td>Agosto</td>
  <td>Septiembre</td>
  <td>Octubre</td>
  <td>Noviembre</td>
  <td>Diciembre</td>
  </tr>
  <tr>"
;
 
for ( 
$i $i <= 12 $i ++)
      {
          
$sql=mysql_query("SELECT COUNT(month(fecha)) AS cantidad FROM alguna WHERE month(fecha) = $i",$con); 
          
$resultado mysql_fetch_array($sql);
          echo 
$resultado['fecha'];
      }
echo 
"</tr>";
?>
no se si tenga algo que ver la base de datos la pongo tambien

Código PHP:
CREATE TABLE IF NOT EXISTS `alguna` (
  `
fechadate NOT NULL
ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- 
Volcar la base de datos para la tabla `alguna`
--

INSERT INTO `alguna` (`fecha`) VALUES
('2011-03-18'),
(
'2011-04-13'),
(
'2011-03-16'); 
  #21 (permalink)  
Antiguo 18/03/2011, 09:37
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: ayuda porfavor amigos

Imprime echo $resultado['cantidad']; ya que le estas dando un alias al campo fecha
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #22 (permalink)  
Antiguo 18/03/2011, 10:09
 
Fecha de Ingreso: febrero-2011
Mensajes: 195
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: ayuda porfavor amigos

tampoco no hace nada, se me esta ocurriendo otra idea, seria con case mas omenos el codigo seria asi pero tampoco funciona

Código PHP:
<?php
 
$bd_host 
"localhost"
$bd_usuario "root"
$bd_password ""
$bd_base "test"
 
$con mysql_connect($bd_host$bd_usuario$bd_password); 
 
mysql_select_db($bd_base$con); 

$sql=mysql_query("SELECT fecha FROM alguna ",$con);

$contEnero=0;
$contFebrero=0;
$contMarzo=0;
$contAbril=0;
$contMayo=0;
$contJunio=0;
$contJulio=0;
$contAgosto=0;
$contSeptiembre=0;
$contOctubre=0;
$contNoviembre=0;
$contDiciembre=0;

$fecha=$_POST['fecha'];  
list(
$anyo$mes$dia) = split('/'$fecha);

switch(
$mes)
{
case 
"1":
    if(
$mes=01){$contEnero++;
    break;
    }
case 
"2":
    
$contFebrero++;
    break;
case 
"3":
    
$contMarzo++;
    break;
case 
"4":
    
$contAbril++;
    break;
case 
"5":
    
$contMayo++;
    break;
case 
"6":
    
$contJunio++;
    break;
case 
"7":
    
$contJulio++;
    break;
case 
"8":
    
$contAgosto++;
    break;
case 
"9":
    
$contSeptiembre++;
    break;
case 
"10":
    
$contOctubre++;
    break;
case 
"11":
    
$contNoviembre++;
    break;
case 
"12":
    
$contDiciembre++;
    break;


echo 
"<table border='1'>
  <tr>
  <td>Enero</td>
  <td>Febrero</td>
  <td>Marzo</td>
  <td>Abril</td>
  <td>Mayo</td>
  <td>Junio</td>
  <td>Julio</td>
  <td>Agosto</td>
  <td>Septiembre</td>
  <td>Octubre</td>
  <td>Noviembre</td>
  <td>Diciembre</td>
  </tr>"
;
  
echo 
"<tr>
  <td>$contEnero</td>
  <td>$contFebrero</td>
  <td>$contMarzo</td>
  <td>$contAbril</td>
  <td>$contMayo</td>
  <td>$contJunio</td>
  <td>$contJulio</td>
  <td>$contAgosto</td>
  <td>$contSeptiembre</td>
  <td>$contOctubre</td>
  <td>$contNoviembre</td>
  <td>$contDiciembre</td>
  </tr>"
;
 
?>
La logica se ve mas sencilla ahorita solo esta para enero pero seria lo mismo para los demas meses

Última edición por andoencombi; 18/03/2011 a las 10:14

Etiquetas: Ninguno
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 04:54.