Foros del Web » Programando para Internet » PHP »

Problemas con una consulta con mysql

Estas en el tema de Problemas con una consulta con mysql en el foro de PHP en Foros del Web. Bueno antes que nada agradecer de antemano a los que me pueden dar una orientacion ya que soy nuevo en esto del php. El problema ...
  #1 (permalink)  
Antiguo 20/05/2010, 15:49
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Problemas con una consulta con mysql

Bueno antes que nada agradecer de antemano a los que me pueden dar una orientacion ya que soy nuevo en esto del php.

El problema va asi:

Cree una pagina donde en un formulario pongo un campo buscar (un correo electronico almacenado en una bd mysql)

El problema va en la segunda pagina donde recibe los datos del form


aca les dejo el codigo de la segunda pagina
Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<?php
include("conex.php");
$link=Conectarse();
$busqueda=$_POST['buscar'];
$resul=mysql_query("SELECT * FROM correos WHERE direccion=\'busqueda\'");
if ($resul=="")
{
echo 'no se encontro ningun dato';
echo $resul;
}
else
{
echo $resul;
}
?>
</body>
</html>
Mi problema es que la consulta me da error, como si no estuviera cumpliedo bien el sintaxis, que es lo que estoy haciendo mal?

Un dato mas si esta funcionado mi formulario porque cuando pongo que muestre la variable $busqueda es lo que yo puse en el form.
  #2 (permalink)  
Antiguo 20/05/2010, 16:04
 
Fecha de Ingreso: septiembre-2008
Mensajes: 136
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Problemas con una consulta con mysql

yo lo haria asi:

Código PHP:

$busqueda
=$_POST['buscar'];
$query="SELECT campo1,campo2 FROM correos WHERE direccion=$busqueda";
$mysq_result=mysql_query($query,$mysql_link);
$row=mysql_num_row($mysq_result);
$datos=mysql_fetch_row($mysq_result);

if (
$row=="")
{
echo 
'no se encontro ningun dato';

}
else
{
echo 
$datos[0];
echo 
$datos[1];

  #3 (permalink)  
Antiguo 20/05/2010, 16:13
fiu
 
Fecha de Ingreso: diciembre-2006
Ubicación: Barcelona
Mensajes: 128
Antigüedad: 17 años, 11 meses
Puntos: 8
Respuesta: Problemas con una consulta con mysql

la consulta esta mal, debes poner $ en la variable si usas comillas dobles.
  #4 (permalink)  
Antiguo 20/05/2010, 16:55
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 19 años, 5 meses
Puntos: 23
Respuesta: Problemas con una consulta con mysql

Hola,

En el select yo agregaría otro campo más

Código:
SELECT campo1,campo2,direccion
Y en direccion lo pondría con las comillas simples:
Código:
direccion='.$busqueda.';
Saludos.
__________________
Freelance - Aplicaciones Web
  #5 (permalink)  
Antiguo 20/05/2010, 17:05
fiu
 
Fecha de Ingreso: diciembre-2006
Ubicación: Barcelona
Mensajes: 128
Antigüedad: 17 años, 11 meses
Puntos: 8
Respuesta: Problemas con una consulta con mysql

Cita:
Y en direccion lo pondría con las comillas simples:
Código:

direccion='.$busqueda.';
eso le fallará porque has cerrado la consulta para introducir php, pero estas usando comillas simples cuando él empezó con comillas dobles.
seria:
direccion=".$busqueda.";
pero en textos entre comillas dobles no hace falta, php leerá dentro de las comillas por si hay variables.
  #6 (permalink)  
Antiguo 20/05/2010, 18:22
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 19 años, 5 meses
Puntos: 23
Respuesta: Problemas con una consulta con mysql

Si por supuesto que php directamente las lee, pero es mejor hacerlo más prolijo.
Lo de las comillas lo ví al enviarlo, pero no hice tiempo de editarlo porque recién acabo de volver.

Saludos.
__________________
Freelance - Aplicaciones Web
  #7 (permalink)  
Antiguo 20/05/2010, 22:17
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 11 meses
Puntos: 89
Respuesta: Problemas con una consulta con mysql

1.- El nombre de la función es : mysql_num_rows, no mysql_num_row.

2.- Los valores devueltos por esta función son : El número obtenido, o falso en caso de error. Así que estaría mal tu if a $row.

Un consejo : Mete la función mysql_fetch_row dentro de la condición donde mysql_num_rows sea mayor a 0. Así te evitas obtener datos no existentes.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #8 (permalink)  
Antiguo 20/05/2010, 22:29
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Problemas con una consulta con mysql

Primeramente muchas gracias a todos, aunque la verdad sigo sin lograr una consulta exitosa ya que me sale todo momento el mensaje "no se encontro ningun dato", lo que significaria que mi variable $resul se esta quedando vacia o no asimila ningun dato despues de hacer la consulta, he intentado de las siguientes maneras:
Código PHP:

$resul
=mysql_query("SELECT * FROM correos WHERE direccion=$busqueda");
$resul=mysql_query("SELECT * FROM correos WHERE direccion='.$busqueda'");
$resul=mysql_query("SELECT * FROM correos WHERE direccion='.$busqueda.'");
$resul=mysql_query("SELECT * FROM correos WHERE direccion='$busqueda'"); 
alguien porfavor ilumineme como es este quilombo con las famosas comillas para que pueda leer la variable que tiene el criterio que tiene, yo supugo que ahi esta el problema.
  #9 (permalink)  
Antiguo 20/05/2010, 22:59
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 11 meses
Puntos: 89
Respuesta: Problemas con una consulta con mysql

¿Cambiaste mysql_num_row por mysql_num_rows?
¿Cambiaste el if($row == "") por if($row==0)?
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #10 (permalink)  
Antiguo 21/05/2010, 10:09
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Problemas con una consulta con mysql

Respondiendo mi codigo quedo asi:

Código PHP:
$busqueda=$_POST['buscar'];
$query="SELECT id, direccion FROM correos WHERE direccion=$busqueda";
$mysq_result=mysql_query($query,$mysql_link);
$row=mysql_num_rows($mysq_result);
$datos=mysql_fetch_row($mysq_result);

if (
$row==0)
{
echo 
'no se encontro ningun dato';

}
else
{
echo 
$datos[0];
echo 
$datos[1];

Y como les dije sigue apareciendo el no se econtro dato, sera que estoy usando bien las comillas?

Grax por la ayuda
  #11 (permalink)  
Antiguo 21/05/2010, 10:34
 
Fecha de Ingreso: septiembre-2008
Mensajes: 136
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Problemas con una consulta con mysql

Cita:
Iniciado por Chris128 Ver Mensaje
Respondiendo mi codigo quedo asi:

Código PHP:
$busqueda=$_POST['buscar'];
$query="SELECT id, direccion FROM correos WHERE direccion=$busqueda";
$mysq_result=mysql_query($query,$mysql_link);
$row=mysql_num_rows($mysq_result);
$datos=mysql_fetch_row($mysq_result);

if (
$row==0)
{
echo 
'no se encontro ningun dato';

}
else
{
echo 
$datos[0];
echo 
$datos[1];

Y como les dije sigue apareciendo el no se econtro dato, sera que estoy usando bien las comillas?

Grax por la ayuda
Muestranos tu conexion a la base de datos (conex.php), por hay es donde esta el problema.


te sugiero la conexion asi:
Código PHP:
$bd='xxx';
$us='xxx';
$pa='xxx';
$mysql_linkmysql_connect ("localhost",$us,$pa);
mysql_select_db($bd$mysql_link); 

y solo queda incluirlo en tu script asi:

Código PHP:
include('./conex.php'); 
Posdata: No se te olvide cambiar los valores de las variables de conexion por las
correspondientes.



Suerte
  #12 (permalink)  
Antiguo 21/05/2010, 14:32
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 19 años, 5 meses
Puntos: 23
Respuesta: Problemas con una consulta con mysql

Hola,

Yo lo haria de esta forma. (con PHP 5)

Código PHP:
<?php
$busqueda
=$_POST['buscar'];
$query="SELECT id, direccion FROM correos WHERE direccion='".$busqueda."'";
$mysq_result=mysql_query($query);
$row=mysql_num_rows($mysq_result);
$datos=mysql_fetch_array($mysq_result);

if (
$row==0)
{
echo 
'no se encontro ningun dato';

}
else
{
echo 
$datos[0];
echo 
$datos[1];
}  
?>
Lo que hice fue cambiarte el mysql_fetch_row por mysql_fetch_array, y tambien fue quitarte el segundo parametro del mysql_query que no hace falta.

Prueba asi tal cual como te pongo en el post, a ver que te aparece.

Saludos.
__________________
Freelance - Aplicaciones Web

Etiquetas: consulta, 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 20:01.