Comunidad de diseño web y desarrollo en internet online

PROBLEMA PARA MOSTRAR RESULTADOS

Citar            
MensajeEscrito el 14 Sep 2009 01:00 am
Hola!
Tengo un problema al mostrar mis datos, lo que me ocurre es que hago un if para ver si hay algun valor, si lo hay que lo muestre una tabla, pero no me muestra todos, me muestra los del indice 1 en adelante y no muestra el de indice 0.
Aca les paso el codigo PHP para que se fijen que yo no encuentro el problema

$sql = "SELECT * FROM articulos ORDER BY nombre";
$consulta = mysql_query($sql);
$estado = 0;
if(mysql_fetch_row($consulta) != ""){ // ACA ES EL PROBLEMA, pongo esto y ocurre lo que les conte, lo saco y me funciona todo lo mas bien.
print "<table align='center'><tr align='center' id='inicio'><td width='100'>Codigo</td><td width='250'>Nombre</td><td width='110'>Fecha de ingreso</td><td width='250'>Precio</td></tr>";
while ($mostrar = mysql_fetch_row($consulta)){
if($estado == 0){ //utilizo esto para mostrar un resultado con cada id, asi por css me queda un fila de cada color, probe sacandolo pero no funciona, igual estoy seguro de que aca no es el problema
print "<tr id='resultado' align='center'><td>$mostrar[0]</td>";
print "<td>$mostrar[1]</td>";
print "<td>$mostrar[2]</td>";
print "<td>$mostrar[3]</td></tr>";
$estado = 1;
}else{
print "<tr id='resultado2' align='center'><td>$mostrar[0]<marca></td>";
print "<td><div class='blanco'>$mostrar[1]</td>";
print "<td><div class='blanco'>$mostrar[2]</td>";
print "<td><div class='blanco'>$mostrar[3]</td></tr>";
$estado = 0;
}
}
}else{
print "Noy hay registros de esta prueba, esto se debe a que nunca la nadastes o no has ingresado a la prueba";
print "</table>";
}

Gracias
Salu2

Por Rakisuy

50 de clabLevel



Genero:Masculino  

Uruguay

chrome
Citar            
MensajeEscrito el 14 Sep 2009 03:06 am
separa las cosas, una cosa es el resultado de la consulta y otra cosa es como imprimes el resultado
asegurate de que los datos que obtienes son los correctos.


de todos modos veo a simple vista 2 errores uno feo y otro fatal

el feo: Usas * en ves de nombrar tus campos en el SELECT

fatal: que no estas usando adecuadamente mysql_fetch_row, esta funcion sirve para traer el resultado de 1 sola fila, no hay razón para meterla dentro de un while, este es el ejemplo de uso en el manual (ojo tambien con la consulta ;) )

Código PHP :

<?php$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);
if($row){
echo $row[0]; // 42
echo $row[1]; // the email value
}else{
echo 'PTJ';
}
?> 


PD para la proxima usa la etiqueta [php] para mostar tu codigo php.

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 14 Sep 2009 09:11 am
Parece que estás intentando recorrer los resultados de la consulta SQL y quieres verificar antes si la consulta trajo algún resultado.
Pasa saber si $consulta apunta a al menos un resultado utiliza:

Código PHP :

$c = mysql_num_rows($consulta);


En $c tendrás cuántros registros hay en $consulta, en base a eso sí puedes comenzar con el while.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 14 Sep 2009 12:11 pm
haa gracias, probando. la idea era como decias vos DriverOp, ver que la consulta devolviera algun valor. ahora a probar :)
Salu2

Por Rakisuy

50 de clabLevel



Genero:Masculino  

Uruguay

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.