elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  De PHP a MySQL (con un foreach)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: De PHP a MySQL (con un foreach)  (Leído 1,709 veces)
SpeedyFrost

Desconectado Desconectado

Mensajes: 10


Ver Perfil
De PHP a MySQL (con un foreach)
« en: 11 Enero 2019, 13:14 pm »

Buenos días,

Necesito ayuda con una cosa. Estoy haciendo un archivo PHP que recibe un json por _POST, lo convierte en string y lo inserta en una tabla que hice en una BBDD Mysql. He utilizado un foreach para que recorra el string y añada cada elemento en su columna establecida.
El caso es que para separar los elemento de $value he utilizado una coma que se añade al final de cada uno, incluso del último. Y esto me da error luego.

¿¿Como puedo hacer que la coma no se añada al final del último elemento de la consulta?? Es lo que me da error al ejecutarlo.

Adjunto mi código.

Código
  1. <?php
  2.  
  3. include ('Tools.php');
  4. $conexion=connect();
  5.  
  6. $parametros = '{"status":"PBC-IVR0000","signature":"6777F9E540A0519A80388F","count":1400,"locator":"1547116640","orderId":"37852","tpv_p":"141","tpv_resp":"2452","id_tr":"1233214","id_t_pbc":"15470.3221"}';
  7.  
  8. $obj=json_decode($parametros);
  9.  
  10. $sql = "INSERT INTO DC_paybycall_status set ";
  11.  
  12. foreach ($obj as $key => $value) {
  13.  
  14. if ($key=='locator')$key='localizador';
  15.  
  16. $sql .= $key . " = '" . $value . "' , ";       <--Esta es la coma
  17.  
  18. }
  19.  
  20. echo $sql;
  21.  
  22. mysqli_query($conexion,$sql);
  23. echo("Error description: " . mysqli_error($conexion));
  24.  
  25. mysql_close($conexion);
  26.  
  27. ?>


Gracias mil!!!!


Mod: Obligatorio el uso de etiquetas GeSHi.
Mod: Los temas sobre PHP van al subforo de PHP.


« Última modificación: 15 Enero 2019, 10:15 am por #!drvy » En línea

chatiel

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: De PHP a MySQL (con un foreach)
« Respuesta #1 en: 12 Enero 2019, 06:57 am »

Hola SpeedyFrost

Te juro que no comprendo porque tienes la linea:
Código
  1. $parametros = '{"status":"PBC-IVR0000","signature":"6777F9E540A0519A80388F","count":1400,"locator":"1547116640","orderId":"37852","tpv_p":"141","tpv_resp":"2452","id_tr":"1233214","id_t_pbc":"15470.3221"}';
  2.  
Eso se puede leer con cURL en php.
Tienes la URL desde donde puedes extraer todos esos datos?

Te doy un ejemplo:

Código
  1. //Funcion para crear conexion CURL
  2.  
  3. function curl($url) {
  4. $ch = curl_init($url); // Inicia sesión cURL
  5. curl_setopt($ch, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Configura cURL para devolver el resultado como cadena
  7. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Configura cURL para que no verifique el peer del certificado dado que nuestra URL utiliza el protocolo HTTPS
  8. $info = curl_exec($ch); // Establece una sesión cURL y asigna la información a la variable $info
  9. curl_close($ch); // Cierra sesión cURL
  10. return $info; // Devuelve la información de la función
  11. }
  12.  
  13. $url = "https://api.mercadolibre.com/items/MLM576593427";
  14.    $sitioweb = curl($url);
  15. $info = json_decode($sitioweb);
  16. //imprimir dato
  17. echo $info->id."\n";
  18. echo $info->title."\n";
  19. echo $info->listing_type_id."\n";
  20.  

Te regalo horas y horas de diversión que tuve hace unos días.

De esta forma vas a poder leer los datos limpiamente desde cualquier url con json.

Espero que te sirva bro.
bytes :)


« Última modificación: 15 Enero 2019, 10:15 am por #!drvy » En línea

SpeedyFrost

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: De PHP a MySQL (con un foreach)
« Respuesta #2 en: 14 Enero 2019, 09:31 am »

La línea esa es el ejemplo que me va a llegar. Este php se agregará a otro sitio. Lo importante no es ese JSON (Aunque te agradezco mucho la molestia de ponerme el ejemplo del Curl).. Lo que yo necesito es saber como eliminar la última coma que tengo en el string. Estuve investigando y al parecer con la función ""rtrim() o trim()"" podría conseguirlo. Pero la utilizo en el ECHO y no funciona... Alguna idea de porque?
« Última modificación: 15 Enero 2019, 10:15 am por #!drvy » En línea

SpeedyFrost

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: De PHP a MySQL (con un foreach)
« Respuesta #3 en: 14 Enero 2019, 10:06 am »

La solución estaba en especificar el rtrim() con la cadena exacta.


Código
  1. echo rtrim($sql, ", ");

Espero que sirva para futuras consultas!

Un saludo!


Mod: Obligatorio el uso de etiquetas GeSHi.
« Última modificación: 15 Enero 2019, 10:16 am por #!drvy » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Ayuda]Ciclo Foreach PHP
PHP
rolly21102 4 4,803 Último mensaje 16 Junio 2010, 03:05 am
por bomba1990
[Resuelto] Jquery y foreach
Desarrollo Web
dimitrix 3 2,534 Último mensaje 6 Febrero 2015, 01:08 am
por dimitrix
optimizar codigo foreach
.NET (C#, VB.NET, ASP)
aspiazu 6 3,478 Último mensaje 8 Abril 2017, 19:45 pm
por aspiazu
Problema en PHP, Foreach (Numeros del 1 al 100)
PHP
Ali Baba 4 7,294 Último mensaje 13 Junio 2017, 06:17 am
por #!drvy
Foreach en SpeechRecognizer
.NET (C#, VB.NET, ASP)
rigorvzla 2 2,520 Último mensaje 18 Febrero 2018, 22:57 pm
por rigorvzla
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines