Foros del Web » Programando para Internet » PHP »

problemas con cadenas y bucles

Estas en el tema de problemas con cadenas y bucles en el foro de PHP en Foros del Web. Buenas a todos, le informo los molesto, es para que me ayuden con este bucle, lo que busco es mostrar los tres campos dentro de ...
  #1 (permalink)  
Antiguo 25/01/2012, 19:38
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 9 meses
Puntos: 1
Exclamación problemas con cadenas y bucles

Buenas a todos, le informo los molesto, es para que me ayuden con este bucle, lo que busco es mostrar los tres campos dentro de comillas y separado por comas, el problema es que siempre me sobra una como, como evito eso.

este es el código y el resultado

$campos = array("id","nombre","apellido");

foreach($campos_datos as $campos => $datos)
{
echo "`{$campos}`,";
}

este es el resultado que me da: 'd','nombre','apellido',
este es el que quiero: 'id','nombre','apellido'

Gracias: -D
  #2 (permalink)  
Antiguo 25/01/2012, 19:48
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: problemas con cadenas y bucles

Código PHP:
Ver original
  1. $campos = array("id","nombre","apellido");
  2.  
  3. foreach ($campos as &$v) {
  4.     $v = "'$v'";
  5. }
  6.  
  7. echo implode(', ', $campos);

o así:

Código PHP:
Ver original
  1. <?php
  2. $campos = array("id","nombre","apellido");
  3. $num = count($campos);
  4.  
  5. foreach ($campos as $c => $v) {
  6.     $v = "'$v'";
  7.     echo $v;
  8.     if ($c != $num-1) {
  9.         echo ', ';
  10.     }
  11. }

etc... xD se me ocurren otras formas...
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 25/01/2012 a las 20:04
  #3 (permalink)  
Antiguo 25/01/2012, 20:10
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 18 años, 3 meses
Puntos: 22
Respuesta: problemas con cadenas y bucles

Hola, una forma muy simple es usar implode().

Código PHP:
echo implode(',',$campos); 
Si por algún motivo querés recorrer uno por uno (para hacer algún proceso antes de mostrarlo, podés hacer algo así:

Código PHP:
$resultado='';
foreach(
$campos as $c) {
  
$resultado=($resultado?', ':'').$c;
}
echo 
$resultado
Saludos.
  #4 (permalink)  
Antiguo 25/01/2012, 20:10
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: problemas con cadenas y bucles

Muchas gracias alta le momento es todo lo que buscaba....
  #5 (permalink)  
Antiguo 25/01/2012, 20:19
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: problemas con cadenas y bucles

Hey men perdona y si el array es de tipo asociativo ejemplo...
$campos_datos = array("nombre" => "Hallking", "apellido" => "Quesadaa");
$num = count($campos);
foreach ($campos as $c => $v) {
$v = "`$v`";
echo $v;
if ($c != $num-1)
{
echo ', ';
}
}
  #6 (permalink)  
Antiguo 25/01/2012, 20:34
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: problemas con cadenas y bucles

Con la primera forma que te puse:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $campos_datos = array("nombre" => "Hallking", "apellido" => "Quesadaa");   
  4.  
  5. foreach ($campos_datos as &$v) {
  6.     $v = "'$v'";
  7. }
  8.  
  9. echo implode(', ', $campos_datos);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 25/01/2012, 20:35
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 18 años, 3 meses
Puntos: 22
Respuesta: problemas con cadenas y bucles

Podés hacerlo más simple, del mismo modo que te indiqué antes:

Código PHP:
$resultado=''
foreach(
$campos as $k=>$c) { 
  
$resultado=($resultado?', ':'').$c

echo 
$resultado
O bien así, si querés mostrar clave y valor:

Código PHP:
$resultado=''
foreach(
$campos as $k=>$c) { 
  
$resultado=($resultado?', ':'').'"'.$k.'": '.$c

echo 
$resultado
Saludos.

(Estamos respondiendo los dos al mismo tiempo, jajaja, ambas opciones están bien)
  #8 (permalink)  
Antiguo 25/01/2012, 20:43
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: problemas con cadenas y bucles

Cita:
Iniciado por geq Ver Mensaje
Podés hacerlo más simple, del mismo modo que te indiqué antes:

Código PHP:
$resultado=''
foreach(
$campos as $k=>$c) { 
  
$resultado=($resultado?', ':'').$c

echo 
$resultado
O bien así, si querés mostrar clave y valor:

Código PHP:
$resultado=''
foreach(
$campos as $k=>$c) { 
  
$resultado=($resultado?', ':'').'"'.$k.'": '.$c

echo 
$resultado
Saludos.

(Estamos respondiendo los dos al mismo tiempo, jajaja, ambas opciones están bien)

Tus ejemplos no funcionan... Olvidaste un punto xD

Primer ejemplo: , Quesadaa

Segundo ejemplo: , "apellido": Quesadaa

------------ ------------- -------------------------------------

Puedes hacer algo así también:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $campos_datos = array("nombre" => "Hallking", "apellido" => "Quesadaa");   
  4.  
  5. foreach ($campos_datos as $c => $v) {
  6.     $v = $v != end($campos_datos) ? "'$v', " : "'$v'";
  7.     echo $v;
  8. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 25/01/2012 a las 20:50
  #9 (permalink)  
Antiguo 25/01/2012, 20:52
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 18 años, 3 meses
Puntos: 22
Respuesta: problemas con cadenas y bucles

@andresdzphp, es cierto, incluso me lo comí en la primer respuesta también. Gracias por señalarlo.
  #10 (permalink)  
Antiguo 26/01/2012, 12:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: problemas con cadenas y bucles

Bueno en el ultimo ejemplo, no funciono como esperaba, ya que solo muestra los calores no c and valor, pero de todas forma esto es una muestra de lo que e echo con su añuda para que me puedan ayudar de una manera mas rápida y gracias a todos..

$campos_datos = array("nombre" => "Hallking", "apellido" => "Quesadaa");
$dat = count($campos_datos);
foreach($campos_datos as $c => $v)
{
$Valor = "'{$c}' = '{$v}'";
echo $Valor;
if ($c != $dat-1)
{
echo ', ';
}
}

este es el valor que da 'nombre' = 'Hallking', 'apellido' = 'Quesadaa',
como explique al principio el problema es la coma del final... si me pueden ayudar y perdonen la molestia gracias....
  #11 (permalink)  
Antiguo 26/01/2012, 12:35
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: problemas con cadenas y bucles

Así me funciona a mi:

Código PHP:
Ver original
  1. <?php
  2. $campos_datos = array("nombre" => "Hallking", "apellido" => "Quesadaa");
  3. $resultado = '';
  4. foreach ($campos_datos as $c => $v) {
  5.     $resultado .= ($resultado ? ', ' : '') . '"' . $c . '"= ' . $v;
  6. }
  7. echo $resultado;

o así si lo quieres entender mejor:

Código PHP:
Ver original
  1. <?php
  2. $campos_datos = array("nombre" => "Hallking", "apellido" => "Quesadaa");
  3. $resultado = '';
  4. foreach ($campos_datos as $c => $v) {
  5.     if ($resultado) {
  6.         $resultado .= ", '$c' = '$v'";
  7.     } else {
  8.         $resultado .= "'$c' = '$v'";
  9.     }
  10. }
  11. echo $resultado;

o así:

Código PHP:
Ver original
  1. <?php
  2. $campos_datos = array("nombre" => "Hallking", "apellido" => "Quesadaa");    
  3.  
  4. foreach ($campos_datos as $c => $v) {
  5.     $v = $v != end($campos_datos) ? "'$c' => '$v', " : "'$c' => '$v'";
  6.     echo $v;
  7. }

Todos hacen lo mismo. Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 26/01/2012 a las 12:41 Razón: Otro ejemplo
  #12 (permalink)  
Antiguo 26/01/2012, 16:29
 
Fecha de Ingreso: febrero-2009
Mensajes: 188
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: problemas con cadenas y bucles

Bueno le les agradezco a todos por su ayuda, así que le te mostrare el resultado de nuestro esfuerzo, estas son don funciones muy importante par el programado una inserta y la otra actualiza sin importa la tabla pues están pre diseñadas para cual quier tabla y esta bien comentada... solo les pido que donde pequen este código Hagan lo que yo en el primer comentario /* Ayuda vrindada por foro del web */..

<?php require_once("Conexion.php"); ?>
<?php
/* Ayuda vrindada por foro del web */

$table = "libreria"; //Aquí colocamos el nombre de la tabla con la que trabajaremos
$campos = array("name","las_name"); //Los campos de la tabla con la que trabajaremos
$datos = array("Hallking","Quesada"); //Los Valores a Insertar
$campos_datos = array("name" => "Pedro", "las_name" => "Tejada"); //Para Actualizar los campos usamos este tipo de array, especificando los campos y sus respectivos Valores
$checks = array("Id" => 1); //Este array tambien para actulizar pero este es se utliza despues del WHERE

//Esta function te permite insertar los datos
function INSERT_INTO($table, $campos, $datos)
{

//Estas varialbes son ublicatorias para los foreach compos y datos
/*****************/ $com = count($campos); /*********************/
/****************/ $dat = count($datos); /***********************/
/************************************************** **************/

//Parte de la cadena insert
$echo = "INSERT INTO `{$table}` ( ";

//Muestra los campos
foreach($campos as $Clave => $Valor)
{
$Valor = "`$Valor`";
$echo .= $Valor;
if ($Clave != $com-1)
{$echo .= ', ';}
}

//Parte de la cadena insert
$echo .= " ) VALUES ( ";

//Muestra los Values
foreach($datos as $Clave => $Valor)
{
$Valor = "'$Valor'";
$echo .= $Valor;
if ($Clave != $dat-1)
{ $echo .= ', '; }
}

//Parte de la cadena insert
$echo .= " )";

//Consutla Mysql
$consulta = mysql_query ("{$echo}");
}

//INSERT_INTO($table, $campos, $datos);

/************************************************** ************************************************** **************/

//Esta function te permite actualizar los datos
function UPDATE($table, $campos_datos, $checks)
{
//Muestra los campos y sus valores
foreach ($campos_datos as $c => $v)
{
$udate .= ($udate ? ', ' : '') . " `{$c}` = '{$v}' ";
}

//Muestra los campos y valores despues del WHERE
foreach ($checks as $c => $v)
{
$check .= ($check ? ', ' : '') . " `{$c}` = '{$v}' ";
}

//Este es el string de la consulta
$echo = "UPDATE `{$table}` SET {$udate} WHERE {$check} LIMIT 1";

//Consutla Mysql
$consulta = mysql_query ("{$echo}");
}

//Actuliza las tablas
//UPDATE($table, $campos_datos, $checks);
?>

Gracias por su ayuda...... Nota si no funciona es por que les aria falta la conexión y que las funciones están comentadas...

Etiquetas: bucles, cadenas
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:16.