[solucionado] problema css y php

Iniciado por viher, 10 Octubre 2010, 16:04 PM

0 Miembros y 1 Visitante están viendo este tema.

BapeMilo

te recomiendo que crees un div central con 800px y insertas hay el codigo php y si ves que no funciona ves por tablas

viher

no se puede ya que el while lo que hace es repetir esta cadena

Código (php) [Seleccionar]
echo "<div id='videos' class='videos'>";
echo "<div id='videos1'>";
echo "<div id='img'><a href='video.php?id=$url'><img height='135' width='180' src='".$name."'/></a></div>";
echo "<div id='nombrevideo'><table width=180><tr><td align=center><b><a href='video.php?id=$url'>".$id."</a></b></tr></td></table></div>";
echo "<div id='dur'><table width=180><tr><td align=center><font size='-2'>".$dura."</font></tr></td></table></div>";
echo "</div></div>";


además de que el codigo entero en php está dentro de una tabla con su width y height correspondientes.

bizco


<html>
<head>
<link rel="stylesheet"  href="nada.css" type="text/css">
</head>
<body>
<div class="Contenedor">
<?php
 
for($x=0;$x<=27;$x++)
 {
  
printf("<div class=\"elemento\">Video %d</div>",$x);
 }
?>

</div> <!-- Contenedor -->
</body>
</html>



.Contenedor
{
background-color: red;
width: 800px;
height: 500px;
overflow: hidden;
}

.elemento
{
position: relative;
background-color: white;
border: 2px solid black;
width: 100px;
height: 100px;
margin: 5px auto auto 5px;
float: left;
}




he usado esos colores para que veas lo que quiero decir, ya puedes poner dentro todos los videos que quieras que se muestran correctamente. perdon si hay algun fallo pero esta hecho para que entiendas lo que digo.

viher

si sabia lo que querias decir,pero aver,este es el code:

Código (php) [Seleccionar]
while ($row = mysql_fetch_assoc($rs))
        {
           $name = $row["img"];
           $id = $row["nombre"]."";
           $dura = $row["dur"]."";  
           $url = $row["id"];
echo "<div id='videos' class='videos'>";
echo "<div id='videos1'>";
echo "<div id='img'><a href='video.php?id=$url'><img height='135' width='180' src='".$name."'/></a></div>";
echo "<div id='nombrevideo'><table width=180><tr><td align=center><b><a href='video.php?id=$url'>".$id."</a></b></tr></td></table></div>";
echo "<div id='dur'><table width=180><tr><td align=center><font size='-2'>".$dura."</font></tr></td></table></div>";
echo "</div></div>";
        }


si pongo un div como tu dices es fuera,porque si lo pongo dentro del while se repetiría por cada video y sería un caos,asi queda el code:

Código (php) [Seleccionar]

echo "<div style='height:auto;width:auto;">;
        while ($row = mysql_fetch_assoc($rs))
        {
           $name = $row["img"];
$id = $row["nombre"]."";
$dura = $row["dur"]."";  
$url = $row["id"];
echo "<div id='videos' class='videos'>";
echo "<div id='videos1'>";
echo "<div id='img'><a href='video.php?id=$url'><img height='135' width='180' src='".$name."'/></a></div>";
echo "<div id='nombrevideo'><table width=180><tr><td align=center><b><a href='video.php?id=$url'>".$id."</a></b></tr></td></table></div>";
echo "<div id='dur'><table width=180><tr><td align=center><font size='-2'>".$dura."</font></tr></td></table></div>";
echo "</div></div>";
        }
echo "</div>";
     


y queda igual que antes,descolocado totalmente:

http://img340.imageshack.us/img340/7172/tupixxx2.jpg

BapeMilo

mmmmm puedes hacer manualmente indexando la imagen a la url del video

bizco

#15
Citarsi lo pongo dentro del while se repetiría por cada video y sería un caos

por la imagen entiendo que quieres una galeria de videos, el bucle for que yo puse era por mostrarte X elementos. el propio while que usas para imprimir cada registro lo usas para especificar el div y el contenido sale centrado igual. lo que tienes es un problema de diseño nada mas, si no me crees te pongo con el mismo codigo de antes sacando datos de una tabla y veras que se muestra correctamente.


con el mismo css:


<html>
<head>
<link rel="stylesheet"  href="nada.css" type="text/css">
</head>
<body>
<div class="Contenedor">
<?php

 
require_once("cfg/dbconf.php");
 require_once(
"inc/db.php");
 
 
$db= new DBCore($dbhost,$dbuser,$dbpass,$dbname);
 
 
$k=$db->query_get_resource("SELECT name FROM sd_usergroups");
 while(
$t=mysql_fetch_array($k))
 {
  
printf("<div class=\"elemento\">Grupo: %s</div>",$t['name']);
 }
 
$db->free($k);
 
$db->close();
?>

</div> <!-- Contenedor -->
</body>
</html>




El contenido se muestra de la misma forma. el ejemplo es cutre pero dandole los datos que le des la presentacion es la misma.


por lo demas, puede que algo te rompa el ancho de las tablas y por eso lo ves raro, pero eso ya con el firebug como te comentaron miralo tu pq tienes un codigo demasiado largo y dificil de leer como para decirte este elemento te falla. como consejo te vuelvo a decir que separes el diseño de la programacion, si el dia de mañana quieres hacr un cambio grande solo tienes que modificar el css y el codigo seria igual.

viher

#16
ctlon hice lo siguiente pero me da error,ayudame con tu code please:

Código (php) [Seleccionar]
<?php
$dbhost 
"localhost";
$dbuser "user";
$dbpass "pass";
$dbname "bd";
$db= new DBCore("$dbhost,$dbuser,$dbpass,$dbname");
 
 
$k=$db->query_get_resource("SELECT * FROM pornstars");
 while(
$t=mysql_fetch_array($k))
 {
  
printf("<div class=\"elemento\">Grupo: %s</div>",$t['nombre']);
 }
 
$db->free($k);
 
$db->close();
?>


Fatal error: Class 'DBCore' not found in D:\Archivos de programa\AppServ\www\1.php on line 33

bizco

#17
el codigo tal cual es un ejemplo para que vieses el tema de mostrar el contenido igual sean los elementos que sean, el css te vale pero el php no pq uso unas clases propias por comodidad.

$db= new DBCore("$dbhost,$dbuser,$dbpass,$dbname");

ahi te sobran las comillas, pero te repito que  a eso ni caso pq no es propio de php.


he mirado la pagina y actualmente se muestran bien los resultados, mira que has cambiado para que se muestre mal y que el contenido no te "rompa" las tablas.

viher

#18
ya lo solucioné,utilicé el contenedor que me dijiste ctlon y el problema estaba en la tabla del nombre,que si el nombre era más largo ocupaba mas espacio y movia el video de abajo,la solución hacer esa fila más alta.

gracias a todos por la ayuda! y sobre todo a ctlon!

un saludo!

bizco

#19
estas metiendo mas divs dentro que tb tendras que decirle como quieres que se muestren y luego esta la tabla. no es buena idea mezclar codigo, ponte de 0 en una prueba y creas una galeria cutre asi con divs chorras y colores varios para que veas el tema de las posiciones.

pues nada, me alegro que este solucionado.