Autor Tema: Evitar repetir datos con While  (Leído 3909 veces)

Desconectado ivan m

  • PHPer@
  • **
  • Mensajes: 64
  • Karma: 0
  • Sexo: Masculino
  • Aprendiendo PHP!
    • Ver Perfil
    • Iván M.Z.
Evitar repetir datos con While
« en: 04 de Febrero de 2012, 11:45:24 am »
Hola, estoy haciendo un catálogo con php y resulta que los datos los muestro en una tabla y llamo a una base de datos mysql para obtener los valores, pues en la tabla hay variables que formulan los datos a partir de los valores de la BD.

Tengo esto:


while($row=mysql_fetch_array($result))
{
 echo 
"<tr>
         <th align=&#39;center&#39;><img src=&#39;img/header/
$row[id]/$row[banner].png&#39; /></td>
	
	
 <th align=&#39;center&#39;><img src=&#39;img/header/
$row[id]/$row[banner].png&#39; /></td>
      </tr>
	
  <tr>
         <th align=&#39;center&#39;><img src=&#39;script/resources/decks/
$row[img].png&#39; /></td>
	
	
 <th align=&#39;center&#39;><img src=&#39;script/resources/decks/
$row[img].png&#39; /></td>
      </tr>
	
  "
;
}

Lo que pasa es que si vuelvo a escribir:
Código: [Seleccionar]
<th align='center'><img src='img/header/$row[id]/$row[banner].png' /></td> para hacer más columnas siempre sale el mismo valor, lo mismo pasa con

Código: [Seleccionar]
<th align='center'><img src='script/resources/decks/$row[img].png' /></td>


¿Con un if se puede solucionar?

Captura:
« Última modificación: 04 de Febrero de 2012, 12:12:07 pm por ivan m »
Proyectos actuales:[/b]
Generador de skates - v1 Terminada, empezando v2

Comunidad PHPeros

Evitar repetir datos con While
« en: 04 de Febrero de 2012, 11:45:24 am »

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:Evitar repetir datos con While
« Respuesta #1 en: 04 de Febrero de 2012, 17:08:58 pm »

<?php
while($row mysql_fetch_array($result) and $variable) {
}
?>

Y desde el while cuando ya no quieras mostrar más, cambia el valor de $variable a false

Desconectado ivan m

  • PHPer@
  • **
  • Mensajes: 64
  • Karma: 0
  • Sexo: Masculino
  • Aprendiendo PHP!
    • Ver Perfil
    • Iván M.Z.
Re:Evitar repetir datos con While
« Respuesta #2 en: 04 de Febrero de 2012, 17:28:52 pm »
Hola -Pituko-, gracias por tu respuesta, pero no acabo de entender que hay que hacer, que hay que hacer con and $variable?

He probado a crear la variable $variable con valor false y no hace nada.

Saludos
Proyectos actuales:[/b]
Generador de skates - v1 Terminada, empezando v2

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:Evitar repetir datos con While
« Respuesta #3 en: 04 de Febrero de 2012, 18:19:47 pm »
Hola -Pituko-, gracias por tu respuesta, pero no acabo de entender que hay que hacer, que hay que hacer con and $variable?

He probado a crear la variable $variable con valor false y no hace nada.

Saludos
La creas con valor "true", es decir, $variable = true (sin comillas) y cuando quieras detener el bucle, dentro del bucle escribe $variable = false

Desconectado ivan m

  • PHPer@
  • **
  • Mensajes: 64
  • Karma: 0
  • Sexo: Masculino
  • Aprendiendo PHP!
    • Ver Perfil
    • Iván M.Z.
Re:Evitar repetir datos con While
« Respuesta #4 en: 04 de Febrero de 2012, 18:24:39 pm »
La creas con valor "true", es decir, $variable = true (sin comillas) y cuando quieras detener el bucle, dentro del bucle escribe $variable = false
Ok, eso sí funciona para cortar el bucle, pero los valores se me siguen repitiendo horizontalmente, lo que preguntaba es como se puede hacer que al lado de la imagen azul que sale en la captura que he puesto antes salga la de abajo marrón y no se repita siempre la de azul.

Saludos!
Proyectos actuales:[/b]
Generador de skates - v1 Terminada, empezando v2

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:Evitar repetir datos con While
« Respuesta #5 en: 04 de Febrero de 2012, 19:29:04 pm »
Es que vos estás definiendo que $row['banner'] se muestre en la misma fila y $row['img'] se muestre en la fila de abajo, es decir que como lo diagramaste con las tablas siempre te va a salir así, es problema de HTML y no de PHP.

Desconectado ivan m

  • PHPer@
  • **
  • Mensajes: 64
  • Karma: 0
  • Sexo: Masculino
  • Aprendiendo PHP!
    • Ver Perfil
    • Iván M.Z.
Re:Evitar repetir datos con While
« Respuesta #6 en: 04 de Febrero de 2012, 19:37:32 pm »
Es que vos estás definiendo que $row['banner'] se muestre en la misma fila y $row['img'] se muestre en la fila de abajo, es decir que como lo diagramaste con las tablas siempre te va a salir así, es problema de HTML y no de PHP.
¿Entonces como sería para que todos los resultados con el bucle salgan en horizontal?

Yo he copiado 7 veces cada th para que apareciese 7 veces en cada tr de forma continua en horizontal.

Si pongo solo un th en cada tr me sale en vertical.

A esto me refiero:



Y yo quiero que salga así, que creía que era como lo estaba haciendo antes:

Proyectos actuales:[/b]
Generador de skates - v1 Terminada, empezando v2

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:Evitar repetir datos con While
« Respuesta #7 en: 04 de Febrero de 2012, 20:02:41 pm »
Probá poniendo esto:

<tr>
        <th align='center'><img src='img/header/$row[id]/$row[banner].png' /></td>
      <th align='center'><img src='script/resources/decks/$row[img].png' /></td>
     </tr>

Desconectado ivan m

  • PHPer@
  • **
  • Mensajes: 64
  • Karma: 0
  • Sexo: Masculino
  • Aprendiendo PHP!
    • Ver Perfil
    • Iván M.Z.
Re:Evitar repetir datos con While
« Respuesta #8 en: 04 de Febrero de 2012, 20:09:28 pm »
Así lo que hace es poner el primer th a la izquierda y el segundo a la derecha. Lo que yo busco es que al tener una tabla así:

valor banner1  valor banner2  valor banner3
valor img1        valor img2        valor img3

Lo que pasa es que en los banner 2 y 3 salen el valor de banner1, y con img pasa lo mismo, salen el valor del 1 en los 2 y 3, y eso es lo que quiero cambiar.

Así que yo quiero usar el esquema que he puesto en el primer post pero sin que se mezclen los datos. de valor 1 en los de 2 y 3.

Saludos y muchas gracias!
Proyectos actuales:[/b]
Generador de skates - v1 Terminada, empezando v2

Desconectado Masato

  • PHPero Avanzado
  • ****
  • Mensajes: 480
  • Karma: 12
  • Sexo: Masculino
  • <?php echo "Solo quiero aprender php"; ?>
    • Ver Perfil
    • Masato Design!
Re:Evitar repetir datos con While
« Respuesta #9 en: 04 de Febrero de 2012, 20:13:50 pm »
Te fijaste en la DB que los valores no se repitan? Porque la verdad si no se repiten no tendría porque salir así.

Desconectado ivan m

  • PHPer@
  • **
  • Mensajes: 64
  • Karma: 0
  • Sexo: Masculino
  • Aprendiendo PHP!
    • Ver Perfil
    • Iván M.Z.
Re:Evitar repetir datos con While
« Respuesta #10 en: 04 de Febrero de 2012, 20:33:14 pm »
Con lo que tu has puesto salen las imágenes diferentes no se porque como lo tengo yo no.

Saludos
Proyectos actuales:[/b]
Generador de skates - v1 Terminada, empezando v2

Desconectado ivan m

  • PHPer@
  • **
  • Mensajes: 64
  • Karma: 0
  • Sexo: Masculino
  • Aprendiendo PHP!
    • Ver Perfil
    • Iván M.Z.
Re:Evitar repetir datos con While
« Respuesta #11 en: 05 de Febrero de 2012, 15:06:37 pm »
¿Entonces lo que digo no se puede?

He estado buscando por google: mostrar resultados mysql en horizontal

Y algo ha salido, pero no he sabido usarlo.
 
La idea es que salga así:



El problema está en que no consigo que haga un "salto", es decir, que cuando ya haya mostrado una fila no vuelva a mostrar la misma de una tabla.

Saludos!
Proyectos actuales:[/b]
Generador de skates - v1 Terminada, empezando v2

Desconectado Animus

  • PHPero Avanzado
  • ****
  • Mensajes: 273
  • Karma: 1
  • Sexo: Masculino
  • Aprende a aprender, el resto vendrá solo.
    • Ver Perfil
Re:Evitar repetir datos con While
« Respuesta #12 en: 06 de Febrero de 2012, 20:20:57 pm »
Poniendo las tablas en un mismo Párrafo?


La red social de tus sueños.


Desconectado ivan m

  • PHPer@
  • **
  • Mensajes: 64
  • Karma: 0
  • Sexo: Masculino
  • Aprendiendo PHP!
    • Ver Perfil
    • Iván M.Z.
Re:Evitar repetir datos con While
« Respuesta #13 en: 06 de Febrero de 2012, 20:52:47 pm »
Al final me han ayudado en otro foro, el código es así:


echo "<table border><tr>";  
while(
$row=mysql_fetch_array($result))  
{  
 echo 
"<td><table border=1>"
 echo 
"<tr> <th align=&#39;center&#39;><img src=&#39;img/header/$row[id]/$row[banner].png&#39; /></td></tr> "
 echo 
"<tr> <th align=&#39;center&#39;><img src=&#39;script/resources/decks/$row[img].png&#39; /></td> </tr> "
 
 echo 
"</table></td>"
  
}  
echo 
"<tr></table>"
Proyectos actuales:[/b]
Generador de skates - v1 Terminada, empezando v2

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:Evitar repetir datos con While
« Respuesta #14 en: 06 de Febrero de 2012, 23:43:36 pm »
Al final me han ayudado en otro foro, el código es así:


echo "<table border><tr>";  
while(
$row=mysql_fetch_array($result))  
{  
 echo 
"<td><table border=1>"
 echo 
"<tr> <th align=&#39;center&#39;><img src=&#39;img/header/$row[id]/$row[banner].png&#39; /></td></tr> "
 echo 
"<tr> <th align=&#39;center&#39;><img src=&#39;script/resources/decks/$row[img].png&#39; /></td> </tr> "
 
 echo 
"</table></td>"
  
}  
echo 
"<tr></table>"

Aún así, el código esta mal estructurado, sea como sea, no está escrito el HTML como se debe.