Foros del Web » Programando para Internet » PHP »

problema con una consulta

Estas en el tema de problema con una consulta en el foro de PHP en Foros del Web. Cuando les llega el formulario por ID si lo procesa y muestra el contenido de los campos, pero cuando ago una busqueda por nombre me ...
  #1 (permalink)  
Antiguo 02/06/2007, 18:20
 
Fecha de Ingreso: mayo-2007
Mensajes: 4
Antigüedad: 17 años
Puntos: 0
problema con una consulta

Cuando les llega el formulario por ID si lo procesa y muestra el contenido de los campos, pero cuando ago una busqueda por nombre me tira este error, ya me duele la cabeza y no encuentro cual es el problema de una sentencia tan facil >_>

(soy nuevo en esto xD)



Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\superx\almacen\buscararticulo.php on line 148



Código PHP:
<?php
                                                                  


include("bdconect.php");
$ban=0;
$query='SELECT * FROM articulo WHERE';
$nombre=$_POST['nombre'];
if(isset(
$_POST['id'])){
$query .=' idarticulo='.$_POST['id']; $ban=1;}
elseif(isset(
$_POST['nombre'])){
$query .=" nombre like='%$nombre%'";  $ban=1;}

if(
$ban==1){
$row mysql_query($query);
while(
$art mysql_fetch_array($row)){     //LINEA 148 
?>
                              </tr>
                              

                                              <tr>
             <td height="27" valign="top" bordercolor="#000000"><div align="center"><? echo $art["idarticulo"]; ?>&nbsp;</div></td>
            <td valign="top" bordercolor="#000000"><div align="center"><? echo $art["nombre"]; ?>&nbsp;</div></td>
                 <td valign="top" bordercolor="#000000"><div align="center"><? echo $art["precio"]; ?>&nbsp;</div></td>
                 <td valign="top" bordercolor="#000000"><div align="center"><? echo $art["existencia"]; 
                 
mysql_close(); }              }     ?> &nbsp;</div></td>
                  </tr>
  #2 (permalink)  
Antiguo 03/06/2007, 21:27
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: problema con una consulta

Trasladado de BD a PHP.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 03/06/2007, 22:18
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: problema con una consulta

Este sector de código:
Código PHP:
if(isset($_POST['id'])){ 
$query .=' idarticulo='.$_POST['id']; $ban=1;} 
elseif(isset(
$_POST['nombre'])){ 
$query .=" nombre like='%$nombre%'";  $ban=1;} 
lo cambias por este

Código PHP:
if(isset($_POST['id'])){ 
$query .=' idarticulo='.$_POST['id']; $ban=1;} 
elseif(isset(
$_POST['nombre'])){ 
$query .=" nombre like='%".$_POST['nombre']."%'";  $ban=1;} 
Aunque deberías validar primero los datos capturados por el GET antes de usarlos en la consulta SQL directamente. Esto es para evitar inyeccion sql.

Saludos
  #4 (permalink)  
Antiguo 04/06/2007, 10:44
 
Fecha de Ingreso: mayo-2007
Mensajes: 4
Antigüedad: 17 años
Puntos: 0
Re: problema con una consulta

ya le avia intentado asi como pusiste pero no funcionava lo que hice fue imprimir la variable $query despues de los ifs aver que estaba mandando xD y mandava todo revuelto con el idarticulo incluido al nombre del otro if y tiraba error al enviar una consulta no valida lo que hice fue esto y funciono de maravilla


Código PHP:
$ban=0;
$query='SELECT * FROM articulo WHERE';
$nombre=$_POST['nombre'];


if(!empty(
$_POST['id'])){
$query .=' idarticulo='.$_POST['id']; $ban=1;
}
elseif(!empty(
$_POST['nombre'])){
$query .=" nombre like '%$nombre%' ORDER BY idarticulo DESC"
$ban=1
  #5 (permalink)  
Antiguo 04/06/2007, 11:32
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: problema con una consulta

Esta bien pero agregale comillas simples al ID.

Código PHP:
$query .=" idarticulo='".$_POST['id']."'"$ban=1
PD: oye amigo todos nos podemos equivocar cuando escribimos, pero te recomiendo que prestes atención a tu ortografía, no son errores sino horrores
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 10:19.