Foros del Web » Programando para Internet » PHP »

Cambiar un array por una consulta a la BDD V2

Estas en el tema de Cambiar un array por una consulta a la BDD V2 en el foro de PHP en Foros del Web. Hola gente! Tengo este código: Código PHP: $countries [] =  "Afghanistan" ; $countries [] =  "Albania" ; $countries [] =  "Algeria" ; $countries [] =  "Azerbaijan" ; $countries [] =  ...
  #1 (permalink)  
Antiguo 18/09/2008, 11:24
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años, 6 meses
Puntos: 1
Cambiar un array por una consulta a la BDD V2

Hola gente! Tengo este código:
Código PHP:
$countries[] = "Afghanistan";
$countries[] = "Albania";
$countries[] = "Algeria";
$countries[] = "Azerbaijan";
$countries[] = "Bahrain";
$countries[] = "Barbados ";
$countries[] = "Belgium";
...

$query=$_GET["query"];

if (
strlen($query) > 0) {
    
$suggestions="";
    for(
$i=0$i<count($countries); $i++) {
    
        if (
strtolower($query)==strtolower(substr($countries[$i],0,strlen($query)))) {
            if (
$suggestions=="") {
                
$suggestions=$countries[$i];
            } else {
                
$suggestions=$suggestions." , ".$countries[$i];
            }
        }
    }
}

echo 
$suggestions
Y lo que yo hice es esto para reemplazar el array por una consulta a la base d datos:

Código PHP:
<?php

// Conexión a la base de datos y seleccion de registros
   
include('con.php');

// conexion a la base
    
$conexion mysql_connect($host_db$usuario_db$pass_db) or die ("no se ha podido conectar a la BD");
    
mysql_select_db($base_db$conexion) or die ("no se ha podido seleccionar la BD");

    
// Ejecuto la consulta
    
$sql "SELECT nombre FROM paises";
    
$consulta mysql_query($sql$conexion);
    
$row mysql_fetch_array($consulta);

$nombre $row['nombre'];

$query=$_GET["query"];

if (
strlen($query) > 0) {
    
$suggestions="";
    for(
$i=0$i<count($nombre); $i++) {
    
        if (
strtolower($query)==strtolower(substr($nombre[$i],0,strlen($query)))) {
            if (
$suggestions=="") {
                
$suggestions=$nombre[$i];
            } else {
                
$suggestions=$suggestions." , ".$nombre[$i];
            }
        }
    }
}

echo 
$suggestions;
?>
Hice esto pero no funciona. Los mismos nombres los tengo en una tabla en mi base de datos. Lo que quisiera saber es cómo reemplazo esto para que funcione de la misma forma pero haciendo una consulta a la base de datos. ¿Se puede modificar?

Muchas gracias y saludos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #2 (permalink)  
Antiguo 18/09/2008, 11:34
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Cambiar un array por una consulta a la BDD V2

Hola marx_pola,

trata de hacer tus consultas de la siguiente manera para ver si se esta ejecutando la consulta:


Código:
$sql = "SELECT nombre FROM paises"; 
$consulta = mysql_query($sql, $conexion) or die('Consulta fallida: ' . mysql_error()); 
$row = mysql_fetch_array($consulta); 

print_r($row);
Saludos!!!
__________________
"Eres grande por que caminas entre gigantes"
  #3 (permalink)  
Antiguo 18/09/2008, 11:40
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años, 6 meses
Puntos: 1
Respuesta: Cambiar un array por una consulta a la BDD V2

Hola ferbux: gracias por responderme tan pronto ;). Lo probé y me apareció esto:

Array ( [0] => Afghanistan [nombre] => Afghanistan )

Es el registro nro 1. ¿Qué puede ser que esté haciendo mal?

Gracias.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #4 (permalink)  
Antiguo 18/09/2008, 11:46
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Cambiar un array por una consulta a la BDD V2

pruebalo asi:


Código:
<?php 

// Conexión a la base de datos y seleccion de registros 
   include('con.php'); 

// conexion a la base 
    $conexion = mysql_connect($host_db, $usuario_db, $pass_db) or die ("no se ha podido conectar a la BD"); 
    mysql_select_db($base_db, $conexion) or die ("no se ha podido seleccionar la BD"); 

    // Ejecuto la consulta 
    $sql = "SELECT nombre FROM paises"; 
    $consulta = mysql_query($sql, $conexion)  or die('Consulta fallida: ' . mysql_error()); 
     

	
while($row = mysql_fetch_array($consulta)){	
	
$nombre = $row['nombre']; 




$query=$_GET["query"]; 

if (strlen($query) > 0) { 
    $suggestions=""; 
    for($i=0; $i<count($nombre); $i++) { 
     
        if (strtolower($query)==strtolower(substr($nombre[$i],0,strlen($query)))) { 
            if ($suggestions=="") { 
                $suggestions=$nombre[$i]; 
            } else { 
                $suggestions=$suggestions." , ".$nombre[$i]; 
            } 
        } 
    } 
  } 
}
echo $suggestions; 
?>
__________________
"Eres grande por que caminas entre gigantes"
  #5 (permalink)  
Antiguo 18/09/2008, 12:08
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años, 6 meses
Puntos: 1
Respuesta: Cambiar un array por una consulta a la BDD V2

ferbux: no me tiró error pero no me trae los datos de la bdd... no sé por qué.

Si quieres ver de donde saqué la forma que quiero modificar, te dejo el link. Me parece bastante interesante poder encontrarle la forma de hacerlo de la manera q estoy intentándolo ya que de los demos que bajé de internet, no pude hacer funcionar ninguno que relacione un autosuggest+buscador+consulta a bdd.

http://www.webdevlounge.com/examples/Suggest/index.php

Creo que nos está faltando algun detalle que hasta ahora no pude encontrar y desde ya, agradezco mucho tu tiempo para ayudarme.

Gracias por todo. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #6 (permalink)  
Antiguo 18/09/2008, 12:43
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Cambiar un array por una consulta a la BDD V2

que es lo que recojes aki:


$query=$_GET["query"];

Imprimelo para ver si se cumple el if.
__________________
"Eres grande por que caminas entre gigantes"
  #7 (permalink)  
Antiguo 18/09/2008, 13:49
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años, 6 meses
Puntos: 1
Respuesta: Cambiar un array por una consulta a la BDD V2

ferbux: El tema es así:

Tengo un form:
Código HTML:
<form action="search4.php" method="post">
	Buscar: <input name="palabra" type="text" id="inputtext" onKeyUp="suggest(this.value)">
		<input type="submit" name="buscador" value="Buscar">
<div id="suggestions" style="display: block"> </div>

</form> 

El onKeyUp="suggest(this.value)" llama a una función suggest que es así:

Código PHP:
function suggest(str) {

    if (
str.length==0) { 
        
document.getElementById("suggestions").innerHTML="";
        return;
    }
    
    
xmlHttp=GetXmlHttpObject();
    if (
xmlHttp==null) {
        
alert ("Browser does not support HTTP Request");
        return;
    } 
    
    var 
url="suggest.php";
    
url=url+"?query="+str;     **********
    
url=url+"&sid="+Math.random();
    
xmlHttp.onreadystatechange=stateChanged;
    
xmlHttp.open("GET",url,true);
    
xmlHttp.send(null);

Y var url="suggest.php"; es la que toma la consulta que me estabas ayudando y lo que me preguntaste, realmente lo único que encontré es lo que aparece arriba q marqué con ******.

La verdad, esto funciona pero con la forma en que lo expliqué al principio. Haciendo la consulta a la base de datos... nop.

Si tienes alguna idea, porfa, se agradecerá mucho me puedas orientar y desde ya, mil gracias por el tiempo q te has tomado hasta ahora.

Saludos. Marx,.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #8 (permalink)  
Antiguo 18/09/2008, 14:12
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Cambiar un array por una consulta a la BDD V2

Marx_pola,

En internet explorer me marca error de pagina pero en firefox si despliega en cuadro aunque todavia me falta poder ver los datos, de cualquier forma seguiré checandolo.
__________________
"Eres grande por que caminas entre gigantes"
  #9 (permalink)  
Antiguo 18/09/2008, 14:23
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años, 6 meses
Puntos: 1
Respuesta: Cambiar un array por una consulta a la BDD V2

ferbux: Me pasó lo mismo pero no me marca ningun error. Capaz en IE te tira error porque le falta el archivo ie.css. Te lo paso:

ie.css
#suggestions ul {
margin-top: 0px;
margin-left: 0px;
}

.submit {
width: 100px;
font-family: verdana;
font-size: 15px;
}

Yo tambien seguiré probando. Cualquier cosa, nos comunicamos.
Gracias por todo. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
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 14:12.