Foros del Web » Programando para Internet » PHP »

Que es lo que pasa????

Estas en el tema de Que es lo que pasa???? en el foro de PHP en Foros del Web. Hola a todos me estoy tirando de los pelos... Esta es la instruccion: Código PHP: $result  =  sql_query ( "Select * from Soft WHERE Producto LIKE " % $query % " ORDER BY Producto" ,  ...
  #1 (permalink)  
Antiguo 05/02/2003, 16:59
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Que es lo que pasa????

Hola a todos me estoy tirando de los pelos...

Esta es la instruccion:


Código PHP:
$result sql_query("Select * from Soft WHERE Producto LIKE "%$query%" ORDER BY Producto"$dbi);
list(
$Producto$Version) = sql_fetch_row($result$dbi); 
Y este el mensaje de error:

Fatal error: Call to undefined function: sql_query() in c:\inetpub\wwwroot\html\modules\Serialz\index.php on line 13

La linea 13 es la primera del codigo que aki aparece.

Un ayudita porfa

Gracias
  #2 (permalink)  
Antiguo 05/02/2003, 17:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Que base de datos estas usando?

Mysql --> mysql_query() .. mysql_fetch_row() .. etc MS SQL Server --> mssql_query() ... etc ..
PostgreSQL --> pg_query() .. etc ...

Por el LIKE supongo q usas la marcada en rojo (Mysql) ...

En general es prefijo alusivo al nombre del motor de Base de datos q estas usando_funcion hacer ...

Un saludo,
  #3 (permalink)  
Antiguo 06/02/2003, 15:27
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Utilizo MySQL...

De toda formas he cambiado:
sql_query por mysql_query y sql_fetch_row por mysql_fetch_row

Y ahora me da el siguiente error:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\inetpub\wwwroot\html\modules\Soft\Index.php on line 13
Warning: Wrong parameter count for mysql_fetch_row() in c:\inetpub\wwwroot\html\modules\Soft\Index.php on line 14

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\html\modules\Soft\Index.php on line 39




Nu se


Última edición por daniph; 06/02/2003 a las 15:33
  #4 (permalink)  
Antiguo 06/02/2003, 15:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. leistes mi respuesta?

Un saludo,
  #5 (permalink)  
Antiguo 06/02/2003, 15:34
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Perdona pero edite el mensaje me falto algo leelo otra vez por favor

Gracias
  #6 (permalink)  
Antiguo 06/02/2003, 15:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok, ..

Pues será mejor q pongas todo el código q usas ...

O no has definido o estas conectando mal a tu Mysql y Base de datos q pretendes usar ..

Un saludo,

pd: recuerda .. cuantos mas datos aportes a la pregunta ..mejor y mas rápida serán las respuestas ...
  #7 (permalink)  
Antiguo 06/02/2003, 15:43
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Esta es la funcion completa:

Código PHP:
function Buscar($query) {    

  
//Establecimiento de la conexión 
  
echo $query;
  
$conex mysql_connect("localhost","root",""
           or die(
"NO se pudo realizar la conexión");
  
// Selección de la base de datos
  
mysql_select_db("Soft");
  
 
//Preparación y ehjecución de la consulta
  
$cons "Select * from Softin WHERE Producto LIKE "%$query%" ORDER BY Producto";
  
$resultado mysql_query($cons,$conex);  
  
  
//Obtención del número de filas del resultado
  
$Num_filas mysql_num_rows($resultado);
  echo 
"<Br>Núm. de filas en el resultado: $Num_filas<BR>\n";  
  
//Obtención del número de atributos
  
$Num_campos mysql_num_fields($resultado);
  
  
//Recorrido del cursor 
  
while ($Objeto_Fila mysql_fetch_object($resultado))
     {
     echo 
$Objeto_Fila->Id." ";
     echo 
$Objeto_Fila->Plataforma." " ;
     echo 
$Objeto_Fila->Compania." ";
     echo 
$Objeto_Fila->Producto." ";
     echo 
$Objeto_Fila->Version." ";
     echo 
"<BR>\n";   
     }    
  
  
// Liberamos los recursos de las consultas    
    
mysql_free_result($resultado);
    
// Se cierra la conexion
     
mysql_close($conex);

Bueno esta es la funcion original...

Un saludo
  #8 (permalink)  
Antiguo 06/02/2003, 15:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues esta funcion q has puesto no tiene nada q ver con la anteriro q pusistes .. ademas es solo una funcion .. como no indiques COMO la usas .. pco podemos ver

Lo q es la funcion parece estar bien ... aunque no se porqué le passa el parametro $query .. y luego tienes ahí dentro incrustada la propia query .. (tu $cons)

Please .. PON el codigo completo que usas . .de nada sierve una funcion suelta .. PON el mensaje de error que da textual .. e indica a qué linea corresponde en su contexto!!!

Un saludo,
  #9 (permalink)  
Antiguo 06/02/2003, 15:55
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
aki esta

Código PHP:
<?php

function Buscar($query) {    

  
//Establecimiento de la conexión 
  
echo $query;
  
$conex mysql_connect("localhost","root",""
           or die(
"NO se pudo realizar la conexión");
  
// Selección de la base de datos
  
mysql_select_db("Serialz");
  
 
//Preparación y ehjecución de la consulta
  
$cons "Select * from Seriales WHERE Producto LIKE "%$query%" ORDER BY Producto";
  
$resultado mysql_query($cons,$conex);  
  
  
//Obtención del número de filas del resultado
  
$Num_filas mysql_num_rows($resultado);     // <--------- LINEA 17
  
echo "<Br>Núm. de filas en el resultado: $Num_filas<BR>\n";  
  
//Obtención del número de atributos
  
$Num_campos mysql_num_fields($resultado); // <--------- LINEA 20
  
  //Recorrido del cursor 
  
while ($Objeto_Fila mysql_fetch_object($resultado)) // <--------- LINEA 23
     
{
     echo 
$Objeto_Fila->Id." ";
     echo 
$Objeto_Fila->Plataforma." " ;
     echo 
$Objeto_Fila->Compania." ";
     echo 
$Objeto_Fila->Producto." ";
     echo 
$Objeto_Fila->Version." ";
     echo 
"<BR>\n";   
     }    
  
  
// Liberamos los recursos de las consultas    
    
mysql_free_result($resultado);  // <--------- LINEA 34
    // Se cierra la conexion
     
mysql_close($conex);
}

function 
Formulario() {
echo 
"<center>"
     
."<p><a href=modules.php?name=Serialz>"
     
."<img alt src=images/down-logo.gif border=0 width=221 height=42></a><br>"
     
."<br>&nbsp;</p>"
     
."<form action=index.php?op=buscar>"
     
."<p><font class=content>"
     
."<input size=25 name=query>"
     
."<input type=submit value=Buscar>"
     
."</font></p></form><p>"
     
."<font class=content>[<a href=index.php>Añadir Descarga</a> |<a href=index.php>Nuevo</a> |<a href=index.php>Popular</a> |<a href=index.php>Mejores valorados</a> ]</font></p>"
     
."</center>";
}

if(
$query=!"") {
    
Buscar($query);
}else{    
    
Formulario();    
}    
?>

Última edición por daniph; 06/02/2003 a las 16:33
  #10 (permalink)  
Antiguo 06/02/2003, 16:28
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Y los mensajes de error? Porque en los mensajes habla de mysql_fetch_row() y en este codigo no lo veo. Pon los nuevos errores y si eres tan amable podrias poner como comentario dentro del codigo el numero de linea de las lineas que fallan. Es que contar es tan cansado...

Por cierto, creo que las comillas de %$query% tendrian que sen sencillas, asi:

LIKE '%$query%' ORDER

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #11 (permalink)  
Antiguo 06/02/2003, 16:35
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Y estos son los errores, las lineas estan puestas en el codigo


1
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\html\modules\Soft\Index.php on line 17

Núm. de filas en el resultado:

Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\html\modules\Soft\Index.php on line 20

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\html\modules\Soft\Index.php on line 23

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\inetpub\wwwroot\html\modules\Soft\Index.php on line 34


Muchas gracias por todo
  #12 (permalink)  
Antiguo 06/02/2003, 21:00
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años
Puntos: 68
Que raro que llegue a darte esos errores, cuando el error es de Sintaxis y está aqui :

$cons = "Select * from Seriales WHERE Producto LIKE "%$query%" ORDER BY Producto";

Esto deberia ser asi :

$cons = "Select * from Seriales WHERE Producto LIKE $query ORDER BY Producto";

Suerte
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #13 (permalink)  
Antiguo 07/02/2003, 11:46
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
ok ahora no me da mensajes de error pero el script sigue sin funcionar, me sale el cuadro de busqueda pero cuando pongo algo y le doy a buscar no me aparecen los resultados

Alguna idea
  #14 (permalink)  
Antiguo 07/02/2003, 12:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No se si sabras .. pero el LIKE de Msyql es sensible a mayusculas .. ademas q si NO usas comodines (willcards) ..esos % .. deberas escribir la palabra exacta a buscar .. ni mas espacios ni menos .. tal cual esté en tu base de datos ese campo.

Josemi te comentó q usases:

campo LIKE '%$nose%'

que es como lo tenias originalmente pero con comillsa dobles ... USALO y fijate en como estan escritos físicamente esos campos.

Un saludo,
  #15 (permalink)  
Antiguo 07/02/2003, 12:16
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Ke va de ninguna de las formas, creo que el fallo debe de estar en el paso de las variable, es que el script ni se inmuta sigue mostrandome la caja de busqueda, eso si la direccion en la barra de direcciones cambia a:
pagina.php?query=Adobe

Nose
  #16 (permalink)  
Antiguo 07/02/2003, 12:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Con los datos q das .. y las ganas q le pones .. nose .. así no avazamos nada ..

Ahora va y sales q no te recoge las variables ...

En el formulario no usas method .. lo cual implica q usas metodo GET .. Deberias usar POST y a su vez recoger las variables por el metodo enviado ..

Código PHP:
."<form action=index.php?op=buscar method=\"POST\">" 
y en tu if ...

Código PHP:
if($_POST['query'] =! "") {
    
Buscar($_POST['query']);
}else{    
    
Formulario();    

Y usa un poco la imaginación .. si sospechas q no te llegan las variables .. le haces un simple echo $quey; y lo compruebas .. (lo miras antes y despues de que entre a la funcion .. etccccc) Deberias leer algo mas sobre PHP y Mysql .. probar al tutun las cosas aveces da resultados otras no ...

Y sobretodo .. describe bien tus problemas .. nose no ? ..

ahh .. y deja el LIKE '%$nose%' ..

Un saludo,

Última edición por Cluster; 07/02/2003 a las 12:36
  #17 (permalink)  
Antiguo 09/02/2003, 07:00
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Jejeje, pues retomando el tema y olvidandonos un poco de la base de datos y sobre el paso de variables, he intentado (con un poco de imaginacion como tu dices) averiguar si se pasan las variables del formulario por el metodo post, he hecho un sencillo formulario sin mas historia que pasa dos variables
Código PHP:
// Archivo formulario.php 
<FORM ACTION="procesa.php" METHOD="POST">
      
Nombre de Usuario:
      <
INPUT TYPE="Text" NAME="user" size="20"><BR>
      
Identificador de Usuario:
      <
INPUT TYPE="Text" NAME="uid" size="20"><BR>
      <
INPUT TYPE="Submit" VALUE="Enviar">
   </
FORM
Y otro archivo procesa.php que recoge esas variables y las vuelca en pantalla tal que asi:
Código PHP:
<?php
   
echo $user;
   echo 
$uid;
?>
Y para sorpresa mia este es el mensaje de error que me da:

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:

Alguna ayuda....
  #18 (permalink)  
Antiguo 12/02/2003, 14:04
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Alguna ayuda con este tema


Gracias a todos
  #19 (permalink)  
Antiguo 12/02/2003, 16:19
Avatar de BVis  
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona
Mensajes: 104
Antigüedad: 15 años
Puntos: 0
Pero cual es el motivo de no emplear el utilísimo "or die('error tal o cual')" en cada una de las llamadas a una base de datos
, por lo menos en la fase de creación de código.

A menudo mensajes como:
Código PHP:
$resultado = @mysql_query($sql_que_sea) or die("Error en la consulta:<br/><br/>\n<b>$sql</b><br/><br/>Mysql ha dicho: <b>".mysql_error()."</b>"); 
Ayudan mucho para desentrañar los errores y no perder más que 5 segundos en detectar exactamente cual es/son.

1 Saludo.
__________________
"Yo opino lo mismo que BVis, el de 'forosdelweb' " - Bill Gates

Última edición por BVis; 12/02/2003 a las 16:21
  #20 (permalink)  
Antiguo 12/02/2003, 16:28
 
Fecha de Ingreso: agosto-2001
Ubicación: Gran Canaria (España)
Mensajes: 430
Antigüedad: 16 años, 4 meses
Puntos: 0
Si pero es que el problema no es de la base de datos si a la hora de pasar las variables..
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 13:17.