Foros del Web » Programando para Internet » PHP »

Porque?

Estas en el tema de Porque? en el foro de PHP en Foros del Web. Tengo este código: Código PHP:   /*  * @desc Módulo: Mostrar todas las categorías  */   function  ShowImagesForAllCategories (){   if(isset( $_GET [ 'accion' ])&&( $_GET [ 'accion' ]== "mostrar" )&&(isset( $_GET ...
  #1 (permalink)  
Antiguo 19/05/2004, 10:32
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Porque?

Tengo este código:
Código PHP:
 /*
 * @desc Módulo: Mostrar todas las categorías
 */
 
function ShowImagesForAllCategories(){
  if(isset(
$_GET['accion'])&&($_GET['accion']=="mostrar")&&(isset($_GET['categoria']))&&($_GET['categoria']=="todas")){
   
$query "SELECT * FROM catnews WHERE active<>0 ORDER BY idcat";
   
$result mysql_query($query) or die("No se ha podido ejecutar la consulta: ".$query.". MySQL ha dicho: ".mysql_error());

   echo 
"<table width='100%'  border='0' cellspacing='2' cellpadding='0'>";

   while(
$fetch mysql_fetch_assoc($result)){
    echo 
"<tr>
          <td colspan='2' class='txt'><strong>Categor&iacute;a:</strong> "
.$fetch['name']."</td>
          </tr>
          <tr>
          <td colspan='2' class='txt'>"
.$fetch['description']."</td>
          </tr>
          <tr>
          <td width='12%'><img src='images/news_cat/"
.$fetch['imgdir']."' alt='Mostrar todas las noticias de la categoría ".$fetch['imgalt']."' class='hand'></td>
          <td width='88%' valign='top' class='txt'>"
.ShowNewsForThisCategory($fetch['idcat'],5)."</td>
          </tr>"
;
   }

   echo 
"</table>";
  }
 } 
y este otro es la definición de la función ShowNewsForThisCategory:
Código PHP:
/*
 * @desc Módulo: Mostrar las noticias dada por la cantidad a mostrar en los parámetros
 */
 
function ShowNewsForThisCategory($category,$cant){
  
$query "SELECT n.*,u.name FROM news n, user u WHERE n.idcat=".$category." AND n.public<>0 AND n.idautor=u.iduser ORDER BY n.idnews LIMIT 0,".$cant."";
  
$result mysql_query($query) or die("No se ha podido ejecutar la consulta: ".$query.". MySQL ha dicho: ".mysql_error());
  if(
mysql_num_rows($result)==0){
   echo 
"<tr><td colspan='2' class='txt'>No hay noticias disponibles en esta categoría para mostrar.</td></tr>";
  }else{
   echo 
"<table width='100%'  border='0' cellspacing='1' cellpadding='0'>";
   while(
$fetch mysql_fetch_assoc($result)){
    echo 
"<tr>
          <td width='4%' rowspan='4' valign='top'><div align='center'><img src='images/new_news.gif' alt='Noticia "
.$fetch['idnews']."' width='17' height='17' border='0' align='absmiddle' class='hand'></div></td>
          <td width='96%' class='txt'><strong>"
.$fetch['title']."</strong></td>
          </tr>
          <tr>
          <td class='txt'>"
.$fetch['summary']."</td>
          </tr>
          <tr>
          <td class='txt'>Publicada por: "
.$fetch['name']." a las Fecha </td>
          </tr>
          <tr>
          <td class='txt'>Visitas: "
.$fetch['hits']." | Valorar noticia: | </td>
          </tr>"
;
   }
   echo 
"</table>";
  }
 } 
lo que me pasa es que cuando llamo a la función ShowImagesForAllCategories dentro de una pagina HTML por ejemplo así:
Código PHP:
<td width="97%" valign="top" style="padding-right:2px;"><? ShowImagesForAllCategories(); ?></td>
según mi logica primero debia ejecutar la función ShowImagesForAllCategories e imprimir esa tabla y luego cuando se tope con la funcion ShowNewsForThisCategory entonces dentro de ese td me imprima la tabla que me genera la funcion ShowNewsForThisCategory, pero no primero me ejecuta ShowNewsForThisCategory y luego ShowImagesForAllCategories y por lo tanto mi HTML queda así:
Código PHP:
<tr>
          <
td colspan='2' class='txt'>Noticias sobre las últimas versiones de programas populares en Internet</td>
          </
tr>
          <
tr>
          <
td width='12%'><img src='images/news_cat/category_softwares.gif' alt='Mostrar todas las noticias de la categoría Softwares' class='hand'></td>
          <
td width='88%' valign='top' class='txt'></td>
          </
tr
cuando debía ser así:
Código PHP:
         <tr>
          <
td width='12%'><img src='images/news_cat/category_softwares.gif' alt='Mostrar todas las noticias de la categoría Softwares' class='hand'></td>
          <
td width='88%' valign='top' class='txt'><tr>
          <
td colspan='2' class='txt'>Noticias sobre las últimas versiones de programas populares en Internet</td>
          </
tr>
</
td>
          </
tr
Que me recomiendan que haga?
Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 19/05/2004, 14:57
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Pues nada ya resolví

Ya resolví. Pero ahora me queda otra duda. Como puedo distribuir los resultados en 2 columnas para que me queden de esta forma:
Código PHP:
 columna1          columna2                  columna3        columna4
 imagen1           noticias_categoria1   imagen2          noticias_categoria2
 imagen3           noticias_categoria3   imagen4          noticias_categoria4
 imagen5           noticias_categoria5   imagen6          noticias_categoria6 
Me hago entender?

Salu2
__________________
Ing. Reynier Pérez Mira
  #3 (permalink)  
Antiguo 20/05/2004, 05:53
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, .. lee esta FAQ:

http://www.forosdelweb.com/showthrea...669#post240669

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 20/05/2004, 06:22
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Pues ...

Cluster ya vi el ejemplo, está barbaro pero no me sirve mucho. Es eso mismo lo que he querido hacer pero no tan así. LO que quiero hacer es que yo tengo dos consultas una me da todas las categorías de mis noticias y la otra me da todas las noticias disponibles de esas categorías, ahora lo que quiero distribuir es que en el 1ra columna me salga la imagen de la categoría (cat1) y en la 2da las noticias pertenecientes a esa 2da categoria(news_cat1) pero ya en la tercera columa me salga la imagen de la 2da categoria(cat2) y en la cuarta las noticias pertenecientes a esa 2da categoria(news_cat2). Lo de sacar las noticias es una pequeña función que me devuelve todas las noticias de esa categoria, así que lo que tendría que hacer es imprimir 4 columnas pero solo con contenido en la 1 y la 3 columna para en la 2 y 4 llamar la funcion de las noticias. Me ayudas a ver como lo logro?

Salu2
__________________
Ing. Reynier Pérez Mira
  #5 (permalink)  
Antiguo 20/05/2004, 07:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te doy un consejo:

Haz tu estructura de tablas (con sus celdas y filas) como el ejemplo que buscas con tu editor HTML "visual" preferido y .. estudia el código HTML generado .. Fijate donde vá un "<tr>" y un "<td>" y sus cierres (</td> .. </tr>) .. así veras como tienes que ir componiendo tus "IF" (condicionales) para poner donde corresponda el cierre de columna o de fila a la celda en cuestión que estés representando. (por lo menos yo así empezaría a estudiar el problema para resolverlo).

Recuerda que tienes que tener alguna variable para indicar el nº de filas y el de columnas .. el cual es más que probable que tengas que calcular el "modulo (resto)" de dividir ese numero entre las iteracciones de tu bucle(s) que tengas que emplear ($modulo=$x % $total;)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:38.