Comunidad de diseño web y desarrollo en internet online

Mejorar bucles while

Citar            
MensajeEscrito el 15 Oct 2013 11:37 pm
En mi pagina en la pagina inferior donde dice informacion: http://goo.gl/N4H3kM hago un while del reparto de los actores, como verán mi problema es que el ultimo siempre tiene que llevar una "," quisiera algún código que reconozca que es el ultimo registro y no coloque la coma.

Muchas gracias de antemano.

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 16 Oct 2013 12:15 pm
Tienes dos soluciones.
A la lista de palabras ponlas en un array y luego a ese array hazle un implode().
Otra. Concatena las palabras en un string coma incluida pero antes de imprimir ese string hazle un substr() así:

Código PHP :

$lista_de_palabras = substr($lista_de_palabras, 0, -1);

Eso quitará la última coma. Si además tienes un espacio separando las palabras, pon -2 en el último parámetro de substr().

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 16 Oct 2013 03:01 pm
usa rtrim

Código PHP :

rtrim($texto, ",");

con eso ya puedes quitar la ultima coma

http://es.php.net/rtrim

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Oct 2013 07:28 am
Me gustaría aplicar el método que indicas el rtrim, pero no se de que forma podría colocarlo el bucle while que he echo lo tengo de esta forma:

Código PHP :

<?php do { ?>
<?php echo $row_SacarReparto['idreparto']; ?>,
<?php } while ($row_SacarReparto = mysql_fetch_assoc($SacarReparto)); ?>

Desde ya muchas gracias. :D

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 22 Oct 2013 09:43 pm
DriverOP es uno de mis heroes, pero creo que si hubieras colocado el codigo desde el inicio hubieras ahorrado teorias locas.

Por cierto no pongas tantas PHP tags.. aqui tu codigo corregido. y con el uso que menciona rtrim.

Código PHP :

<?php
do {
   $cadena .= $row_SacarReparto['idreparto'].",";
   }while ($row_SacarReparto = mysql_fetch_assoc($SacarReparto));
   
   echo rtrim($cadena, ",");
?>

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 23 Oct 2013 12:44 am
Gracias a todos me quedo de maravilla :D acá les dejo el link por si quisieran verlo http://goo.gl/SqQDru
Una consulta mas si quiero quitarle al comienzo como seria?

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 23 Oct 2013 12:45 am
o mejor dicho agregarle al comienzo nomas al primer registro de un while

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 23 Oct 2013 02:22 pm
Concatenas

Código PHP :

<?php

$cadena = "inicio de tu cadena o array";
do {
   $cadena .= $row_SacarReparto['idreparto'].",";
   }while ($row_SacarReparto = mysql_fetch_assoc($SacarReparto));
   
   echo rtrim($cadena, ",");
?>

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 24 Oct 2013 06:11 am
si rtrim elimina caracteres del final, cual elimina del comienzo?
pasa que quiero hacer una lista pero que solo el primero tenga una clase:

Código PHP :

<?php
do {
$cadena .= '<li class="sel">Temporada '.$row_SacarTemporada['temporada']."</li>";
}while ($row_SacarTemporada = mysql_fetch_assoc($SacarTemporada));
echo $cadena;
?>

La clase "sel" solo debe estar en el primer registro

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 24 Oct 2013 05:50 pm
tendrias que hacer una condicion amigo con un contador

$contador = 0;
do{
$contador++
if($contador == 1)
{ //agregas la clase }

// resto de tu while
}while( //condicion while)

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 24 Oct 2013 10:49 pm
Lo hice de esta forma:

Código PHP :

<?php $contador = 0;
do{$contador++;
if($contador == 1){
$cadena .= '<li class="sel">Temporada '.$row_SacarTemporada['temporada']."</li>";
}
$cadena .= '<li>Temporada '.$row_SacarTemporada['temporada']."</li>";
}while($row_SacarTemporada = mysql_fetch_assoc($SacarTemporada));
echo $cadena;
?>

Pero el resultado fue este:

Como veras se repite el primer registro

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 25 Oct 2013 12:22 pm
miguelsirna:

Es evidente que estás concatenando dos veces la misma cadena cuando $contador vale 1. Y esto me hace creer que tú no sabes programar, pero ese es otro tema.

A menos que tengas una buena razón para usar una clase CSS, pienso que no necesitas hacer esto agregando por código PHP la clase en cuestión. Puedes hacerlos con el selector CSS :first-child.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 25 Oct 2013 02:05 pm
Apoyo a DriverOp croe que necesitas regresar a las estructuras de contorl y te falta experimentar con los codigos.

La escencia de la programacion es experimentar.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 25 Oct 2013 02:29 pm
Claro bueno aun me falta, pero con eso del first-child aplica el estilo al primero, pero a medida que el usuario haga clic al otro menú cambia el estilo al segundo, eso lo hago con un javascript, mi tema es solo aplicar la clase al primer registro.

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

chrome
Citar            
MensajeEscrito el 25 Oct 2013 04:27 pm
Maldición:

Código PHP :

<?php $contador = 0;
do{$contador++;
if($contador == 1){
$cadena .= '<li class="sel">Temporada '.$row_SacarTemporada['temporada']."</li>";
} else {
$cadena .= '<li>Temporada '.$row_SacarTemporada['temporada']."</li>";
}
}while($row_SacarTemporada = mysql_fetch_assoc($SacarTemporada));
echo $cadena;
?>

¬_¬

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 25 Oct 2013 09:45 pm
jeje no me había puesto esa idea en la cabeza :c gracias a todos :D

Por miguelsirna

315 de clabLevel



Genero:Masculino  

Hacker & Programmer

msie

 

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