Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Una Facilita!

Estas en el tema de Una Facilita! en el foro de PHP en Foros del Web. Una facilita... Necesito almacenar estos datos que tengo en un txt en una BD de MySQL, debo hacerlo usando PHP Esta es la data, son ...
  #1 (permalink)  
Antiguo 04/03/2013, 12:31
Avatar de thewayox  
Fecha de Ingreso: diciembre-2004
Ubicación: Guaro, Vzla
Mensajes: 189
Antigüedad: 19 años, 11 meses
Puntos: 3
Pregunta Una Facilita!

Una facilita...

Necesito almacenar estos datos que tengo en un txt en una BD de MySQL, debo hacerlo usando PHP


Esta es la data, son coordenadas geográficas

Código PHP:
$coordenadas='[25.774252, -80.190262],[18.466465, -66.118292],[32.321384, -64.75737],[25.774252, -80.190262]' 
Ahora bien, voy por aqui.

Lo primero que hago es eliminar los corchetes, lo hago asi:

Código PHP:
$coordenadas=str_replace('['''$coordenadas);
$coordenadas=str_replace(']'''$coordenadas); 
Luego, me queda esto...

Código PHP:
 $coordenadas='25.774252, -80.190262,18.466465, -66.118292,32.321384, -64.75737,25.774252, -80.190262' 
Hasta aquí... Mi pregunta es, como hago para almacenar cada coordenada $lat y $lon en la BD?Teniendo en cuenta que cada par es un par de coordenadas, o sea, el primero es $lat y el segundo es $lon y asi sucesivamente

Se que debo dividir el string tomando las comas como referencia, pero como hago eso?
__________________
EL PODER CORROMPE, EL PODER ABSOLUTO CORROMPE ABSOLUTO. EL CONOCIMIENTO ES PODER MAS NO ES SABIDURIA, MANEJALO SABIAMENTE O TE CORROMPE
  #2 (permalink)  
Antiguo 04/03/2013, 12:45
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Una Facilita!

Entiendo que lo mejor es dividiendo por segmentos, es decir primero lo divides que quede así
array('[...]', '[...]') y luego vas recorriendo verificando los números. Hay muchas formas de lograrlo, solo te doy la idea para que puedas lograrlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 04/03/2013, 12:56
Avatar de thewayox  
Fecha de Ingreso: diciembre-2004
Ubicación: Guaro, Vzla
Mensajes: 189
Antigüedad: 19 años, 11 meses
Puntos: 3
Respuesta: Una Facilita!

Gracias Abimaelrc, ciertamente creo que lo mejor es como dices por segmentos, lo que no se es como hacerlo, podrías ayudarme con ese ejemplo?
__________________
EL PODER CORROMPE, EL PODER ABSOLUTO CORROMPE ABSOLUTO. EL CONOCIMIENTO ES PODER MAS NO ES SABIDURIA, MANEJALO SABIAMENTE O TE CORROMPE
  #4 (permalink)  
Antiguo 04/03/2013, 13:04
Avatar de JorM  
Fecha de Ingreso: diciembre-2012
Ubicación: Argentina
Mensajes: 53
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Una Facilita!

Supongo que lo mejor que podes hacer una vez sacas los corchetes es meter todo en un array con la función "explode()" lo que te devolverá un array separado por el delimitador que le especifiques en este caso la "," y considerando que son pares. te quedara:

Primer Par
arr[0] lat
arr[1] long

Segundo Par
arr[2]
arr[3]

Tercer Par
arr[4]
arr[5]

Cuarto Par
arr[6]
arr[7]

es la idea. es lógico que esto se puede mejorar, pero espero que te ayude.
  #5 (permalink)  
Antiguo 04/03/2013, 13:08
Avatar de thewayox  
Fecha de Ingreso: diciembre-2004
Ubicación: Guaro, Vzla
Mensajes: 189
Antigüedad: 19 años, 11 meses
Puntos: 3
Respuesta: Una Facilita!

Interesante JorM, voy a hacer unas pruebas a ver como me va, eso era mas o menos lo que necesitaba, saber al menos cual es el nombre de la función a usar.

Vamos a ver y en un rato escribo de nuevo, de igual forma si alguien mas puede aportar con gusto será bien recibido!

Saludos!
__________________
EL PODER CORROMPE, EL PODER ABSOLUTO CORROMPE ABSOLUTO. EL CONOCIMIENTO ES PODER MAS NO ES SABIDURIA, MANEJALO SABIAMENTE O TE CORROMPE
  #6 (permalink)  
Antiguo 04/03/2013, 14:39
Avatar de thewayox  
Fecha de Ingreso: diciembre-2004
Ubicación: Guaro, Vzla
Mensajes: 189
Antigüedad: 19 años, 11 meses
Puntos: 3
Respuesta: Una Facilita!

Muy bien, gracias a todos por sus aportes, ya lo resolvi...

Para aquellos que les interese, aqui coloco el codigo completo
Código PHP:
$coordenadas"[25.774252, -80.190262],[18.466465, -66.118292],[32.321384, -64.75737],[25.774252, -80.190262]"

$coordenadas=str_replace('['''$coordenadas);
$coordenadas=str_replace(']'''$coordenadas);
$coordenadas=str_replace(' '''$coordenadas);

echo 
"Las Coordenadas van así:<br />$coordenadas<br />";
echo 
"Ahora las divido usando el explode()<br />";

$arregloCoord=explode(","$coordenadas);
var_dump($arregloCoord);

echo 
"<br />Funciona, ahora quiero saber cuantas claves tengo dentro del arreglo<br />";

$result count($arregloCoord);

echo 
"<br />Tengo $result claves ahora los meto en un for:<br />";

$result $result-2//Eliminé el ultimo par de coordenadas, pues es el mismo par inicial, no debería grabar ambos

for ($i 1$i <= $result$i=$i+2) {
    
//echo "$i<br>";
    
$lat $arregloCoord[$i-1];
    
$lon $arregloCoord[$i];
    echo 
"Mi Lat ahora es $lat y mi Lon es $lon<br />";
    
$inclusion="insert into poligono_comunidad values (null, '$id_comunidad', '$lat', '$lon', '$nombreusuario')";
    
$resultado=mysql_query($inclusion,$link); 
    if (
$resultado)
    {echo 
"<script language='JavaScript'>alert('Inclusion del Lat = $lat y Lon = $lon en la comunidad $id_comunidad se ha realizado exitosamente')</script>";}
    else
    {echo 
"<script language='JavaScript'>alert('No se incluyeron coordenadas, HUBO UN ERROR, verifique')</script>";}
    

Saludos!
__________________
EL PODER CORROMPE, EL PODER ABSOLUTO CORROMPE ABSOLUTO. EL CONOCIMIENTO ES PODER MAS NO ES SABIDURIA, MANEJALO SABIAMENTE O TE CORROMPE
  #7 (permalink)  
Antiguo 04/03/2013, 14:49
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Una Facilita!

Bueno para la búsqueda de lo que quieres es más fácil como te indiqué, si divides por [], algo así para que tengas una idea.
Código PHP:
Ver original
  1. <?php
  2.  
  3. $latLng     = "[25.774252, -80.190262],[18.466465, -66.118292],[32.321384, -64.75737],[25.774252, -80.190262]";
  4. $latLngList = array();
  5. if (preg_match_all('/\[.+?\]/', $latLng, $m) !== false) {
  6.     foreach ($m[0] as $v) {
  7.         $v = trim($v, '[]');
  8.         list($lat, $lng) = explode(',', $v);
  9.         /**
  10.          * Ya aquí puedes usar la base de datos para almacenarlo en vez de usar
  11.          * la variable.
  12.          */
  13.         $latLngList[] = array(
  14.             'lat' => trim($lat),
  15.             'lng' => trim($lng),
  16.         );
  17.     }
  18. }
  19. print_r($latLngList);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 04/03/2013, 14:54
Avatar de thewayox  
Fecha de Ingreso: diciembre-2004
Ubicación: Guaro, Vzla
Mensajes: 189
Antigüedad: 19 años, 11 meses
Puntos: 3
Respuesta: Una Facilita!

Gracias abimaelrc!

Ese codigo se ve muy bueno, pero la verdad aun no llego a (entiendo) ese nivel, pero lo voy a grabar para estudiarlo y trabajar en el en pro de mejorar lo que hice.

Muy agradecido por tu aporte.

Saludos!
__________________
EL PODER CORROMPE, EL PODER ABSOLUTO CORROMPE ABSOLUTO. EL CONOCIMIENTO ES PODER MAS NO ES SABIDURIA, MANEJALO SABIAMENTE O TE CORROMPE

Etiquetas: mysql
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 21:51.