Ver Mensaje Individual
  #9 (permalink)  
Antiguo 02/12/2011, 15:29
gvegaingsistemas
 
Fecha de Ingreso: noviembre-2011
Ubicación: Lima
Mensajes: 5
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Algoritmo de Búsqueda Profunda.

Gracias ahí les dejo mi código... dígame si esta bien...
conectar.php
Código PHP:
Ver original
  1. function coneccion()
  2. {
  3.     $host = "localhost";
  4.     $username = "root";
  5.     $password = "123456";
  6.     $bd="demo";
  7.     $connection = mysql_connect($host,$username,$password);
  8.         $basedatos = mysql_select_db($bd,$connection);
  9.        
  10.     if (!$connection)
  11.     {          
  12.         return "FRACASO";
  13.     }
  14.    
  15.     if (!$basedatos)
  16.     {
  17.                 return "NO SE PUDO CoNECTAR A LA BASE DE DATOS";
  18.     }
  19.                
  20.     if ($connection && $basedatos)
  21.     {          
  22.         return $connection;
  23.     }
  24. }

funcion.php
Código PHP:
Ver original
  1. function distribuir_direccion($cadena,$cn)
  2. {
  3.  
  4. $data = explode(' ',$cadena);
  5. //echo count($data);
  6. //if(strtoupper($data[0]) == 'AV.')
  7. $avenida='';
  8. $p=0;
  9. $m=0;
  10. $cantidad=0;
  11. for($i=1;$i<count($data);$i++)
  12. {
  13.             if(verificar(strtoupper($data[$i]),$cn))
  14.             {
  15.             $array = explode(' ',trim($avenida));
  16.             $cantidad += count($array) + 1;
  17.            
  18.             $conta[$p] = $data[$m].' '.$avenida;
  19.             $avenida='';
  20.             $p++;
  21.             $m = $cantidad;
  22.             }
  23.             else
  24.             {
  25.             $avenida.=$data[$i].' ';
  26.             }
  27.  
  28. }
  29.  
  30. $conta[count($conta)] = $data[$m].' '.$avenida;//ultimo trazo de la cadena principal
  31.  
  32. //echo count($conta);
  33.  
  34. //-------------------------------------------------INSERTAMOS CADA CADENA EN SU TABLA RESPECTIVA
  35.  
  36. for($n=0;$n<count($conta);$n++)
  37. {
  38. $descompone = explode(' ',$conta[$n],2);// descompone la direccion en cabecera(AV, MZ, JR) y en el cuerpo (nombre)
  39.  
  40.             //condiciones para insertar en las tablas respectivas
  41.             if(strtoupper($descompone[0])=='Av.')
  42.             {
  43.             $insert = "insert into avenidas values(0,'$descompone[1]')";
  44.             mysql_query($insert,$cn);
  45.             }
  46.            
  47.             if(strtoupper($descompone[0])=='Mz.')
  48.             {
  49.             $insert = "insert into manzanas values(0,'$descompone[1]')";
  50.             mysql_query($insert,$cn);
  51.             }
  52.            
  53.             if(strtoupper($descompone[0])=='Pje.')
  54.             {
  55.             $insert = "insert into pasajes values(0,'$descompone[1]')";
  56.             mysql_query($insert,$cn);
  57.             }
  58.            
  59.             if(strtoupper($descompone[0])=='Jr.')
  60.             {
  61.             $insert = "insert into jiron values(0,'$descompone[1]')";
  62.             mysql_query($insert,$cn);
  63.             }
  64.            
  65.             if(strtoupper($descompone[0])=='Ca.')
  66.             {
  67.             $insert = "insert into calle values(0,'$descompone[1]')";
  68.             mysql_query($insert,$cn);
  69.             }
  70.  
  71. }
  72.  
  73. }
  74.  
  75.  
  76. function verificar($dato,$conexion)
  77. {
  78. $sql = "select codigo from calles_avenidas";
  79. $result = mysql_query($sql,$conexion);
  80. $contador=0;
  81. while($fila = mysql_fetch_object($result))
  82. {
  83.  if($dato==$fila->codigo)
  84.  {$contador++;}
  85. }
  86.  
  87. if($contador==0){return false;}
  88. else {return true;}
  89.  
  90. }

esta es para llamar a la función anterior...
cadenas.php
Código PHP:
Ver original
  1. include "mysql_coneccion.inc";
  2. include "funcion.php";
  3.  
  4. $cn = coneccion();
  5.  
  6. //$cadena  = "Av. Buenos aires N. 289 Mz. C Lt. 29 Dst. SJL";
  7. $sql = "SELECT * FROM nombrevia";
  8. $conc = mysql_query($sql,$cn);
  9.  
  10. while($con = mysql_fetch_assoc($conc))
  11. {
  12.   $cadena = $con['descripcion'].'<br>';
  13.  
  14. distribuir_direccion($cadena,$cn);//la cadena y la coneccion
  15.  echo $cadena;
  16.  
  17. }
antes se crean una base de datos ok...eso es facil.

si tienen una mejor me comparten ok...estamos en el foro..gracias

Saludos!!!