hola,tengo el siguiente codigo php,todo funciona bien menos el "diseño" que debería adoptar con css:
este es el code:
echo "<div id='videoentero' style='height:auto;width:180px;margin-right:10px;margin-bottom:25px;float:left;'><div id='img' style='height:135px;width:180px;margin-bottom:10px;'><a href='video.php?id=$url'><img height='135' width='180' src='".$name."'/></a></div><div id='nombre' style='height:auto;width:180px;margin-bottom:10px;'><b><a href='video.php?id=$url'>".$id."</a></b></div><div id='duracion' style='height:auto;width:180px;margin-bottom:10px;'><font size='-2'>".$dura."</font></div></div>";
pero se ve así:
http://img149.imageshack.us/img149/4319/tupixxx.jpg
que es lo que estoy haciendo mal para que no se vean todas los videos cuadrados?
gracias! un saludo!
separa el codigo css del php ponlo aparte poonlo en etiquetas html
Cita de: BapeMilo en 10 Octubre 2010, 16:16 PM
separa el codigo css del php ponlo aparte poonlo en etiquetas html
ademas tambien te recomiendo firenug que te ayuda a ver que estilos estan afectando a un elemento. y te ayuda a modificarlo hay en vivo para ver mas o menor como tep podria quedar.
Pero no entiendo del porque ponerlo en el HTML. Perdón leí mal. xD
no puedo separar el css del php porque está dentro de un if,os pongo el código completo:
Creo que os dijo, fue que hicieras esto,
<div id="videoentero" style="height:auto; width:180px; margin-right:10px; margin-bottom:25px; float:left;">
<div id="img" style="height:135px; width:180px; margin-bottom:10px;">
<a href="video.php?id=$url"><img height="135" width="180" src="".$name.""/></a>
</div>
<div id="nombre" style="height:auto; width:180px; margin-bottom:10px;">
<b><a href="video.php?id=$url">".$id."</a></b>
</div>
<div id="duracion" style="height:auto; width:180px; margin-bottom:10px;">
<font size="-2">".$dura."</font>
</div>
</div>
Cita de: Shell Root en 10 Octubre 2010, 20:31 PM
Creo que os dijo, fue que hicieras esto,
<div id="videoentero" style="height:auto; width:180px; margin-right:10px; margin-bottom:25px; float:left;">
<div id="img" style="height:135px; width:180px; margin-bottom:10px;">
<a href="video.php?id=$url"><img height="135" width="180" src="".$name.""/></a>
</div>
<div id="nombre" style="height:auto; width:180px; margin-bottom:10px;">
<b><a href="video.php?id=$url">".$id."</a></b>
</div>
<div id="duracion" style="height:auto; width:180px; margin-bottom:10px;">
<font size="-2">".$dura."</font>
</div>
</div>
pero eso dentro del php no me deja meterlo con esas comillas,tendria que remplazarlas por estas '' y sería el mismo código que yo tengo puesto.
y pq no especificas el estilo en una hoja de estilo?
#videosentero
{
}
creo q es mas sencillo y luego solo usas el div con el estilo ya definido.
Cita de: ctlon en 10 Octubre 2010, 21:33 PM
y pq no especificas el estilo en una hoja de estilo?
#videosentero
{
}
creo q es mas sencillo y luego solo usas el div con el estilo ya definido.
pero al fin y al cabo es lo mismo y el error no se soluciona.
yo no creo que sea lo mismo, no he leido todo el codigo que pones pq no esta nada organizado. si separas el diseño de la programacion queda todo mas claro para terceros y para ti que tienes que estar mirando. aparte definiendo los estilos en una hoja, si falla solo modificas una vez y se aplica a los demas elementos.
Como te digo no he leido todo el codigo, pero podrias poner un div "contenedor" donde solo se mostraran los videos, dentro de ese "contenedor" cada video se mostrara en un div con estilo predefinido que marcara su separacion de una a otra.
te recomiendo que crees un div central con 800px y insertas hay el codigo php y si ves que no funciona ves por tablas
no se puede ya que el while lo que hace es repetir esta cadena
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.
<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;
}
(http://img411.imageshack.us/img411/8652/nadak.jpg)
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.
si sabia lo que querias decir,pero aver,este es el code:
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:
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
mmmmm puedes hacer manualmente indexando la imagen a la url del video
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>
(http://img828.imageshack.us/img828/8161/nada.jpg)
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.
ctlon hice lo siguiente pero me da error,ayudame con tu code please:
<?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
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.
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!
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.