Foros del Web » Programando para Internet » PHP »

Quitar la coma del ultimo registro de una consulta

Estas en el tema de Quitar la coma del ultimo registro de una consulta en el foro de PHP en Foros del Web. Esta es la consulta que estoy haciendo y quiero quitar la " , " del ultimo registro y pueden ser n registros Código PHP: $result  ...
  #1 (permalink)  
Antiguo 07/03/2005, 08:40
Avatar de alexis77  
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 20 años, 4 meses
Puntos: 0
Quitar la coma del ultimo registro de una consulta

Esta es la consulta que estoy haciendo y quiero quitar la "," del ultimo registro y pueden ser n registros

Código PHP:
$result mysql_query("SELECT * FROM tabla2 WHERE id_seccion = '$id_seccion;
while($rows = mysql_fetch_array($result)){
    echo "
codigo:'[" .$rows["descrip"] ."'],<br>";

Ahora me esta mostrando de esta manera:
[codigo:'SubItem 1'],
[codigo:'SubItem 2'],
[codigo:'SubItem 3'],
[codigo:'SubItem 4'],




Y yo necesito q me muestre de esta manera:
[codigo:'SubItem 1'],
[codigo:'SubItem 2'],
[codigo:'SubItem 3'],
[codigo:'SubItem 4']

Última edición por alexis77; 07/03/2005 a las 09:59
  #2 (permalink)  
Antiguo 07/03/2005, 09:03
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 21 años, 2 meses
Puntos: 0
Una solucion seria usar una condicion de IF y decirle que si es el ultimo registro insertado no se ponga la "," pero que si no lo es, si. No se si me entiendes...

Eso se haria con un SELECT id FROM tabla2 WHERE algo='$algo' ORDER BY id LIMIT 1 ASC
Y luego hacer un nuevo query para poner if($rows["descrip"] == $rows2["descrip"])
{
//no llevaria ","
}
else{
//llevaria ","
}

Probablemente haya algun/algunos error/es pero es para darte una solucion >_<.
Seguramente haya un metodo mas sencillo, si lo hay espero que otro te lo diga, si quieres este metodo usalo, y si no te sale, postea tus dudas ^^.
Saludos
  #3 (permalink)  
Antiguo 07/03/2005, 09:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Yo solventaría el problema usando un array:

Código PHP:
$codigos=array();
while(
$rows mysql_fetch_array($result)){ 
    
$codigos[]="Código: ".$rows["descrip"]; 

de esa forma .. aplico un implode():

Código PHP:
$codigos_cadena=implode (',',$codigos);
echo 
$codigos
Pero, .. tambien con un str_replace() podrías hacerlo contanto el total de caracteres de tu cadena dada con strlen(). Pero para eso necesitas acomular tu generación de ese "string" (cadena) en una variable .. no hacer un "echo" en el bucle while() que usas ..

$codigos .= "codigo:'[" .$rows["descrip"] ."'],<br>";

Un saludo,





Un saludo,
  #4 (permalink)  
Antiguo 07/03/2005, 14:12
Avatar de alexis77  
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 20 años, 4 meses
Puntos: 0
El codigo que expuso Cluster esta buenicimo, pero necesito hacer con dos tablas .

y tengo el siguiente consulta:

Código PHP:
$result1 mysql_query("SELECT * FROM tabla1";
while(
$rows1 mysql_fetch_array($result1)){
    echo 
"codigo:'[" .$rows1["descrip1"] ."'],";
    
$result2 mysql_query("SELECT * FROM tabla2 WHERE id_seccion = " .$rows1["id_seccion"];
    while(
$rows2 mysql_fetch_array($result2)){
        echo 
"codigo:'[" .$rows2["descrip2"] ."'],<br>";
    }

  #5 (permalink)  
Antiguo 07/03/2005, 17:41
Avatar de Ruchu  
Fecha de Ingreso: octubre-2001
Mensajes: 698
Antigüedad: 22 años, 6 meses
Puntos: 2
Lo mas eficiente es esto: (creo q es lo mas rapido de procesar)

Código PHP:
 $result mysql_query("SELECT * FROM tabla2 WHERE id_seccion = ".$id_seccion);
$temp="";
while(
$rows mysql_fetch_array($result)){
    
$temp.="<br>codigo:'[" .$rows["descrip"] ."'],";
}

$temp=substr($temp0, -1);
echo 
$temp

si te gusta la opcion de cluster, haz dos veces lo que ha explicado para tus dos arrays.

Última edición por Ruchu; 07/03/2005 a las 17:43
  #6 (permalink)  
Antiguo 08/03/2005, 08:00
Avatar de alexis77  
Fecha de Ingreso: diciembre-2003
Mensajes: 119
Antigüedad: 20 años, 4 meses
Puntos: 0
tengo el siguiente script

Código PHP:
$query1 "SELECT id_seccion, seccion FROM " .TBL_SECCION" ORDER BY seccion ASC";
$db1->query($query1);
while(
$db1->next_record()){
    echo 
"{code:'" .$db1->f("seccion"). ",<br>";

    echo 
"--sub:[<br>";
        
$query2 "SELECT id_seccion, id_categoria, categoria FROM " .TBL_CATEGORIA" WHERE id_seccion = '" .$db1->f("id_seccion"). "' ORDER BY categoria DESC";
        
$db2->query($query2);

        
$cat = array();
        while(
$db2->next_record()){
            
$cat[] = "_____{code:'" .$db2->f("categoria"). "}";
        }
        
$cat_cade implode (',<br>',$cat);
        echo 
$cat_cade."<br>";
    echo 
"--]<br>
    },<br><br>"
;



Quiero quitar la ultima coma que esta de rojo alli estoy utilizando el codigo que me sugirio Cluster, tambien funciona el de Ruchu.

ahora mi problema es aplicar este mismo codigo u otro en la primera consulta para quitar la ultima coma que esta de rojo



y esto es lo que imprimo

{code:'Genio,
--sub:[
_____{code:'Genio categoria 11'},
_____{code:'222 genio'}
--]
},

{code:'Gente,
--sub:[
_____{code:'Genera Competencias'},
_____{code:'El Comienzo'},
_____{code:'categoria genenio 1111'}
--]
},

{code:'Guía,
--sub:[
_____{code:'segundo guia'},
_____{code:'Pimera cartegoria en guia'}
--]
},

Última edición por alexis77; 08/03/2005 a las 08:07
  #7 (permalink)  
Antiguo 18/07/2008, 14:38
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Quitar la coma del ultimo registro de una consulta

Hola! tengo un problema similar:

el siguiente código:

Código PHP:
include ("conexion.php");
$link mysql_connect($host$user$pass); 
mysql_select_db($base$link);
$sql="select * from cultura_secciones";
$result=mysql_query($sql);
while(
$secciones mysql_fetch_array($result))
{

    
$seccion=$secciones['nombre'];
    
$sql2="select * from cultura where id_seccion=".$secciones['id'];
    
$result2=mysql_query($sql2);
    if (
mysql_num_rows($result2)!=0){
    echo 
"<div class=\"cultu\">$seccion</div>";
    }
    while(
$cultura mysql_fetch_array($result2))
    {
    
    
    
$Fecha=$cultura['fecha'];
$arrFE explode("-",$Fecha);
$dia $arrFE[2];
$mes $arrFE[1];
if (
$mes==1$mes="Enero";
if (
$mes==2$mes="Febrero";
if (
$mes==3$mes="Marzo";
if (
$mes==4$mes="Abril";
if (
$mes==5$mes="Mayo";
if (
$mes==6$mes="Junio";
if (
$mes==7$mes="Julio";
if (
$mes==8$mes="Agosto";
if (
$mes==9$mes="Septiembre";
if (
$mes==10$mes="Octubre";
if (
$mes==11$mes="Noviembre";
if (
$mes==12$mes="Diciembre";$ano $arrFE[2];
$NombreFecha $dia." de ".$mes;
        echo 
"<div class=\"notina2\">
<p>$NombreFecha: "
.$cultura['titulo']." </p>
"
.$cultura['texto']."
</div>
<img src=\"elementos/new/hcd-separador.jpg\"/>
"
;
    }
        
    

en donde, al final de cada elemento, se muestra el separador.jpg
quisiera que en el último elemento de cada una de las secciones, este separador no se muestre.

¿es posible?
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
  #8 (permalink)  
Antiguo 19/07/2008, 07:42
 
Fecha de Ingreso: abril-2004
Mensajes: 44
Antigüedad: 20 años
Puntos: 0
Respuesta: Quitar la coma del ultimo registro de una consulta

¿por que no haces un

$contador=0;
$totales=mysql_num_rows($result2)

y luego dentro del bucle:

while($cultura = mysql_fetch_array($result2))
{
if($contador<$totales)
{
muestras el separador
}
else
{

no muestras el separador

}

$contador++;
}

espero que te sirva, un saludo
  #9 (permalink)  
Antiguo 21/07/2008, 07:17
Avatar de arielcasanova  
Fecha de Ingreso: octubre-2004
Ubicación: Bahía Blanca - Argentina
Mensajes: 332
Antigüedad: 19 años, 6 meses
Puntos: 1
Respuesta: Quitar la coma del ultimo registro de una consulta

gracias por la respuesta! Te muestro cómo lo hice, y me detectas qué es lo que está mal, por favor?

Código PHP:
<?
include ("conexion.php");
$link mysql_connect($host$user$pass); 
mysql_select_db($base$link);
$sql="select * from cultura_secciones";
$result=mysql_query($sql);
while(
$secciones mysql_fetch_array($result))
{

    
$seccion=$secciones['nombre'];
    
$sql2="select * from cultura where id_seccion=".$secciones['id'];
    
$result2=mysql_query($sql2);
    if (
mysql_num_rows($result2)!=0){
    echo 
"<div class=\"cultu\">$seccion</div>";
    }

$contador=0;
$totales=mysql_num_rows($result2)

    while(
$cultura mysql_fetch_array($result2))
    {

if(
$contador<$totales)
{
    
    
$Fecha=$cultura['fecha'];
$arrFE explode("-",$Fecha);
$dia $arrFE[2];
$mes $arrFE[1];
if (
$mes==1$mes="Enero";
if (
$mes==2$mes="Febrero";
if (
$mes==3$mes="Marzo";
if (
$mes==4$mes="Abril";
if (
$mes==5$mes="Mayo";
if (
$mes==6$mes="Junio";
if (
$mes==7$mes="Julio";
if (
$mes==8$mes="Agosto";
if (
$mes==9$mes="Septiembre";
if (
$mes==10$mes="Octubre";
if (
$mes==11$mes="Noviembre";
if (
$mes==12$mes="Diciembre";$ano $arrFE[2];
$NombreFecha $dia." de ".$mes;
        echo 
"<div class=\"notina2\">
<p>$NombreFecha: "
.$cultura['titulo']." </p>
"
.$cultura['texto']."
</div>
<img src=\"elementos/new/hcd-separador.jpg\"/>
"
;
}
else
{

$Fecha=$cultura['fecha'];
$arrFE explode("-",$Fecha);
$dia $arrFE[2];
$mes $arrFE[1];
if (
$mes==1$mes="Enero";
if (
$mes==2$mes="Febrero";
if (
$mes==3$mes="Marzo";
if (
$mes==4$mes="Abril";
if (
$mes==5$mes="Mayo";
if (
$mes==6$mes="Junio";
if (
$mes==7$mes="Julio";
if (
$mes==8$mes="Agosto";
if (
$mes==9$mes="Septiembre";
if (
$mes==10$mes="Octubre";
if (
$mes==11$mes="Noviembre";
if (
$mes==12$mes="Diciembre";$ano $arrFE[2];
$NombreFecha $dia." de ".$mes;
        echo 
"<div class=\"notina2\">
<p>$NombreFecha: "
.$cultura['titulo']." </p>
"
.$cultura['texto']."
</div>
"
;

}

$contador++;




    }
        
    
    
}


?>
__________________
Ariel Casanova
diseño y desarrollo web estratégico
www.emporia.com.ar
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 04:59.