Foros del Web » Programando para Internet » PHP »

No saca bienlos resultados

Estas en el tema de No saca bienlos resultados en el foro de PHP en Foros del Web. Hola a todos, tengo un problema, tengo una tabla: adopta con los campos codigo, nombre, sexo, edad, imagen_p, imagen_g, entrada, historia y urgente. y tengo ...
  #1 (permalink)  
Antiguo 15/06/2007, 17:22
 
Fecha de Ingreso: diciembre-2006
Mensajes: 111
Antigüedad: 17 años, 4 meses
Puntos: 1
No saca bienlos resultados

Hola a todos, tengo un problema, tengo una tabla: adopta con los campos codigo, nombre, sexo, edad, imagen_p, imagen_g, entrada, historia y urgente.
y tengo tres productos metidos, quiero que los saque y he hecho lo siguiente y solo me saca el segundo y el tercero, el primero se lo salta.

Os lo pego aquí abajo a ver que os parece y simepodeis ayudar

Muchas gracias

Un saludo

Alejandra



<?
$conn = mysql_connect("lldb499.servidoresdns.net","****"," *****")

or die ('Lo sentimos, no se pudo establecer la conexi&oacute;n');
mysql_select_db("qbr261",$conn)

or die ('Lo sentimos, no se pudo establecer la conexi&oacute;n');

$ssql = "select * from adopta";

$resultid = mysql_query($ssql,$conn)

or die ("Fallo en la consulta");
if ($linea=mysql_fetch_object($resultid)) {

?>
<td bgcolor="#F5F5FF">
<table width="100%" border="0" align="center" cellpadding="1" cellspacing="0">
<tr>
<td><marquee id="marquee1" onMouseOver="marquee1.stop();" onMouseOut="marquee1.start()" direction="up" scrollAmount="1.7" height="150">
<table width="100%" height="100" border="0" align="center" cellpadding="2" cellspacing="0">
<?
while ($linea = mysql_fetch_object($resultid)){
?>
<tr>
<td width="140" rowspan="2" align="center" valign="middle"><a href="urgentes.php" target="contenido" onMouseOver="window.status='<? echo $linea->nombre;?>';return true" onMouseOut="window.status=' '">
<img src="<? echo $linea->imagen_p;?>" alt="<? echo $linea->nombre;?>" border="0"></a></td>
<td align="left"><a href="urgentes.php" class="sexto" target="contenido" onmouseover="window.status='<? echo $linea->nombre;?>';return true" onmouseout="window.status=' '"><? echo $linea->nombre;?></a></td>
</tr>
<tr>
<td align="left"><a href="urgentes.php" target="contenido" onMouseOut="window.status=' '" onMouseOver="window.status='<? echo $linea->nombre;?>';return true"><? echo $linea->entrada;?></a></td>
</tr>
<tr height="1">
<td height="20" colspan="2" align="center"><table width="100%" height="1" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="1" bgcolor="#CC9933"><img src="../imag/pix.gif" width="1" height="1"></td>
</tr>
</table></td>
</tr>

<?php
$num_filas++;
}
?>
</table>
</marquee></td>
</tr>
</table>
</td>
<?
}
else{
?>
<td bgcolor="#F5F5FF">&nbsp;</td>
<?php
}
mysql_free_result($resultid);
mysql_close($conn);
?>
  #2 (permalink)  
Antiguo 15/06/2007, 18:52
 
Fecha de Ingreso: junio-2007
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: No saca bienlos resultados

mmm te dare una idea de como recorro arreglos traidos desde mysql

$consulta="select * from adopta;";
$query=mysql_query($consulta);
$numero=mysql_num_rows($query);
$info=mysql_fetch_array($query);
/*Ahi ya rescate todo desde la base de datos*/
/*Y cree la variable $numero para saber cuantos registros encontro*/

for($i=0;$i<$numero;$i++)
{
print $info[0].$info[1].$info[2].$info[3]...... etc;
$info=mysql_fetch_array($query);
}

/*Reemplazo el While por el For*/
  #3 (permalink)  
Antiguo 16/06/2007, 13:14
 
Fecha de Ingreso: abril-2007
Mensajes: 144
Antigüedad: 17 años
Puntos: 4
Re: No saca bienlos resultados

Quita la siguiente linea de tu codigo:
Código PHP:
if ($linea=mysql_fetch_object($resultid)) { 
  #4 (permalink)  
Antiguo 16/06/2007, 19:07
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: No saca bienlos resultados

Hola Alejandr4, primero, deberìas encerrar tus còdigos entre las etiquetas [PHP ] y [/PHP ] (Sin espacios), para obtener un còdigo en colores y mas amigable al leer.

Bien, al ejecutar una consulta sql, el resultado queda guardado en una variable, en tu caso es la variable $resultid. Luego, usualmente se usa una funcion while para recorrer los datos guardados en la variable. Me explico, las funciones mysq_fetch_algo crearàn una matriz (mysql_fetch_array, mysql_fetch_assoc, etc.) o un objeto (mysql_fetch_object) conteniendo los datos de la consulta, pero àètos arreglos no son como un simple $datos = array();, son algo especiales. Al ejecutar por primera vez la funciòn, ésta devolverà el primer registro, luego al volver a usar la funcion, devolverà el segundo, y despues el tercero, y asi sucesivamente.

Imaginemos que haces una consulta que te devuelve 3 resultados, entonces colocar el siguiente còdigo:
Código PHP:
//$result = mysql_query($sql);
 
//En cada bucle, $datos va tomando los datos del siguiente registro
//Al llegar al ultimo registro, la funcion devuelve false y el bucle se detiene
while($datos mysql_fetch_object($result)) {
echo 
$datos->Nombre."<br />\n";

es como que si colocaras:
Código PHP:
//$result = mysql_query($sql);
 
//mysql_fetch_object() devuelve el primer resultado
$datos mysql_fetch_object($result);
echo 
$datos->Nombre."<br />\n";
 
//mysql_fetch_object() devuelve el segundo resultado
$datos mysql_fetch_object($result);
echo 
$datos->Nombre."<br />\n";
 
//mysql_fetch_object() devuelve el tercer resultado
$datos mysql_fetch_object($result);
echo 
$datos->Nombre."<br />\n"
Ahora, que pasaria si colocas un if antes del bucle, como lo estas haciendo:
Código PHP:
//$result = mysql_query($sql);
 
if($datos mysql_fetch_object($result)) { //Devuelve el primer resultado
 
//En cada bucle, $datos va tomando los datos del siguiente registro, PERO
//ESTAVEZ ESTA EMPEZANDO DEL SEGUNDO REGISTRO, YA QUE EN EL IF
//LA FUNCION DEVOLVIO EL PRIMER REGISTRO PERO NO FUE USADO....
//Al llegar al ultimo registro, la funcion devuelve false y el bucle se detiene
while($datos mysql_fetch_object($result)) {
echo 
$datos->Nombre."<br />\n";
}
 

Asì, el bucle se ejecuta solo con los dos ultimos registros... Para solucionar esto puedes usar en el if alguna funcion diferente, como mysql_num_rows(), que te devuelve el numero de filas que se obtuvo de la consulta, algo asi:

Código PHP:
$num mysql_num_rows($result);
 
if(
$num >= 1) {
//[...]Código[...]
while($datos mysql_fetch_object($result)) {
//[...]Más código[...]
}
} else {
echo 
"No hay resultados";

y tu código finalmente quedarìa:

Código PHP:
<?
$conn 
mysql_connect("lldb499.servidoresdns.net","****"," *****") or die ('Lo sentimos, no se pudo establecer la conexi&oacute;n'); 
mysql_select_db("qbr261",$conn) or die ('Lo sentimos, no se pudo establecer la conexi&oacute;n'); 
$ssql "select * from adopta";
$resultid mysql_query($ssql,$conn) or die ("Fallo en la consulta");
 
//Cambié esta linea
if (mysql_num_rows($resultid) >= 1) { 
?>
<td bgcolor="#F5F5FF"> 
<table width="100%" border="0" align="center" cellpadding="1" cellspacing="0">
<tr>
<td><marquee id="marquee1" onMouseOver="marquee1.stop();" onMouseOut="marquee1.start()" direction="up" scrollAmount="1.7" height="150">
<table width="100%" height="100" border="0" align="center" cellpadding="2" cellspacing="0">
<?
while ($linea mysql_fetch_object($resultid)){
?>
<tr>
<td width="140" rowspan="2" align="center" valign="middle"><a href="urgentes.php" target="contenido" onMouseOver="window.status='<? echo $linea->nombre;?>';return true" onMouseOut="window.status=' '">
<img src="<? echo $linea->imagen_p;?>" alt="<? echo $linea->nombre;?>" border="0"></a></td>
<td align="left"><a href="urgentes.php" class="sexto" target="contenido" onmouseover="window.status='<? echo $linea->nombre;?>';return true" onmouseout="window.status=' '"><? echo $linea->nombre;?></a></td>
</tr>
<tr>
<td align="left"><a href="urgentes.php" target="contenido" onMouseOut="window.status=' '" onMouseOver="window.status='<? echo $linea->nombre;?>';return true"><? echo $linea->entrada;?></a></td>
</tr>
<tr height="1">
<td height="20" colspan="2" align="center"><table width="100%" height="1" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="1" bgcolor="#CC9933"><img src="../imag/pix.gif" width="1" height="1"></td>
</tr>
</table></td>
</tr>
<?php
$num_filas
++; 
}
?>
</table>
</marquee></td>
</tr>
</table>
</td>
<?
}
else{ 
?>
<td bgcolor="#F5F5FF">&nbsp;</td>
<?php
}
mysql_free_result($resultid);
mysql_close($conn);
?>
Suerte. Un saludo,

P.D. ¿Acaso no se ve mejor el codigo coloreado ?
  #5 (permalink)  
Antiguo 16/06/2007, 19:29
 
Fecha de Ingreso: diciembre-2006
Mensajes: 111
Antigüedad: 17 años, 4 meses
Puntos: 1
De acuerdo Re: No saca bienlos resultados

Gracias a todos por la ayuda y mil gracias okram por las explicaciones, ahora entiendo perfectamente lo que me estaba pasando.

Joo y pensar que llevaba dos días haciendo prubeas y nada..jeje

Muchas gracias de verdad

Un saludo

Alejandra

P.D: No sé como hacer para que salga la ventanita esa con el codigo con colores como haceis vosotros, tal y comolo veo en dreamweaver, seríamás cómodo para todos cuando pongo códigos largos
  #6 (permalink)  
Antiguo 16/06/2007, 19:48
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: No saca bienlos resultados

Alejandr4 lo de poner el código con colores es muy fácil. Como te ha dicho okram, basta con ponerlos entre [ PHP] y [/PHP], como si fuera HTML. Es decir, si pones esto (sin el asterisco):

[*PHP]
echo("Hola mundo");
[/PHP]

Saldría esto:
Código PHP:
echo("Hola mundo"); 
Un saludo.
  #7 (permalink)  
Antiguo 16/06/2007, 19:52
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: No saca bienlos resultados

En los foros puedes usar diversos tipos de etiquetas de encuadre (asi es como yo las llamo) para los codigos o las citas, por ejemplo, si yo quiero poner un codigo PHP, pues harè algo asi:

Este es mi codigo:

[php]
<?php
echo "Hola mundo, este es mi primer script";
?>
[/php]

y el resultado seria

Este es mi codigo:

Código PHP:
<?php
echo "Hola mundo, este es mi primer script";
?>
Ahora, para codigo HTML tienes las etiquetas [ HTML] y [/html]

[HTML]
Texto <font color="#ff0000">rojo</font> y en <p>negrita</p>
[/html]

Y dispones de otro tipo de etiquetas:


[php] [/php]-> Código PHP
[html] [/html]-> Código HTML
[code] [/code]-> Código simple sin colorear
[quote] [/quote]-> Citar una respuesta o un texto
[wiki] [/wiki]-> Crear un enlace hacia un arículo de la wikipedia
[google] [/google]-> Crear un enlace hacia el resultado de una busqueda en GOOGLE


etc. etc. etc....

Un saludo,

Última edición por okram; 16/06/2007 a las 20:05
  #8 (permalink)  
Antiguo 16/06/2007, 19:57
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: No saca bienlos resultados

Para que entiendas mejor esto de los BBCodes de vBulletin, aqui tienes este link:

http://www.forosdelweb.com/misc.php?do=bbcode

Lo de los codigos esta aqui:
http://www.forosdelweb.com/misc.php?do=bbcode#code

Un saludo,
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 09:37.