Foros del Web » Programando para Internet » PHP »

Sobre blucles

Estas en el tema de Sobre blucles en el foro de PHP en Foros del Web. Muy buenos días compañeros; Estoy tratando de realizar un bucle que me cree X número de tablas dependiendo del valor que tenga insertado en un ...
  #1 (permalink)  
Antiguo 13/01/2003, 05:56
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Sobre blucles

Muy buenos días compañeros;

Estoy tratando de realizar un bucle que me cree X número de tablas dependiendo del valor que tenga insertado en un campo de mi base de datos.

Como algunos ya me conocen y para no despistar, seguiré con el ejemplo de los deportes:

Digamos que tengo un formulario en el cual un administrador selecciona el número de partidos que se van a jugar en un determinado torneo, lo que se pretende es si este selecciona "8" pues que en la página de torneos, al seleccionar ese torneo aparezcan 8 tablas independientes.

El código que pienso bueno es este:
Código PHP:
include("../conex.inc");
   
$link=Conectarse();
   
$result=mysql_query("select * from TORNEOS where NOMBRE_TORNEO = '$nombre_torneo'",$link);

$row mysql_fetch_array($result);
num_tablas $row["NUM_TABLAS"];
for (
$num_tablas++) {
printf("
    <table>
    <tr onMouseOver=\"this.bgColor='#CCCCCC';\" onMouseOut=\"this.bgColor='#FFFFFF';\">
    <td><div align='center'><font color='#333333'>%s</font></div></td>
    <td><div align='center'><font color='#333333'>%s</font></div></td>
    <td><div align='center'><font color='#333333'>%s</font></div></td>
    <td><div align='center'><a href=\"fichas.php?dni=%s\">%s</a></div></td>
    <td><div align='center'><font color='#333333'>%s</font></div></td>
    <td><div align='center'><font color='#333333'>%s</font></div></td>
    <td><div align='center'><a href=\"acta.php?dni=%s&id_ranking=%d\">Ver acta</a></div></td>
    <td><div align='center'><a href=\"editar.php?dni=%s&id_ranking=%d\">Editar acta</a></div></td>
    <td><div align='center'><a href=\"borrar.php?id_ranking=%d\">Borrar acta</a></div></td>
    </tr>
    </table>"
,$row["ID_RANKING"], $row["FECHA_RANKING"], 
$row["LUGAR"], $row["DNI_REMITENTE"], 
$row["NOMBRE"], $row["DEPORTE_RANKING"], 
$row["TORNEO"], $row["DNI_REMITENTE"], 
$row["ID_RANKING"], $row["DNI_REMITENTE"], 
$row["ID_RANKING"], $row["ID_RANKING"]); 
   } 
 
  
mysql_free_result($result); 
   
mysql_close($link); 
Pero obviamente está mal, el for me da errores y no me sale!!!

¿Pueden echarle un vistazo?

GRACIAS
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #2 (permalink)  
Antiguo 13/01/2003, 06:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo no sé donde has visto esta sintax de for:
for ($num_tablas++) {

Pero lo principal que tienes q tener en cuenta que tienes el manual oficial de PHP en www.php.net/manual/es .. version en castellano y en varios idiomas ... y versiones para bajarte en .pdf .html y hasta un práctico .chm (help de windows por si trabajas en windows) ...

La sintax de for es (para tu caso):
for ($contador=0; $contador<=$num_tablas; $contador++){

Y lo dicho .. antes de intentar "adivinar" como o que parametros acepta una funcion en PHP .. como es el caso .. Revisa el manual!!.

Ahh.. y esto:
num_tablas = $row["NUM_TABLAS"];
Te faltó $
$ num_tablas = $row["NUM_TABLAS"];

Un saludo,

Última edición por Cluster; 13/01/2003 a las 06:54
  #3 (permalink)  
Antiguo 13/01/2003, 09:17
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Permíteme Cluster, pero llevo ya algún tiempo visitando este foro, y lo hago principalmete por la participación, cooperación entre los usuarios, y la gran ayuda que siempre me han prestado.

En ningún caso lo hice con la idea de que al realizar una pregunta que llevaba toda la santa mañana sorviéndome el coco, me respondiese un administrador diciéndome: Leete el manual.

Pienso que estos sites se crearon especialmente para resolver dudas que poseen la urgencia precisa que le impiden a uno leerse los manuales de PHP.

Hace tiempo me leí el manual que tantas veces recomiendas, y casi continuamente repaso varios que tengo adquiridos de grandes autores en el tema. Pero, desgraciadamente por ahora, la mente (o al menos la mía) no posee la capacidad de memorizar las 500 páginas de estos manuales, y de vez en cuando aparecen dudas que ya ni recuerdas en qué parte se resolvían.

Sinceramente Cluster y más como administrador de PHP, te insto a que aparte de recomendar códigos de otros autores, nos deleites con los tuyos propios, a modo de referencia y NUNCA sirviéndonos de copia.

Por cierto, mis más sinceras felicitaciones por la gestión de ususrios que has creado en tu página, me ayudaron mucho a saber más sobre PHP.
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #4 (permalink)  
Antiguo 13/01/2003, 09:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero ferent .. ¿tu crees q yo me se de memoria los cientos (o algun mil) de funciones q tiene PHP y sus parametros y detalles?

La respuesta es NO, pero lo que si q se es q debo de usar el manual de referencia de PHP como libro de cabecera .. Duda q tengo me remito a el .. y sobre todo en cuanto a la sintax y parametros de funciones.

Programo en windows y tengo la versión .chm (Help de WIndows) para ese fin, para usarlo como referencia.

Con respecto a dar código de otros autores ... Esto es un foro, no es una colección de manuales .. tampoco la gente que asiduamente entra a responder (sea yo o quien sea) puede estar repitiendo constantemente lo que ya se ha escrito alguna vez. Para eso mismo en este foro se hizo las FAQ's y muchas veces YO y otros usuarios remiten ahí mismo (algunas de las soluciones las he escrito yo .. otras no).

No se trata de reinventar la rueda todosss los dias. Ademas q si yo lo sé y lo he obtenido de X fuente .. me gusta mas remitir a la fuente original q andar explicando Exactamente lo mismo aquí.

Y todo esto lo hablo como usuario asiduo de estos foros .. El hecho de que sea administrador no me obliga a nada con respecto a mis respuestas (tanto si las doy como si no las doy) .. Solo me da la obligación de revisar las preguntas q entren y acomodarlas en el foro q correspondan si hay alguna q no sea así o de tomar otras acciones si un mensaje no corresponde segun las politas de uso de estos foros.

Un saludo,
  #5 (permalink)  
Antiguo 13/01/2003, 10:13
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Estoy deacuerdo contigo Cluster, y disculpa por haber hecho este "KIT-KAT" en mi pregunta, doy por hecho que responder 20 veces a la misma pregunta debe de quemar un poco.

Como es costumbre, pongo el código que me solucionó mi pregunta (que era más facil de lo que pensé):

Código PHP:
<?php
$a 
$row["NUM_PARTIC"];
for (
$i 1$i <= $a$i++)
echo 
"<table>
    <tr onMouseOver=\"this.bgColor='#CCCCCC';\" onMouseOut=\"this.bgColor='#FFFFFF';\">
    <td><div align='center'><a href=\"editar.php?dni=%s&id_ranking=%d\">Editar acta</a></div></td>
    <td><div align='center'>Campo</a></div></td>
    </tr>
    </table>"
;
     
?>
Y quisiera saber si es posible insertar datos independientes para cada tabla creada, (que en tabla 1ª se seleccionen aquellos campos que empiecen por 1, que en la 2ª aquellos que empiecen por 6... ¿o tengo que limitarme a hacer el bucle y fin?
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #6 (permalink)  
Antiguo 13/01/2003, 10:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Concreta un poco mas tu pregunta .. o inicia un nuevo tema ..

No llego a distingir cunado te refieres a "tablas" si son HTML (presentación visual de esa consulta de SQL) o a los propios resultados de esa consulta.

Un saludo,
  #7 (permalink)  
Antiguo 13/01/2003, 10:40
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Me explico;

Las tablas de mi página son generadas por el bucle "for" de tal modo que si el administrador escoje crear un torneo con 8 jornadas pues se crearán 8 tablas. Lo que pretendo al crear estas 8 tablas es que en cada una se inserten los jugadores de cada jornada, y sólo los puedo "seleciconar" haciendo un select para cada tabla, esto es: en la tabla uno de mi página que me aparezcan los jugadores con el valor 1, en la tabla segunda (generadas todas por el bucle, no lo olvidemos), que se me seleccionen los que tengan el valor dos, o el apellido Pérez, o lo que sea.

El problema es que al ser un bucle no sé como hacerlo.
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #8 (permalink)  
Antiguo 13/01/2003, 10:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No entendí mucho el problema .. pero te doy algunas sugerencias por mi parte:

En cuanto al código .. usa {} en bucles .. evitaras problemas si añades mas instrucciones en el bucle ..
Código PHP:
<?php
$a 
$row["NUM_PARTIC"];
for (
$i 1$i <= $a$i++) { // recomendable
echo "<table>
    <tr onMouseOver=\"this.bgColor='#CCCCCC';\" onMouseOut=\"this.bgColor='#FFFFFF';\">
    <td><div align='center'><a href=\"editar.php?dni=%s&id_ranking=%d\">Editar acta</a></div></td>
    <td><div align='center'>Campo</a></div></td>
    </tr>
    </table>"
;
// recomendable cerrar instruccion for .. 
// pese q solo si tienes una instruccion detro no haga falta.
?>
Y lo demas .. creo q habria q diseñar una consulta SQL para el caso .. como usas * .. no se ve (en el foro) q campos (nombre etc ..) q usas ...


Un saludo,
  #9 (permalink)  
Antiguo 13/01/2003, 10:53
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Gracias Cluster
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
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 05:00.