Foros del Web » Programando para Internet » PHP »

Repetir región

Estas en el tema de Repetir región en el foro de PHP en Foros del Web. Buenas a tod@s;) Llevo casi 2 días "perdidos" intentando hacer q en un comportamiento d repetir región, con datos tomados d una tabla, en el ...
  #1 (permalink)  
Antiguo 22/02/2009, 19:17
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Repetir región

Buenas a tod@s;)

Llevo casi 2 días "perdidos" intentando hacer q en un comportamiento d repetir región, con datos tomados d una tabla, en el último d los datos me muestre una "y", en lugar d un ";", q se repite junto a los datos tomados d la tabla.

Les muestro el código y a lo mejor m entienden "más mejor"

Código PHP:
<?php do { ?>
            <?php echo $row_buscar_general['localidad']; ?>
            <?php if ($totalRows_buscar_general 1) { ?>;<?php ?>
<?php 
} while ($row_buscar_general mysql_fetch_assoc($buscar_general)); ?>
Lo único q he conseguido hacer es q cuando sólo existe un registro no m muestre el ";"...
Sí, sé q soy bastante cutre, pero no tengo aún demasiada idea y aunq he intentado encontrar ayuda en internet, debe d ser q es tan fácil q nadie tiene el mismo problema...

Gracias d antemano y salu2!!
  #2 (permalink)  
Antiguo 22/02/2009, 19:48
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Repetir región

Código PHP:
$i 0;
while (
$row mysql_fetch_array($buscar_general))
{
$num count($row)-2;
$row_buscar_general['localidad'];
echo 
$row_buscar_general['localidad'];

  if (
$i == $num
   {
   echo 
" y ";
   }

  else 
  { 
   echo 
" ; ";
  }

$i++;

Cuento automáticamente cuántos valores van a mostrarse. Para encontrar el penúltimo dato he de restarle 2 a esta cuenta (supongo que sabes que se empieza a contar desde 0, 1, 2, 3, 4...) entonces se compara con i que es la variable de incremento, y si coincide, significa que es el penúltimo y por lo tanto se escribirá "y" en lugar de ";"

Suerte
  #3 (permalink)  
Antiguo 22/02/2009, 21:42
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Respuesta: Repetir región

Muchísimas gracias David x tu respuesta pero desgraciadamente no funciona

He intentado modificar el código tuyo pero sigo igual (las verdad es q tampoco es q lo haya retocado demasiado xq no sé)

Este es el estado actual

Código PHP:
            $i 0;
             while (
$row_buscar_general mysql_fetch_assoc($buscar_general)) 
{
$num count($row_buscar_general);
echo 
$row_buscar_general['localidad'];
  if (
$i == ($num-2)) 
   {
   echo 
" y ";
   }
  else 
  { 
   echo 
" , ";
  }
$i++;

Es básicamente lo mismo, pero sigue sin funcionar.
De hecho, creo q el problema es el valor $num, porq cuando le digo q lo muestre en cualquier otro punto d la página (con un simple <?php echo $num; ?>) siempre m muestra un 2, y la y la pone entre el primer y el segundo valor

Muchas gracias igualmente x tu ayuda, un saludo!!
  #4 (permalink)  
Antiguo 22/02/2009, 22:12
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Respuesta: Repetir región

Hola d nuevo!!

No sé muy bien el por qué pero acabo d dar con una solución chapucera q al menos soluciona el problemilla. Es la siguiente:

Código PHP:

            $i 
0;
             while (
$row_buscar_general mysql_fetch_assoc($buscar_general)) 
{
$num $totalRows_buscar_general;
echo 
$row_buscar_general['localidad'];
  if (
$i == ($num-3)) 
   {
   echo 
" y ";
   }
  else 
  { 
   echo 
" , ";
  }
$i++;

El único pero es q después d mostrar el último valor pone una coma "," (en el penúltimo pone la "y"). Intentaré ver si puedo eliminarla.

Gracias nuevamente. Un saludo!!
  #5 (permalink)  
Antiguo 23/02/2009, 03:55
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Respuesta: Repetir región

Wenas nuevamente.
Creo q ya sí q funciona y hace lo q debe d hacer correctamente

Este es el código, x si a alguien le pudiera interesar:

Código PHP:
            $i 0;
             while (
$row_buscar_general mysql_fetch_assoc($buscar_general)) 
{
$num $totalRows_buscar_general;
echo 
$row_buscar_general['localidad'];
  if (
$i == ($num-3)) 
   {
   echo 
" y ";
   }
  if (
$i == ($num-2)) 
   {
   echo 
". ";
   }   
  if (
$i < ($num-3)) 
  { 
   echo 
" , ";
  }
$i++;

Nuevamente muchísimas gracias David, sin tu ayuda jamás podría haberlo conseguido.

Salu2!!
  #6 (permalink)  
Antiguo 23/02/2009, 07:17
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Respuesta: Repetir región

De nada Me alegro mucho de que te haya servido y de que lo hayas entendido para poderlo ajustar.
  #7 (permalink)  
Antiguo 23/02/2009, 10:38
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Respuesta: Repetir región

... esto...

siento ser tan pesado, pero... ¿tiene alguien idea d por qué m muestra sólo a partir del segundo registro, y no del primero??

No es problema del juego d registros "buscar_general", pues el "contador" empieza en 0 (LIMIT 0,30).

No tengo ni la más remota idea d por qué hace esto. Es algo bastante extraño.
Si a alguien se le ocurre algo, por favor, postee.

Gracias nuevamente a tod@s x su desinteresada colaboración.
  #8 (permalink)  
Antiguo 23/02/2009, 12:30
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 1
Respuesta: Repetir región

Lo siento x molestar...

Ya he "resuelto" el problema

Es una chapuza en toda regla pero funciona!!
Simplemente pongo un "echo" en el campo "localidad" antes del comportamiento d repetir región, y lógicamente m mostrará el primer valor. Luego, con el comportamiento d repetir región m muestra el resto...

Si es q a veces soy bastante terco como para no haberme dado cuenta mucho antes y así no molestarles.

Gracias a tod@s x vuestra desinteresada colaboración (en todos los posts q he puesto siempre ha habido alguien dispuesto a ayudar) y especialmente en este caso a David.

Salu2
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 16:03.