PHP - funciones y mysql

 
Vista:

funciones y mysql

Publicado por elgrantate (8 intervenciones) el 20/02/2003 09:52:53
Hola a todos,
me ha ocurrido en varias ocasiones que al pasarle a una función parámetros para realizar dentro operaciones en mysql obtengo errores que si no utilizo la función no me dan. Por ejemplo si realizo la consulta $res=sql_query... al pasar $res como parámetro funciona, lo que yo quiero para optimizar un poco más mi código es pasar valores procedentes de list(sql_fetch_row()) de una consulta y no funciona.
No se si me he explicado pero agradecería vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:funciones y mysql

Publicado por badboy (16 intervenciones) el 20/02/2003 10:20:57
A mi me pasa lo mismo, la cuestion es que una funcion no puede devolver un array, y de momento no he encontrado manera de solucionarlo... creo que no es posible, de todos modos si te enteras te agradeceria que me lo comentaras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Una solución

Publicado por Comunidad de Desarrolladores (7 intervenciones) el 20/02/2003 23:54:53
Si no tienen el manual de PHP que puede bajarde del sitio www.php.net, entonces es muy dificil encontrar la solución.

Existe una instrucción list:
list($var_campo1, $var_campo2,..., $var_campoN) = mysql_fetch_row(...)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Una solución

Publicado por elgrantate (8 intervenciones) el 21/02/2003 13:03:51
Gracias por tu respuesta, pero mi pregunta no se refiere a como utilizar el list, lo que pregunto es como utilizar en la función los parámetros $var_campo1,$var_campo2, etc del list, ya que de utilizar los resultados sin función a utilizarlos con ella me da error o no.
Gracias de nuevo. Espero la contestación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Parámetros de "list"

Publicado por Comunidad de Desarrolladores (7 intervenciones) el 21/02/2003 17:48:58
Los parámetros del list son en realidad las variables que cargarás con el valor de cada uno de los campos que retorna tu consulta, por ejemplo:

si tienes un select de este tipo: select campo 1, campo2 from tabla

cuando cargas el resultado en especial con los fetch te retorna un arreglo de datos, que a su vez con los campos de la cunsulta, entonces necesitas descomponer ese arreglo, hacendo esto

list($var_campo1, $var_campo2) = mysql_fetch_row($resultado);

si quieres ver los valores, entonces haz esto:

print("Código: ".$var_campo1."<br>Descripción: ".$var_campo2);

Supongamos que sale esto:

Código: 1
Descripción: Comunidad de Desarrolladores de Internet
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Parámetros de

Publicado por elgrantate (8 intervenciones) el 21/02/2003 20:59:24
El problema es que no puedo utilizar los parámetros que me da el list en una función,es decir:

function MisCampos($dato1,$dato2){
echo"Mostramos $dato1 y $dato2";
}

$res=sql_query("select campo1,campo2 from Campos",$dbi);
while(list($cp1,cp2)=sql_fetch_row($res,$dbi)){
MisCampos($cp1,$cp2); /*aquí está el error*/
}

El problema es que si utilizo la función me fallan las consultas.
Y si los resultados de la consulta son muy numerosos el código se vuelve muy repetitivo. Si lo puedo solucionar con una función me facilitaría mucho el trabajo.
¿Cómo podría solucionarlo si es que hay alguna forma de resolverlo?
Muchas gracias de nuevo por la atención que me estais prestando. Espero la respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LA SOLUCIÓN!!!

Publicado por elgrantate (8 intervenciones) el 26/02/2003 12:08:15
Ya he dado con la solución!

Resulta que en el PHP al hacer una función en la que tengas que hacer una consulta dentro de la misma no sólo debes pasarle el parámetro para desarrollarla sino que además tienes que pasarle a la función la BD también como parámetro porque la pierde por el camino.
Pongo un ejemplo para que quede más claro.

function bdejemplo($myid,$bd){
$res2=sql_query("select nb from profesores where ID=$myid",$bd);
/*la clave del asunto está en renombrar $dbi por $bd*/
/*Fallaba porque sólo introducía el parámetro $myid y en la consulta interna utilizaba $dbi*/
list($nombre)=sql_fetch_row($res2,$bd);
echo"Mi nombre es $nombre";
}

$res=sql_query("select ID from TABLA",$dbi);
/*Siendo $dbi la BD que tienes*/
list($id)=sql_fetch_row($res,$dbi);

bdejemplo($id,$dbi);

/*POR FIN!!!!!!!!!!!!!*/

Gracias por vuestro interés y espero que la solución sirva de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

gracias

Publicado por neobadboy (16 intervenciones) el 26/02/2003 15:57:33
Gracias por avisarme de que habias colgado la solucion, la verdad que no tenia ni idea y me acabas de solucionar el problema, gracias.
Para lo que quieras ya sabes dobde escribirme. Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar