Foros del Web » Programando para Internet » PHP »

Mostrar resultados Mysql

Estas en el tema de Mostrar resultados Mysql en el foro de PHP en Foros del Web. Hola, estoy dándole vueltas durante tiempo y revisando todos los posts sobre esto pero no consigo resultados. No consigo acondicionar a lo que tengo medio ...
  #1 (permalink)  
Antiguo 01/02/2007, 08:19
 
Fecha de Ingreso: septiembre-2003
Mensajes: 47
Antigüedad: 20 años, 7 meses
Puntos: 0
Mostrar resultados Mysql

Hola,

estoy dándole vueltas durante tiempo y revisando todos los posts sobre esto pero no consigo resultados. No consigo acondicionar a lo que tengo medio hecho "modificado" los ejemplos sobre el mostrar resultados en columnas que en el foro hay.

Veamos:

Tengo una función que lo que hace cuando es llamada es mostrarme las imágenes que tengo en una carpeta y le añade también el título a cada una.

Función:

Código PHP:
function veure_pelis($pelis_array)
{
  
//mostra pelis pasades per array
  
if (!is_array($pelis_array))
  {
     echo 
"<br>No hi han películes<br>";
  }
  else
  {
    
//crear tabla
    
echo "<table width = \"100%\" border = 0>";

    
    foreach (
$pelis_array as $row)
    {
      
$url "veurepelis.php?isbn=".($row["imatge"]);
      echo 
"<tr><td>";
      if (@
file_exists("imatges/".$row["imatge"].".jpg"))
      {
        
$titol "<img src=\"imatges/".($row["imatge"]).".jpg\" border=0>";
        
do_html_url($url$titol);
      }
      else
      {
        echo 
"&nbsp;";
      }
      echo 
"</td><td>";
      
$titol =  $row["titol"];
      
do_html_url($url$titol);
      echo 
"</td></tr>";
    }
    echo 
"</table>";
  }
  echo 
"<hr>";

Esto me muestra correctamente una debajo de la otra con los títulos al lado de cada una.

Mi pregunta es y ya os lo imaginaréis ¿Cómo podría apañar esta función para que me muestre los resultados de esta forma:?



Me vuelvo loco con esto y la verdad no sé por donde meter mano

¿Alguna sugerencia?

Saludos,
jhawslow
  #2 (permalink)  
Antiguo 01/02/2007, 10:18
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Mostrar resultados Mysql

Código PHP:
function veure_pelis($pelis_array

  
//mostra pelis pasades per array 
  
if (!is_array($pelis_array)) 
  { 
     echo 
"<br>No hi han películes<br>"
  } 
  else 
  { 
    
//crear tabla 
    
echo "<table width = \"100%\" border = 0><tr>"

     
    foreach (
$pelis_array as $row
    { 
      
$url "veurepelis.php?isbn=".($row["imatge"]); 
      echo 
"<td align=\"center\">"
      if (@
file_exists("imatges/".$row["imatge"].".jpg")) 
      { 
        
$titol "<img src=\"imatges/".($row["imatge"]).".jpg\" border=0>"
        
do_html_url($url$titol); 
      } 
      else 
      { 
        echo 
"&nbsp;"
      } 
      echo 
"<br>"
      
$titol =  $row["titol"]; 
      
do_html_url($url$titol); 
      echo 
"</td>"
    } 
    echo 
"</tr></table>"
  } 
  echo 
"<hr>"

ahora si quieres mostrarlos en varias filas tendiras q hacer un contador para q puedas hacer "<tr>....</tr>" para la nueva fila.
  #3 (permalink)  
Antiguo 01/02/2007, 10:26
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: Mostrar resultados Mysql

Si hay que pensar bien como imprimir la tabla. Aqui te hize una pequeña funcion similar a la tuya que lo que quieres. Hay tu ves si modificas la Tabla o la das alguna clase css para que quede mas bonita

Código PHP:
<?

function mostrar_peliculas($array)
{
    
    
// Limite Maximo de Peliculas por Columnas
    
$limite=4;
    
    
// Imprimimos la Cabeza de la Tabla
    
echo '<table width="80%" border="0" cellspacing="0" cellpadding="0">';
    
    
// Hacemos los Bucle
    
for ($i=$i count ($array) ; $i=($i+$limite) )
    {
        
        
// Imprimimos la Columna
        
echo '<tr>';
        for (
$j=$i$j < ($i+$limite) ; $j++)
        {
            
            
// Preguntamos si Existe Indice del Array
            
if ( isset($array[$j]) )
            {
                echo 
'<td><img src="'.$array[$j]["imgurl"].'"><br><a href="'.$array[$j]["url"].'">'.$array[$j]["titulo"].'</a></td>';        
            }
            
        }
        
// Fin de Columna
        
echo '</tr>';

        
    }
    
// Fin de Tabla
    
echo '</table>';
}

$array[0]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[0]['titulo']="Los Gatitos";
$array[0]['url']="?infopeli=14";

$array[1]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[1]['titulo']="Los Gatitos1";
$array[1]['url']="?infopeli=141";

$array[2]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[2]['titulo']="Los Gatitos2";
$array[2]['url']="?infopeli=142";

$array[3]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[3]['titulo']="Los Gatitos3";
$array[3]['url']="?infopeli=142";


$array[4]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[4]['titulo']="Los Gatitos4";
$array[4]['url']="?infopeli=142";


$array[5]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[5]['titulo']="Los Gatitos5";
$array[5]['url']="?infopeli=142";

$array[6]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[6]['titulo']="Los Gatitos6";
$array[6]['url']="?infopeli=142";

$array[7]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[7]['titulo']="Los Gatitos7";
$array[7]['url']="?infopeli=142";

$array[8]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[8]['titulo']="Los Gatitos8";
$array[8]['url']="?infopeli=142";

$array[9]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[9]['titulo']="Los Gatitos9";
$array[9]['url']="?infopeli=142";

$array[10]['imgurl']="http://www.forosdelweb.com/images/statusicon/thread_hot.gif";
$array[10]['titulo']="Los Gatitos10";
$array[10]['url']="?infopeli=142";








mostrar_peliculas($array);

?>
De todas formas, Mezclar Codigo HTML con PHP, no es muy reconmendable, a la larga te hace todo mas dificil, te recomienda que uses Templates Html, Smarty es una opcion muy buena para Templates en PHP. Aqui puedes ver un mini articulo mio sobre el uso del Smarty Arrays con Smarty . Facilmente mirando la funcion que te hize y la forma de como imprimir la tabla, te puedes copiar en tu Template y asi , el Template tiene todo el sitio Web.

Saludos muak

Última edición por DeeR; 01/02/2007 a las 10:27 Razón: Olvido
  #4 (permalink)  
Antiguo 02/02/2007, 11:06
 
Fecha de Ingreso: septiembre-2003
Mensajes: 47
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Mostrar resultados Mysql

Hola qué tal,

bueno he estado mirando esto y no cuadro por ningún lado. Seguramente me expliqué mal, y dí pocos detalles sobre el tema. Agradezco a DeeR y a gerson por sus comentarios. Gerson pues claro que me gustaría mostrar las filas que haga falta; mejor dicho las que contenga la base de datos. Y a Deer me parece correcta su función aunque imagínate que alguna de mis categorías tuviese 126 registros que mostrar; me volvería loco con los $array.

Voy a mostrar los detalles de todo esto más o menos -alguna cosa me habré dejado en copiar y pegar o escribir- o quizá alguna $variable haya cambiado de nombre debido a las modificaciones que he hecho.

Empezamos


Todo esto cuenta con tres secuencias de comandos de catálogo: la página principal, la página de categorías y la página de detalles de películas.
Al acceder a la página principal se enumeran todas las categorías de la base de datos.

Código PHP:
<?
  
include ('funciones.php');

  
do_html_header("Bienvenido a mis Películas");

  echo 
"<p>Elije una categoría:</p>";

  
// recuperar categorías de la base de datos
  
$cat_array get_categories();

  
// mostrar como enlaces a las páginas de las categorías
  
display_categories($cat_array);

  
do_html_footer();
?>
La función get_categories() devuelve una matriz de las categorías del sistema que, tras ello, se pasa a display_categories().

Código PHP:
function get_categories()
{
   
// Petición a la base de datos de una lista de categorías
   
$conn db_connect();
   
$query "select catid, catname
             from categories"
;
   
$result = @mysql_query($query);
   if (!
$result)
     return 
false;
   
$num_cats = @mysql_num_rows($result);
   if (
$num_cats ==0)
      return 
false;
   
$result db_result_to_array($result);
   return 
$result;

Como se puede comprobar, esta función se conecta a la base de datos y recupera una lista de todos los Id. y nombres de categoría. Hemos escrito y utilizado una función denominada db_result_to_array()La función adopta un identificador de resultados MySQL y devuelve una matriz de errores indexada numéricamente en la que cada fila es una matriz asociativa.

Código PHP:
function db_result_to_array($result)
{
   
$res_array = array();

   for (
$count=0$row = @mysql_fetch_array($result); $count++)
     
$res_array[$count] = $row;

   return 
$res_array;

En nuestro caso, devolvemos esta matriz de nuevo a index.php donde la pasaremos a la función display_categories()
Esta función muestra cada categoría en forma de enlace a una página que contiene las peliculas de dicha categoría.

Código PHP:
function display_categories($cat_array)
{
  if (!
is_array($cat_array))
  {
     echo 
"No hay categorías actualmente disponibles<br>";
     return;
  }
  echo 
"<ul>";
  foreach (
$cat_array as $row)
  {
    
$url "veure_categoria.php?catid=".($row["catid"]);
    
$title $row["catname"];
    echo 
"<li>";
    
do_html_url($url$title);
  }
  echo 
"</ul>";
  echo 
"<hr>";

Esta función convierte cada una de las categorías de la base de datos en enlaces. Todos los enlaces llevan a la siguiente secuencia de comandos, veure_categoria.php pero cada uno tiene un parámetro distinto, el Id de la categoría o catid (se trata de un número exclusivo generado por MySQL y que utilizamos para identificar la categoría).
Este parámetro a la siguiente secuencia de comandos determinará en qué categoría nos encontramos.

El proceso para enumerar películas de una categoría es muy similar. La secuencia de comandos encargada de ello es veure_categoria.php.


Código PHP:
 <?php
  
include ('funciones.php');
  
$catid $_GET['catid'];
  
$name get_category_name($catid);
 
  
do_html_header($name);

  
// obtener información de la película de la base de datos
  
$book_array get_books($catid);

  
display_books($book_array);
   
do_html_footer();
?>
Esta secuencia tiene una estructura similar a la de la página de índice, a excepción de que recupera películas en lugar de categorías. Convertimos el Id. de categoría que hemos obtenido en un nombre de categoría por medio de la función get_category_name().

Código PHP:
function get_category_name($catid)
{
   
// consulta la bd para obtener el nombre de un Id. de categoría
   
$conn db_connect();
   
$query "select catname
             from categories 
             where catid = $catid"

   
$result = @$conn->query($query);
   if (!
$result)
     return 
false;
   
$num_cats = @$result->num_rows;
   if (
$num_cats ==0)
      return 
false;  
   
$row $result->fetch_object();
   return 
$row->catname

Una vez recuperado el nombre de la categoría, podemos representar un encabezado HTML y proceder a recuperar y enumerar las películas de la base de datos que se corresponden con la categoría seleccionada.

Código PHP:
$pelicules_array get_pelicules($catid);
veure_pelicules($pelicules_array); 
Las funciones get_pelicules() y veure_pelicules() son muy similares a las funciones get_categories() y veure_categories() la única diferencia es que estamos recuperando información de la tabla de películas en lugar de la de categorías. La función veure_pelicules() proporciona un enlace a todas las películas de una categoría por medio de la secuencia de comandos veure_pelicules.php. De nuevo, a cada enlace se le añade un parámetro como sufijo. En esta ocasión es la ref (referencia) de la película en cuestión.

Código PHP:
<?php
  
include ('funciones.php');

  
$ref $_GET['ref'];

  
// obtén esta película de la base de datos
  
$pelicules get_pelicules_detalls($ref);
  
do_html_header($pelicules['titulo']);
  
veure_pelicules_detalls($pelicules);

  
// define un URL para el “botón de continuación”
  
$target 'index.php';
  if(
$pelicules['catid'])
  {
    
$target 'veure_categories.php?catid='.$pelicules['catid'];
  }
  
  
do_html_footer();
?>
Esto realiza el mismo tipo de acciones de antes. Utilizamos

Código PHP:
$pelicules get_pelicules_detalls($ref); 
Para obtener de la base de datos la información de la película
Y

Código PHP:
veure_pelicules_detalls($pelicules); 
para representar los datos en HTML. Mencionar que veure_pelicules_detalls() busca un archivo de imagen para la pelicula como imatges/$ref.jpg. Si no existe, no muestra ninguna imagen. El resto de la secuencia configura la navegación.

Código PHP:
function veure_pelicules_detalls($pelicules)
{
  
// todos los detalles de la pelicula
  
if (is_array($pelicules))
  {
    echo 
'<table><tr>'
    
//Imagen 
    
if (@file_exists('imatges/'.($pelicules['ref']).'.jpg'))
    {
      
$size GetImageSize('imatges/'.$pelicules['ref'].'.jpg');
      if(
$size[0]>&& $size[1]>0)
        echo 
'<td><img src=\'imatges/'.$pelicules['ref'].'.jpg\' border=0 '.$size[3].'></td>';
    }
    echo 
'<td><ul>';
    echo 
'<li><b> Director:</b> ';
    echo 
$pelicula['director'];
    echo 
'</li><li><b> REF:</b> ';
    echo 
$pelicula['ref'];
    echo 
'</li><li><b>Descripcion:</b> ';
    echo 
$pelicula['descripcion'];
    echo 
'</li></ul></td></tr></table>'
  }
  else
    echo 
'No hay detalles de la película en estos momentos.';
  echo 
'<hr />';

AQUÍ FORMULARIOS Y DEMÁS

Código PHP:
function veure_categoria_formulari($cat_array = "")
// Esto muestra el formulario de categoría.(Ejem: Terror, Erótico, Humor)
// Este formulario puede ser usado para insertar o editar categorías.
// Para insertar, no pasar ningún parámetro. Esto configurará $editar
// como falso, y el formulario irá a insertar_categoria.php.
// Para actualizar, pasa un array conteniendo una categoría.  El
// formulario contendrá los viejos datos y  apuntará a actualitzar_categoria.php.
// También añadirá un botón "Borrar categoría" .

{

  // si se pasa una categoría existente, proceder en "modo edición"
  $editar = is_array($cat_array);

  // la mayoría del formulario esta en HTML plano con algún
  // trozo opcional de PHP por todo.

?>
  <form method=post
      action="<?=$editar?"editar_categoria.php":"insertar_categoria.php";?>">
  <table border=0>
  <tr>
    <td>Nom Categoría:</td>
    <td><input type=text name=catname size=40 maxlength=40
          value="<?=$editar?$categoria["catname"]:""?>"></td>
   </tr>
  <tr>
    <td <? if (!$editar) echo "colspan=2"?> align=center>
      <? if ($editar)
         echo 
"<input type=hidden name=catid
                value=\""
.$categoria["catid"]."\">";
      
?>
      <input type=submit
       value="<?=$editar?"Actualizar":"Añadir"?> Categoría"></form>
     </td>
     <? if ($editar)
       
// permitir borrar categorías existentes
       
{
          echo 
"<td>";
          echo 
"<form method=post action=\"borrar_categoria.php\">";
          echo 
"<input type=hidden name=catid value=\"".$categoria[catid]."\">";
          echo 
"<input type=submit value=\"Borrar Categoría\">";
          echo 
"</form></td>";
       }
     
?>
  </tr>
  </table>
<?
}
CONTINÚA
  #5 (permalink)  
Antiguo 02/02/2007, 11:10
 
Fecha de Ingreso: septiembre-2003
Mensajes: 47
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Mostrar resultados Mysql

CONTINUA


Código PHP:
function veure_pelicules_formulari($pelicules = "")
// Muestra el formulario peliculas.
// Es muy similar al formulario categoría.
// Este formulario puede ser usado para insertar o editar peliculas..
// Para insertar, no pasar ningún parámetro.  Configurará $editar
// como falso, y el formulario irá a insertar_pelicules.php.
// Para actualizar, pasar un array conteniendo una pelicula. El
// formulario será mostrado con los viejos datos y apuntará a actualitzar_pelicules.php.
// También añadirá un botón "Borrar pelicula".
{

  // si es pasada una pelicula existente, proceder en "modo edición"
  $editar = is_array($pelicules);

  // la mayoría del formulario está en HTML plano con algún
  // trozo de PHP opcional
?>
  <form method=post
        action="<?=$editar?"editar_pelicules.php":"insertar_pelicules.php";?>">
  <table border=0>
  <tr>
    <td>REF:</td>
    <td><input type=text name=ref
         value="<?=$editar?$pelicules["ref"]:""?>"></td>
  </tr>
  <tr>
    <td>Título Pelicula:</td>
    <td><input type=text name=titulo
         value="<?=$editar?$pelicules["titulo"]:""?>"></td>
  </tr>
  <tr>
    <td>Director Pelicula:</td>
    <td><input type=text name=director
         value="<?=$editar?$pelicules["director"]:""?>"></td>
   </tr>
   <tr>
      <td>Categoría:</td>
      <td><select name=catid>
      <?
          
// lista de las categorías posibles enviadas por la base de datos
          
$cat_array=get_categories();
          foreach (
$cat_array as $thiscat)
          {
               echo 
"<option value=\"";
               echo 
$thiscat["catid"];
               echo 
"\"";
               
// si existen peliculas, ponerlas en la categoría actual
               
if ($edit && $thiscat["catid"] == $pelicules["catid"])
                   echo 
" selected";
               echo 
">";
               echo 
$thiscat["catname"];
               echo 
"\n";
          }
          
?>
          </select>
        </td>
   </tr>
   <tr>
     <td>Descripción:</td>
     <td><textarea rows=3 cols=50
          name=descripcion>
          <?=$editar?$pelicules["descripcion"]:""?>
          </textarea></td>
    </tr>
    <tr>
      <td <? if (!$editar) echo "colspan=2"?> align=center>
         <?
            
if ($editar)
             
// necesitamos la vieja referencia para encontrar peliculas en la base de datos
             // si la referencia está siendo actualizada
             
echo "<input type=hidden name=oldref
                    value=\""
.$pelicules["ref"]."\">";
         
?>
        <input type=submit
               value="<?=$editar?"Actualizar":"Añadir"?> Pelicula">
        </form></td>
        <?
           
if ($editar)
           {
             echo 
"<td>";
             echo 
"<form method=post action=\"borrar_pelicula.php\">";
             echo 
"<input type=hidden name=ref
                    value=\""
.$pelicules["ref"]."\">";
             echo 
"<input type=submit
                    value=\"Borrar Pelicula\">"
;
             echo 
"</form></td>";
            }
          
?>
         </td>
      </tr>
  </table>
  </form>
<?
}
BASE DE DATOS

Código PHP:
function insertar_categoria($catname)
// inserta una nueva categoría en la base de datos
{
   
$conn db_connect();

   
// comprueba que la categoría no exista ya
   
$query "select *
             from categories
             where catname='$catname'"
;
   
$result mysql_query($query);
   if (!
$result || mysql_num_rows($result)!=0)
     return 
false;

   
// inserta la nueva categoría
   
$query "insert into categories values
            ('', '$catname')"
;
   
$result mysql_query($query);
   if (!
$result)
     return 
false;
   else
     return 
true;

Código PHP:
function insertar_pelicules($ref$titulo$director$catid$descripcion)
// inserta una nueva pelicula en la base de datos
{
   
$conn db_connect();

   
// comprueba que la categoría no exista ya
   
$query "select *
             from pelicules
             where ref='$ref'"
;
   
$result mysql_query($query);
   if (!
$result || mysql_num_rows($result)!=0)
     return 
false;
   
// inserta nueva categoría
   
$query "insert into pelicules values
            ('$ref', '$titulo', '$director', '$catid', '$descripcion')"
;
   
$result mysql_query($query);
   if (!
$result)
     return 
false;
   else
     return 
true;

Código PHP:
function actualitzar_categoria($catid$catname)
// cambia el nombre de la categoría con catid en la base de datos
{
   
$conn db_connect();

   
$query "update categories
             set catname='$catname'
             where catid='$catid'"
;
   
$result = @mysql_query($query);
   if (!
$result)
     return 
false;
   else
     return 
true;

Código PHP:
function actualitzar_pelicules($oldref$ref$titulo$director$catid,
                     
$descripcion)
// cambia los detalles de las peliculas almacenadas bajo $oldref en
// la base de datos con nuevos detalles en argumentos
{
   
$conn db_connect();

   
$query "update pelicules
             set red='$ref',
             tiulo ='$titulo',
             director = '$director',
             catid = '$catid',
             descripcion = '$descripcion'
             where ref='$oldref'"
;

   
$result = @mysql_query($query);
   if (!
$result)
     return 
false;
   else
     return 
true;

Y luego continuariamos con otras funciones que lo que hacen es borrar categoría y borrar peliculas

Bueno pues después de este "coñazo" espero que no me haya liado y encontremos una solución a la muestra de imágenes que de eso trataba mi inquietud.

Saludos y gracias
jhawslow
  #6 (permalink)  
Antiguo 02/02/2007, 11:46
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Mostrar resultados Mysql

Hola jhawslow bueno para entendernos mejor vamos a aclarar las cosas:

1.
El problema principal esta la funcion "veure_pelis()":
el cual de lista las peliculas de la siguiente forma:

[imagen1] "titulo de la pelicula1"
[imagen2] "titulo de la pelicula2"
[imagen3] "titulo de la pelicula3"
[imagen4] "titulo de la pelicula4"
[imagen5] "titulo de la pelicula5"

en pocas palabras en forma vertical

2.
Lo que quieres es que el listado este en forma Horizontal:
[imagen1] [imagen2] .......
"titulo de la pelicula1" "titulo de la pelicula2" .......


Ahora bien no se si probaste el codigo q puse ahi pero lo q hace es listar de forma horizontal Claro q no esta bien pues por es ote mensiona q si quieres mostarlo pro filas agreges un contador

algo asi:
$contador = 1;
echo '<table>';
foreach ($pelis_array)
//todas las comprobaciones necesarias
if ($contador == 1) {
echo '<tr>';
}
echo '<td>';
echo '[imagen] <br>';
echo '[titulo]';
echo '</td>';
if ($contador == 4) { // la cantidad por filas q se mostraran
echo '</tr>';
$contador =1; //para q vuelva a a imprimir una nueva fila
}
}
echo '</table>';




Bueno espero q sea esa parte de la solucion de tu problema.

Salud2
  #7 (permalink)  
Antiguo 06/02/2007, 04:37
 
Fecha de Ingreso: septiembre-2003
Mensajes: 47
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Mostrar resultados Mysql

Hola gerson y gracias por responder. Sí que prové tu código de arriba y muestra el resultado en fila. Vale. Pero tú dices lo de añadir un contador para que vaya añadiendo filas. El problema que tengo es el nó saber las filas que puedo necesitar ya que depende de los resultados que haya en la base de datos según la categoría.

En la función veure_pelis()

Código PHP:
function veure_pelis($pelis_array

  
//mostra pelis pasades per array 
  
if (!is_array($pelis_array)) 
  { 
     echo 
"<br>No hi han películes<br>"
  } 
  else 
  { 
    
//crear tabla 
    
echo "<table width = \"100%\" border = 0>"

     
    foreach (
$pelis_array as $row
    { 
      
$url "veurepelis.php?isbn=".($row["imatge"]); 
      echo 
"<tr><td>"
      if (@
file_exists("imatges/".$row["imatge"].".jpg")) 
      { 
        
$titol "<img src=\"imatges/".($row["imatge"]).".jpg\" border=0>"
        
do_html_url($url$titol); 
      } 
      else 
      { 
        echo 
"&nbsp;"
      } 
      echo 
"</td><td>"
      
$titol =  $row["titol"]; 
      
do_html_url($url$titol); 
      echo 
"</td></tr>"
    } 
    echo 
"</table>"
  } 
  echo 
"<hr>"

Cómo agrego el contador que me pones en esta función. Puede haber categorías que contengan 50 imágenes y categorías que tengan sólo 16.

Código PHP:
if ($contador == 4) { // la cantidad por filas q se mostraran 
Seguramente habría que hacer alguna modificación a la función para que añada automáticamente las filas que necesite. La verdad es que me pierdo con esto y pienso que al final quizás haya que estudiar otra manera.

Saludos y gracias
  #8 (permalink)  
Antiguo 08/02/2007, 04:29
 
Fecha de Ingreso: septiembre-2003
Mensajes: 47
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Mostrar resultados Mysql

Hola,

¿Nadie puede ayudarme sobre esto?

jhawslow
  #9 (permalink)  
Antiguo 08/02/2007, 10:36
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: Mostrar resultados Mysql

Haber. creo que debiste analizar mas mi funcion
Adapto la tuya, con la mia
Código PHP:
<?
function veure_pelicules_detalls($pelicules)
{
  
    
// Limite Maximo de Peliculas por Columnas
    
$limite=8;
    
    
// Imprimimos la Cabeza de la Tabla
    
echo '<table width="80%" border="0" cellspacing="0" cellpadding="0">';
    
    
// Hacemos los Bucle
    
for ($i=$i count ($pelicules) ; $i=($i+$limite) )
    {
        
        
// Imprimimos la Columna
        
echo '<tr>';
        for (
$j=$i$j < ($i+$limite) ; $j++)
        {
            
            
// Preguntamos si Existe Indice del Array
            
if ( isset($pelicules[$j]) )
            {    
             
                 
// ¿ Existe la Imagen ?
                 
if (@file_exists('imatges/'.($pelicules['ref']).'.jpg'))
                {
                    
// Imprimimos Foto y Descp
                    
echo '<td><img src="imatges/'.($pelicules["ref"]).'.jpg').'"><br>
                    Director : '
.$pelicules["director"].'<br>
                    REF : '
.$pelicules["ref"].'<br>
                    Descripcion : '
.$pelicules["descripcion"].' <br>
                    </td>'
;  
                    
                    
                }
             else
        {
                            echo 
'<td>'.$pelicules["ref"].'<br>
                    Director : '
.$pelicules["director"].'<br>
                    REF : '
.$pelicules["ref"].'<br>
                    Descripcion : '
.$pelicules["descripcion"].' <br>
                    </td>'

                }
                      
            }
            
        }
        
// Fin de Columna
        
echo '</tr>';

        
    }
    
// Fin de Tabla
    
echo '</table>';



}  

?>
No la probe a primera instancia, pero hace lo que quieres, imprime 8 peliculas por columna, si hay 66 peliculas, imprime 9 columnas, 8 con 8 peliculas y la 9 con 2.

Tu editas el limite.

PD(en tus funciones, tienes problemas con $pelicules y despues usas $peliculas )

Última edición por DeeR; 08/02/2007 a las 10:52 Razón: Olvido
  #10 (permalink)  
Antiguo 08/02/2007, 11:14
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Re: Mostrar resultados Mysql

utiliza divs, un div contenedor digamos de 500 px de ancho y un div que se va a repetir donde va a contener la url de la imagen, con valores de ancho y alto, y float:left , las imagenes de esta forma se van a acomodar de izquierda a derecha y si no queda mas lugar va a la siguiente fila y asi sucesivamente. no se si me explique bien, el codigo no lo tengo a mano, pero a mi me resolvio la vida, ademas de aprovechar la facilidad y la potencia de css.
__________________
Drupal Argentina
  #11 (permalink)  
Antiguo 12/02/2007, 03:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 47
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Mostrar resultados Mysql

Hola,

Gracias de nuevo DeeR y a tí también NUCKLEAR por el consejo de los divs, pero lo primero creo que es conseguir la salida o muestra en pantalla correctamente de las imágenes cosa que no consigo.

La función que se encarga de esto es esta:

Código PHP:
function veure_pelis($pelis_array)  
{  
  
//mostra pelis pasades per array  
  
if (!is_array($pelis_array))  
  {  
     echo 
"<br>No hi han películes<br>";  
  }  
  else  
  {  
    
//crear tabla  
    
echo "<table width = \"100%\" border = 0>";  

      
    foreach (
$pelis_array as $row)  
    {  
      
$url "veurepelis.php?isbn=".($row["imatge"]);  
      echo 
"<tr><td>";  
      if (@
file_exists("imatges/".$row["imatge"].".jpg"))  
      {  
        
$titol "<img src=\"imatges/".($row["imatge"]).".jpg\" border=0>";  
        
do_html_url($url$titol);  
      }  
      else  
      {  
        echo 
"&nbsp;";  
      }  
      echo 
"</td><td>";  
      
$titol =  $row["titol"];  
      
do_html_url($url$titol);  
      echo 
"</td></tr>";  
    }  
    echo 
"</table>";  
  }  
  echo 
"<hr>";  

Ya sabemos que las lista de forma vertical. DeeR has adaptado tu función con una distinta veure_pelicules_detalls($pelicules) Y esta muestra detalles y todo lo demás. La que yo te digo es la de arriba function veure_pelis($pelis_array) En tu modificación hay variables que desaparecen como:
  • $url = "veurepelis.php?isbn=".($row["imatge"]);
  • $row


Código PHP:
function db_result_to_array($result

   
$res_array = array(); 

   for (
$count=0$row = @mysql_fetch_array($result); $count++) 
     
$res_array[$count] = $row

   return 
$res_array

El tema está en que no funciona y nos liamos. Si todas las funciones y conexión a la base de datos funcionan bien -que ya puse todo más arriba- Y ya sé que puede haber algún lío con las variables por temas de traducción etc -yo lo tengo bién- ¿Se pueden mostrar las imágenes como pregunto al principio del post? o a alguien se le puede ocurrir alguna forma de hacerlo distinta?

Gracias por vuestros comentarios.
jhawslow
  #12 (permalink)  
Antiguo 14/02/2007, 10:54
 
Fecha de Ingreso: septiembre-2003
Mensajes: 47
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Mostrar resultados Mysql

Hola qué tal,

bueno después de la cantidad de errores que aparecen sobre esto no me queda más remedio que desistir y recurrir a alguna aplicación prefabricada.

Agradezco profundamente el seguimiento de mis dudas y las múltiples muestras de ayuda recibidas.

Gracias

Jhawslow
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 17:54.