Foros del Web » Programando para Internet » PHP »

Problema con sentencia FOR

Estas en el tema de Problema con sentencia FOR en el foro de PHP en Foros del Web. hola amigos del FORO!, alguien me podria decir como listar datos de una tabla en base a un numero de un campo asignado desde la ...
  #1 (permalink)  
Antiguo 07/07/2010, 08:57
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Problema con sentencia FOR

hola amigos del FORO!, alguien me podria decir como listar datos de una tabla en base a un numero de un campo asignado desde la BD... me explico, tengo dos tablas, carpeta y encuestas, en la tabla carpeta tengo un campo llamado "numero_de_encuestas" y que tienen relacion al numero de encuestas que tendré que ingresar. Tengo la primera parte hecha.. muestro el numero de carpetas asignadas a un usuario (encuestador)

Código PHP:
Ver original
  1. <?php
  2. include("conectar.php");
  3.  
  4. $sql = mysql_query("SELECT * FROM encuesta ORDER BY codigo_sector DESC");
  5.     $nfilas = mysql_num_rows ($sql);
  6.     for ($i=0; $i<$nfilas; $i++)
  7.                 {
  8.     $lista = mysql_fetch_array($sql);
  9.    
  10.           if($lista['encuestador'] == $_SESSION['s_username'])
  11.         {
  12.     print ("<TABLE class='listable' width='600px' border='1'>");
  13.     print ("<TR>\n");
  14.     print ("<TD align='center' width='105' name='enc'><a href='mis_encuestas.php?codigo_sector=".$lista['codigo_sector']."'>" . $lista['encuestador'] . "</a></TD>\n");
  15.                 print ("<TD align='center' width='100'>". $lista['zona_censal'] . "</TD>\n");
  16.     print ("<TD align='center' width='120'>". $lista['distrito_censal'] . "</TD>\n");
  17.     print ("<TD align='center' width='80' >". $lista['manzana'] . "</TD>\n");
  18.     print ("<TD align='center' >". $lista['seccion'] . "</TD>\n");
  19.     print ("<TD align='center' width='100'>". $lista['fecha'] . "</TD>\n");
  20.     print ("</TR>\n");
  21.     print ("</TABLE>\n");          
  22.     }
  23. }
  24. ?>

lo que quiero es que al hacer click en la carpeta muestre el numero de encuestas asignadas... osea si la carpeta dice 12 en el campo "n_encuestas" que me itere en un for las 12 encuestas asignadas.
he intentado asi!!
Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM encuesta ORDER BY codigo_sector DESC");
  2.  
  3. [B]$n_encuesta[/B] = mysql_query("SELECT numero_de_encuestas FROM encuesta");
  4.    
  5.         $nfilas = mysql_num_rows ($sql);
  6.         for ($i=0; $i<[B]$n_encuesta[/B]; $i++){
  7.     $lista = mysql_fetch_array($sql);
  8.                // impresion de los datos a mostrar......
  9.             }

pero no me funciona!

agradezco de antemano y estaré atento a cualquier respuesta

Saludos!
  #2 (permalink)  
Antiguo 07/07/2010, 09:03
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Problema con sentencia FOR

Código PHP:
Ver original
  1. for ($i=0; $i<$n_encuesta; $i++){
o.O.. $n_encuesta es un resource de sql no un numero
Código PHP:
Ver original
  1. for ($i=0; $i<$nfilas; $i++){
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 07/07/2010, 09:12
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema con sentencia FOR

y como se haria?
  #4 (permalink)  
Antiguo 07/07/2010, 09:15
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Problema con sentencia FOR

eso ya lo tienes que ver en el manual de php.. :)
Código PHP:
Ver original
  1. $consulta = mysql_query("SELECT datos FROM tabla");
  2. while($registro = mysql_fetch_array($consulta)){
  3.     echo $registro["datos"]."<br />\n";
  4. }
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 07/07/2010, 09:55
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
ehmm!! uxa, hice esto:

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM carpeta ORDER BY codigo_sector DESC");
  2.        
  3.     while ($lista = mysql_fetch_array($sql);)
  4.                 {        
  5.                        for ($i=0; $i<$lista["numero_de_encuestas"]; $i++)
  6.                        {
  7.         if($lista['encuestador'] == $_SESSION['s_username'])
  8.         {
  9.         print ("<TABLE class='listable' width='600px' border='1'>");
  10.         print ("<TR>\n");
  11.         print ("<TD align='center' width='105' name='enc'><a href='encuesta.php?seccion=".$lista['seccion']."'>" . $lista['encuestador'] . "</a></TD>\n");
  12.         print ("</TR>\n");
  13.         print ("</TABLE>\n");          
  14.         }
  15.     }}
y me dice:
Parse error: parse error in C:\wamp\www\Proyecto NENE\plataformaEncuesta\mis_encuestas.php on line 153

osea en la linea del while!!

o me parece que en la parte del for esta alegando!

Última edición por GatorV; 07/07/2010 a las 11:12
  #6 (permalink)  
Antiguo 07/07/2010, 10:11
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Respuesta: Problema con sentencia FOR

Offtopic: para mejorar legibilidad de código, te recomiendo usar echo en lugar de print() y poner las etiquetas HTML como TABLE, TR, TD, etc en minúsculas para cumplir los estándares. También la identación es buen signo de buen código (aunque puede haberse descolocado al poner el código en el foro)
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #7 (permalink)  
Antiguo 07/07/2010, 11:54
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: Problema con sentencia FOR

Poné el while sin el punto y coma:

Código PHP:
Ver original
  1. while ($lista = mysql_fetch_array($sql))

Además de las sugerencias de shakaran, deberías usar comillas dobles (") en el código HTML.
__________________
Saludos.

Gustavo
  #8 (permalink)  
Antiguo 07/07/2010, 12:14
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema con sentencia FOR

vale Gustavo!! si cache despues... aunque ahora me lista, pero me itera el numero de carpeta con el numero de encuestas asignadas xD... ahi si logro solucionarlo lo comento!!

saludos y gracias
  #9 (permalink)  
Antiguo 07/07/2010, 12:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema con sentencia FOR

ya lo solucione!!

antes del for, en donde hago la sentencia SQL va así!

Código PHP:
Ver original
  1. $codigo_carpeta = isset($_GET['codigo_sector']) ? $_GET['codigo_sector']: null;
  2.        
  3. $sql = mysql_query("SELECT * FROM sector WHERE codigo_sector = '$codigo_carpeta'");
  4.  
  5. //aqui el while

para quien tenga el mismo problema!!

saludos

Etiquetas: sentencia
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 14:01.