Foros del Web » Programando para Internet » PHP »

Contar Registros desde PHP

Estas en el tema de Contar Registros desde PHP en el foro de PHP en Foros del Web. Hola compañeros de foros del web, hoy vuelvo a escribirles para pedir de nuevo su ayuda ya que he buscado y he probado e intentado ...
  #1 (permalink)  
Antiguo 10/01/2012, 12:11
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Contar Registros desde PHP

Hola compañeros de foros del web, hoy vuelvo a escribirles para pedir de nuevo su ayuda ya que he buscado y he probado e intentado y no he podido resolver mi problema, aqui les explico:

Tengo una consulta SQL

Código PHP:
 $count=" SELECT ta_id FROM cgrel_obj_est
             INNER JOIN cgobjgen ON gen_id=res_idobjge
             INNER JOIN cgrela_gen_esp ON ges_idgen=gen_id
             INNER JOIN cgobjesp ON ges_idesp=esp_id
             INNER JOIN cgrela_objespe_tar ON ot_obj_espe=esp_id
             INNER JOIN cgtarea ON ot_tarea=ta_id
           WHERE res_idobjest = '$idobj' "
;
 
$contador=$conexion->ejecutarQuery($count);
 
#$array1=mysql_result($contador,0,0);
 
$array1=mysql_num_rows($contador);
 
$array2=mysql_fetch_array($contador); 
La cual me trae 7 registros y son los id de las tareas (nombre del campo es ta_id).

Ahora bien, lo que busco es insertar esos id en otra tabla que me relacionara esas tareas con un usuario, pero como el id de la tarea es variable, hice un ciclo asi:

Código PHP:
$estatus "INSERT INTO cgstatus_tareas (st_idproyecto,st_idtarea,st_fecha,st_accionclie,st_fechamax,st_fechamin,st_comentario,st_recurso,st_status) VALUES";
        for (
$z 0$z $array1$z++) {
              
$estatus .= " ('$id','$array2[$z]','$fecha','algo','2012-01-15','2012-01-13','lo que sea','$lider','Pendiente'),";
            }
      
$estatus substr($estatus0strlen($estatus) - 1);
      
$tarea $conexion->ejecutarQuery($estatus);
      echo 
$cont."<br>"
      echo 
$estatus."<br>"
Ya he usado el COUNT en PHP y en MySQL y no obtengo lo que busco, la idea es poder recorrer los resultados que me arroje la consulta para obtener la cantidad por ejemplo 7 y tambien obener esos id para usarlos en el INSERT y con el ciclo FOR insertar los 7 registros, la cantidad puede ser N por eso el ciclo FOR.

Alguien me podria ayudar con lo que busco, de verdad he probado mucha cosas y no he logrado el INSERT que busco.

si hago:
Código PHP:
$cont COUNT ($array1); 
No me devuelve la cantidad correcta, en vez de 7 me devuelve 2.

Espero puedan ayudar con esto, Saludos compañeros
  #2 (permalink)  
Antiguo 10/01/2012, 12:33
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: Contar Registros desde PHP

porque $array1 no es un vector :S es un integer, el mysql_num_rows te devuelve un integer con la cantidad de registros. Por eso $cont = COUNT ($array1); te va a devolver en este caso la cantidad de posiciones que tiene el vector de caracteres (string) de $array1. Si el insert te lo hizo bien, entonces el problema esta en el count que lo estas haciendo sobre un integer y no sobre un vector.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 10/01/2012, 12:41
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Contar Registros desde PHP

hola linuxzero gracias por tu rapida respuesta, bueno el problema es que no me inserta los datos, incluso proble quitando el mysql_num_rows y dejando solamente el mysql_fetch_array y aun asi el COUNT no me funciona.

La idea es que inserte tantas veces sea la variable, en este caso me deberia insertar 7 registros con los distintos ID que contenga el campo TA_ID.

Alguna sugerencia??
  #4 (permalink)  
Antiguo 10/01/2012, 12:46
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: Contar Registros desde PHP

Podes probar en recorrer los mismos resultados y hacer los inserts, que seria algo asi:

Código PHP:
Ver original
  1. $count=" SELECT ta_id FROM cgrel_obj_est
  2.             INNER JOIN cgobjgen ON gen_id=res_idobjge
  3.             INNER JOIN cgrela_gen_esp ON ges_idgen=gen_id
  4.             INNER JOIN cgobjesp ON ges_idesp=esp_id
  5.             INNER JOIN cgrela_objespe_tar ON ot_obj_espe=esp_id
  6.             INNER JOIN cgtarea ON ot_tarea=ta_id
  7.           WHERE res_idobjest = '$idobj' ";
  8.  $contador=$conexion->ejecutarQuery($count);
  9.  //$array1=mysql_result($contador,0,0);
  10.  //$array1=mysql_num_rows($contador);
  11.  //$array2=mysql_fetch_array($contador);
  12.  while ($row = mysql_fetch_object($contador)) {
  13.      // El $id, $fecha y $lider quiero creer que estan en algun lado del codigo puesto que no lo pusiste pero supongamos que existen y dan datos bien
  14.      $estatus[] = "('$id','$array2[$z]','$fecha','algo','2012-01-15','2012-01-13','lo que sea','$lider','Pendiente')";
  15.  }
  16.  
  17.  $conexion->ejecutarQuery("INSERT INTO cgstatus_tareas (st_idproyecto,st_idtarea,st_fecha,st_accionclie,st_fechamax,st_fechamin,st_comentario,st_recurso,st_status) VALUES " . join(',', $estatus));
  18.  
  19. unset($estatus);

Proba con algo asi a ver si te funciona.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 10/01/2012, 13:05
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Contar Registros desde PHP

Bueno, me dio este error al cambiar mi codigo por el que me pasaste:

Catchable fatal error: Object of class stdClass could not be converted to string in C:\xampp\htdocs\gestor2\Gestor\proyecto_BD.php on line 152

no entiendo mucho el error


Y si, la variables $id, $fecha y $lider ya estan definidas, solo que no quise colocar el codigo completo ya que es bastante extenso

Última edición por mixzplit; 10/01/2012 a las 13:06 Razón: Informacion
  #6 (permalink)  
Antiguo 10/01/2012, 13:08
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: Contar Registros desde PHP

En esta linea cambiala:

Código PHP:
Ver original
  1. $estatus[] = "('" . $id . "','" . $row->ta_id . "','" . $fecha . "','algo','2012-01-15','2012-01-13','lo que sea','" . $lider . "','Pendiente')";
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #7 (permalink)  
Antiguo 10/01/2012, 13:23
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Contar Registros desde PHP

El proceso lo hace bien, no me da ningun error, pero no me guarda en la BD, gracias por tu ayuda seguire investigando a ver como lo resuelvo

Gracias, Saludos
  #8 (permalink)  
Antiguo 10/01/2012, 13:24
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: Contar Registros desde PHP

Entonces debe haber algo mal en la clase que maneja las consultas. Porque la sintaxis esta bien, si estan todas las variables bien definidas.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com

Etiquetas: mysql, registro, registros, sql, tabla, variables, usuarios
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 22:41.