Foros del Web » Programando para Internet » PHP »

Pequeña tonteria

Estas en el tema de Pequeña tonteria en el foro de PHP en Foros del Web. Buenas,tengo un script el cual me gustaria que los resultados que se extraen de la base de datos, me los muestre uno al lado del ...
  #1 (permalink)  
Antiguo 15/02/2006, 11:23
 
Fecha de Ingreso: septiembre-2005
Mensajes: 374
Antigüedad: 12 años, 3 meses
Puntos: 0
Pequeña tonteria

Buenas,tengo un script el cual me gustaria que los resultados que se extraen de la base de datos, me los muestre uno al lado del otro y no tal y como esta ahora ke me los muestra uno debajo del otro. No tiene que ser muy dificil por lo visto, pero he probao varias cosas y no doy con ello. Dejo el script de ejemplo para que lo tengais visible. Un saludo.

function muestra_categorias($cat_array)
{
if (!is_array($cat_array))
{
echo 'No hay categorías disponibles<br />';
return;
}
echo '<h5>';
foreach ($cat_array as $row)
{
$url = 'show_cat.php?catid='.($row['catid']);
$nombre_coche = $row['catname'];
echo '<br><li type=square><br>';
do_html_url($url, $nombre_coche);
}
echo '</h5>';

}


Mi propósito es que salgan asi los resultados:
**** **** **** ****

y no asi:
****
****
****
****
  #2 (permalink)  
Antiguo 15/02/2006, 12:00
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 11 años, 11 meses
Puntos: 0
Una sugerencia, coloca como titulo de tu post algo que te ayude mejor a que la gente lo vea y te pueda dar una solución, lo unico que elimine fueron los <br> que tenia el echo

Saludos ah y enmarca los codigos en sus respectivas etiquetas amigo para una mejor lectura de las linea de los codigos

Código PHP:



function muestra_categorias($cat_array)
{
if (!
is_array($cat_array))
{
echo 
'No hay categorías disponibles<br />';
return;
}
echo 
'<h5>';
foreach (
$cat_array as $row)
{
$url 'show_cat.php?catid='.($row['catid']);
$nombre_coche $row['catname'];
echo 
'<li type=square>';
do_html_url($url$nombre_coche);
}
echo 
'</h5>';


__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #3 (permalink)  
Antiguo 16/02/2006, 01:58
 
Fecha de Ingreso: septiembre-2005
Mensajes: 374
Antigüedad: 12 años, 3 meses
Puntos: 0
Amigo mio...por mucho que le quites los <br> siguen apareciendo los resultados uno debajo del otro. Es mas, los <br> los puse yo aposta para que hubiera un espacio entre un resultado y otro. No se como se podria hacer lo que yo pretendo, que es que aparezcan los resultados de forma horizontal.Un saludo.
  #4 (permalink)  
Antiguo 16/02/2006, 02:10
Avatar de Malocado  
Fecha de Ingreso: septiembre-2004
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
A mi me pasaba lo mismo y lo solucioné con el siguiente script

Código PHP:
echo "<table border = '0' width='100%' class = 'Estilo3' align='center'>"

$columnas 3// Número de columnas (variable) 

if (($rows=mysql_num_rows($resultado))==0) { 
  echo 
"<tr><td align='center' colspan=$columnas>En este momento no disponemos de Marcas</td></tr>"
}
for (
$i=1$row mysql_fetch_row ($resultado); $i++) { 
$resto = ($i $columnas); // Número de celda del <tr> en que nos encontramos 
if ($resto == 1) {echo "<tr>";} // Si es la primera celda, abrimos <tr> 
    
echo "<td align='center'><a href=\"consultam.php?criterio=$row[0]\" onClick=\"window.open(this.href,'','width=780,height=300,location=no,toolbar=no,menubar=no,scrollbars=yes,resizable=no');return false\" target=\"blank\">$row[0]</a></td>";  
if (
$resto == 0) {echo "</tr>";} // Si es la última celda, cerramos </tr> 

if (
$resto <> 0) { // Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos 
$ajust $columnas $resto// Número de huecos necesarios 
for ($j 0$j $ajust$j++) {

}
mysql_close($link); 
echo 
"</table>" 
Espero te sirva :)

Saludos
  #5 (permalink)  
Antiguo 16/02/2006, 04:55
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Amigo mio...por mucho que le quites los <br> siguen apareciendo los resultados uno debajo del otro. Es mas, los <br> los puse yo aposta para que hubiera un espacio entre un resultado y otro. No se como se podria hacer lo que yo pretendo, que es que aparezcan los resultados de forma horizontal.Un saludo.
... Antes de PHP esta HTML.

Los "<br>" indican un salto de línea... así que, si quieres evitar esto en definitiva no los uses. Respecto a que "los pusiste tú para dar espacio"... generas código HTML incorrecto.

Tu función imprime encabezados (etiqueta <h5>) y listas (... mal hecha; no abres <ul>, ni cierras <li>), ambos son elementos de bloque, su "comportamiento natural" es mostrarse uno debajo de otro. Si quieres cambiarlo debes recurrir a CSS (también para generar esos espacios que creas con <br>) y se hace con el atributo display: inline.
Cita:
Iniciado por Malocado
A mi me pasaba lo mismo y lo solucioné con el siguiente script
Osea la FAQ #8 (el crédito a quien se lo merece) y lo que hace ese script es distribuir datos en una tabla... no considero sea aplicable por ineficiente en este caso. [Edito] En todo caso, de ocuparse tablas podría hacerse de una forma más sencilla [/Edito]

Todo depende de lo que se requiera generar, en principio, según entiendo el tipo de dato por el nombre de la función, puede ser más correcto el manejo de listas y modificar su presentación con CSS, aunque si no importa la semántica la solución fácil podría ser el imprimir espacios (&nbsp;) entre los datos y listo .

Cita:
Iniciado por carlosfocus
Una sugerencia, coloca como titulo de tu post algo que te ayude mejor a que la gente lo vea y te pueda dar una solución
Permiteme sugerirte lo mismo. No solo es ayuda para uno mismo (como creador de temas) sino para el foro en general; ayudas quienes hagan buen uso del buscador.

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 16/02/2006 a las 05:12
  #6 (permalink)  
Antiguo 16/02/2006, 05:23
Avatar de Malocado  
Fecha de Ingreso: septiembre-2004
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 0
jam1138 en ningún momento e dicho que el el script sea mío, en cualquier caso debería haber puesto el link, siento ese despiste.

Un saludo
  #7 (permalink)  
Antiguo 16/02/2006, 05:42
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por Malocado
jam1138 en ningún momento e dicho que el el script sea mío, en cualquier caso debería haber puesto el link, siento ese despiste.

Un saludo
... solo fue "un comentario" . Al no decir "no es mio" y dejar de mencionar al autor se entiende que uno es el creador... Dudo le importe a Cain, esta ahí para compartirse y que lo tome quien lo necesite. Mi intención fue solo "señalar" que las FAQ estan ahí, y que considero de "buena educación" dar el crédito a quien se lo merece.

Pero bueno, basta del offtopic. Solo es mi muy particular punto de vista y no más. Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 03:42.