Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema Con Consulta A MySql En La Misma Pagina

Estas en el tema de Problema Con Consulta A MySql En La Misma Pagina en el foro de Frameworks JS en Foros del Web. Saludos A Todos, He creado un formulario con el cual intento realizar una busqueda especifica de un campo en la base de datos, me has ...
  #1 (permalink)  
Antiguo 20/08/2009, 07:22
 
Fecha de Ingreso: julio-2009
Ubicación: Bogota
Mensajes: 37
Antigüedad: 14 años, 9 meses
Puntos: 0
Exclamación Problema Con Consulta A MySql En La Misma Pagina

Saludos A Todos,

He creado un formulario con el cual intento realizar una busqueda especifica de un campo en la base de datos, me has pedido que los resultados deben mostrarse en la misma pagina, para esto utilice ajax, me funciona sin problemas excepto por que me trae todos los campos de la consulta y no por el campo que estoy digitando.

Sera que el problema es el codigo ajax?, sera que estoy tomando mal la variable para su consulta? o no es posible realizar una consulta de este tipo.

Agradezco de Antemano su ayuda.

Codigo Ajax
Código PHP:
function objetoAjax(){
    var 
xmlhttp=false;
    try {
        
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (
e) {
                try {
                    
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (
E) {
                        
xmlhttp false;
                }        
        }
        
         if (!
xmlhttp && typeof XMLHttpRequest!='undefined') {
              
xmlhttp = new XMLHttpRequest(); 
        }
        return 
xmlhttp;
}

function 
MostrarConsulta(datos){
    
divResultado document.getElementById('resultado');
     
ajax=objetoAjax();
     
ajax.open("GET"datos);
     
ajax.onreadystatechange=function() {
        if (
ajax.readyState==4) {
              
divResultado.innerHTML ajax.responseText
        
}
    }
    
ajax.send(null)

Codigo Formulario
Código PHP:
<form action="Prueba.php" method="post" name="form1" id="form1">
  <
table align="center">
    <
tr valign="baseline">
      <
td nowrap="nowrap" align="right"><font face="Verdana, Geneva, sans-serif">Fecha:</font></td>
      <
td><input type="text" name="FECHA" value="" size="32" id="dateArrival" onclick="popUpCalendar(this, form1.dateArrival, 'yyyy-mm-dd');"/></td>
    </
tr>
    <
tr valign="baseline">
      <
td nowrap="nowrap" align="right"><font face="Verdana, Geneva, sans-serif">Sabor:</font></td>
      <
td><input type="text" name="SABOR" value="" size="32" id="SABOR" /></td>
    </
tr>
    <
tr valign="baseline">
      <
td nowrap="nowrap" align="right"><font face="Verdana, Geneva, sans-serif">Lote:</font></td>
      <
td><input type="text" name="LOTE" value="" size="32" onfocus="MostrarConsulta('ConSabor.php'); return false" /></td>
    </
tr>
    <
tr valign="baseline">
      <
td nowrap="nowrap" align="center" colspan="2"><div id="resultado" align="center"></div></td>
    </
tr>
    <
tr valign="baseline">
      <
td nowrap="nowrap" align="right">&nbsp;</td>
      <
td>&nbsp;</td>
    </
tr>
    <
tr valign="baseline">
      <
td nowrap="nowrap" align="right">&nbsp;</td>
      <
td>&nbsp;</td>
    </
tr>
    <
tr valign="baseline">
      <
td nowrap="nowrap" align="center" colspan="2">&nbsp;</td>
    </
tr>
    <
tr valign="baseline">
      <
td nowrap="nowrap" align="center" colspan="2"><input type="button" value="Insertar Registro" onclick="valida_envia()" />
      <
input name="Restablecer" type="reset" id="button" value="Limpiar Formulario" onclick="Actualiza()" /></td>
    </
tr>
  </
table>
  <
input type="hidden" name="MM_insert" value="form1" />
</
form
Codigo de Consulta
Código PHP:
<?php
//Configuracion de la conexion a base de datos
$bd_host "localhost"
$bd_usuario "admin"
$bd_password "admin"
$bd_base "hsm";

$con mysql_connect($bd_host$bd_usuario$bd_password);

mysql_select_db($bd_base$con); 

$SABOR $_POST'SABOR' ]; 

$consulta mysql_query("SELECT * FROM SABORES WHERE SABOR LIKE '%".$SABOR."%' ",$con );
echo 
'<table border="1" bordercolor"gray" align="center">
        <tr>
        <td align="center" width="20"><font face="Verdana, Geneva, sans-serif" size"-1">Accion1</td>
        <td align="center" width="20"><font face="Verdana, Geneva, sans-serif" size"-1">Accion2</td>
        <td align="center" width="200"><font face="Verdana, Geneva, sans-serif" size"-1">IDSabor</td>
        <td align="center" width="200"><font face="Verdana, Geneva, sans-serif" size"-1">Sabor</td>
        </tr>
        </table>'
;
$encontrados mysql_num_rows($consulta);
if(
$encontrados 0){ 
    while(
$row mysql_fetch_array($consulta)){  
        echo   
        
'
        <table align="center" border="1" bordercolor"gray">
            <tr>
                <td align="center" width="20"><font face="Verdana, Geneva, sans-serif" size"-1"><a href="FormActSabores.php?IDSABOR='
.$row['IDSABOR'].'">Editar</a></font></td> 
                <td align="center" width="20"><font face="Verdana, Geneva, sans-serif" size"-1"><a href="FormBorraSabores.php?IDSABOR='
.$row['IDSABOR'].'">Borrar</a></font></td>
                <td align="center" width="200"><font face="Verdana, Geneva, sans-serif" size"-1">'
.$row['IDSABOR'].'</font></td>
                <td align="center" width="200"><font face="Verdana, Geneva, sans-serif" size"-1">'
.$row['SABOR'].'</font></td>
            </tr>    
        </table>
        
        '
;    
    } 
}else{ 
    echo 
'
    <br></br>
    <p class="Titulo" align="center"><font face="Verdana, Geneva, sans-serif" size="4"><b>No Se Ha Encontrado Ningun Dato Que         Corresponda A Su Consulta</b></font></p>
 '

}  
?>
  #2 (permalink)  
Antiguo 20/08/2009, 08:08
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Problema Con Consulta A MySql En La Misma Pagina

si te das cuenta en tu error esta utilizando GET en el Ajax en vez de POST
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 20/08/2009, 08:12
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema Con Consulta A MySql En La Misma Pagina

Por lo que vi en tu script, no encuentro cuando le pasas exacto el valor de sabor en tu ajax a la consulta. El parámetro datos de MostrarConsulta lleva la url y no un parametro con el sabor.

Yo probaría cambiar la función mostrar consulta asi:

Código PHP:
function MostrarConsulta(datos){ 
    
divResultado document.getElementById('resultado'); 
    var 
sabor document.getElementById("SABOR").value;
     
ajax=objetoAjax(); 
     
ajax.open("GET"datos '?sabor=' escape(sabor)); 
     
ajax.onreadystatechange=function() { 
        if (
ajax.readyState==4) { 
              
divResultado.innerHTML ajax.responseText 
        

    } 
    
ajax.send(null

Y tambien cambiaria $_POST a $_GET en el php para que lea el parámetro.

Ademas por seguridad, en el php no uses directo la variable $SABOR en la query, hacele mysql_real_escape_string($SABOR).

Saludos.
__________________
-ronnieb

WebTools
  #4 (permalink)  
Antiguo 20/08/2009, 20:53
 
Fecha de Ingreso: julio-2009
Ubicación: Bogota
Mensajes: 37
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Problema Con Consulta A MySql En La Misma Pagina

Saludos ronnieb

Gracias Por Tu Información, realice las modificaciones que me sugeriste pero sigo teniendo el resultado de toda la consulta y no una consulta de un campo especificamente, te agradeceria mucho si tienes una nueva idea para solucionar esto.
  #5 (permalink)  
Antiguo 20/08/2009, 21:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema Con Consulta A MySql En La Misma Pagina

Tema trasladado desde PHP
  #6 (permalink)  
Antiguo 21/08/2009, 06:22
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 86
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Problema Con Consulta A MySql En La Misma Pagina

Podrias postear como te quedó el código después de las modificaciones? Asi lo miro de nuevo? Lo que te está pasando me sugiere que el php llamado por el Ajax no recibe nada en la variable Sabor. Algo que acabo de notar es que en MostrarConsulta la variable "sabor" se pasa en minúsculas, y en el Php la toma en mayúsculas. Por favor cambia en el Php para que lea
Código PHP:
$SABOR mysql_real_escape_string($_GET['sabor']) 
Quizás esto lo resuelva. Si no se resuelve, prueba poner el código aquí otra vez así le doy una mirada.

Saludos.
__________________
-ronnieb

WebTools
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 04:13.