Foros del Web » Programando para Internet » PHP »

error:Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in

Estas en el tema de error:Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in en el foro de PHP en Foros del Web. Hola: Tengo un pequeño problema. Tengo una simple consulta a una tabla de una base de datos mysql, con php. Esta consulta, la hago dentro ...
  #1 (permalink)  
Antiguo 23/08/2004, 14:22
 
Fecha de Ingreso: agosto-2004
Ubicación: Mendoza - Ciudad
Mensajes: 9
Antigüedad: 13 años, 3 meses
Puntos: 1
error:Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in

Hola:
Tengo un pequeño problema.
Tengo una simple consulta a una tabla de una base de datos mysql, con php.
Esta consulta, la hago dentro una funcion, que luego tendra mas sentencias, dependiendo del resultado de la consulta.
Ahora bien, la consulta funciona barbaro si no esta dentro de la funcion; pero cuando le agrego la definicion de funcion me muestra este error en la ejecucion:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\FoxServ\www\docs\microsnew\pruebaalta.php on line 185

¿Alguien sabe por que?
Nota: recien empiezo con este lenguaje y es la primera vez que declaro funciones, por lo que no se si sera problema de la declaracion.

Aca va la porcion de codigo donde esta la funcion y la consulta:
La variable $dbi es la que me trae la conexion a la BD desde un require("config.php").
La tabla fb004 es una tabla de encabezado y la fb005 es la de detalle:

<body>
<?
function crear_form(){

$sql = "SELECT * FROM fbb004 AS f4, fbb005 AS f5 WHERE f4.004_formulario=f5.005_004_formulario";
$result = mysql_query($sql,$dbi) or die(mysql_error($dbi)."<br>Error en busqueda.(0) <br>$sql");

echo $result;
$cant = mysql_num_rows($result);
if($cant >0){
$i=0;
while($fila = mysql_fetch_array($result)){
$formulario = $fila["004_formulario"];
$nrocampos = $fila["004_nrocampos"];
$estilos = $fila["004_estilos"];
$titulo = $fila["004_titulo"];
$sentencia = $fila["004_sentencia"];

$campo[$i] = $fila["005_campo"];
$tipocampo[$i] = $fila["005_tipocampo"];
$tamanio[$i] = $fila["005_tamanio"];
$label[$i] = $fila["005_label"];
$nulo[$i] = $fila["005_nulo"];
echo "<br>".$nrocampos."<br>";
echo $formulario."<br>";
echo $campo[$i]."<br>";
echo $tipocampo[$i]."<br>";
echo $tamanio[$i]."<br>";


$i++;
}

return array($formulario,$nrocampos);
}
}

echo list($formu,$canti)=crear_form();


?>
</body>

Muchas gracias desde ya.
  #2 (permalink)  
Antiguo 23/08/2004, 15:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
A simple vista se vé que usas una función para ese código .. pero en ningúna parte se vé que definas como global o le pases como parámetro el link de conexión de tu BD (ese tal $dbi que usas) a dicha función ..

Eso es parte de la definición del "ambito" (scope) de las variables ...

Una solución simple es:
Código PHP:
function crear_form(){
   global 
$dbi;

sql "SELECT * FROM fbb004 AS f4, fbb005 AS f5 WHERE f4.004_formulario=f5.005_004_formulario";
$result mysql_query($sql,$dbi) or die(mysql_error($dbi)."<br>Error en busqueda.(0) <br>$sql");

// etc ...

Un saludo,
  #3 (permalink)  
Antiguo 23/08/2004, 15:25
 
Fecha de Ingreso: agosto-2004
Ubicación: Mendoza - Ciudad
Mensajes: 9
Antigüedad: 13 años, 3 meses
Puntos: 1
Hola Cluster:
Muchísimas gracias por la velocidad de tu respuesta.
El problemita era ese, nomás.
Ya funcionó todo.
El problema es que hace poco que hemos empezado a usar php y encima lo estamos aprendiendo por nuestra cuenta, así que hay cosas que aún no tenemos bien definidas. Pero estamos tratando de entender cada vez más.
De nuevo, muchas gracias.
  #4 (permalink)  
Antiguo 23/08/2004, 15:47
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 entonces .. otro tema más para la lectura:

"Ambito de las variables" (o variable scope):
http://www.php.net/variables.scope


Un saludo,
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.
Tema Cerrado

SíEste tema le ha gustado a 3 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 19:08.