Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: ZharkD en 8 Mayo 2010, 23:48 pm



Título: Consulta con me genera nada :S
Publicado por: ZharkD en 8 Mayo 2010, 23:48 pm
Buenas,

Pues aqui esta el codigo del sql/php:
Código
  1. //Aqui la config de la db...
  2. function test()
  3. {
  4. $consulta = mysql_query("SELECT MAX(num) FROM miembros");
  5. $temporal = mysql_num_rows($consulta);
  6. mysql_free_result($consulta);
  7. return 1;
  8. }
  9.  

Este es el index:
Código
  1. include(archivo.php);
  2. if(function test()==1)
  3. echo $temporal;
  4.  

Es el unico codigo que no me genera nada :S
No logro entender porque... :S


Título: Re: Consulta con me genera nada :S
Publicado por: Skeletron en 8 Mayo 2010, 23:56 pm
Porque en vez de hacer ese IF, haces un ECHO en la funcion, y desde el index, imprimis el TEST()

Algo asÍ:
Código
  1. function test()
  2. {
  3. $consulta = mysql_query("SELECT MAX(num) FROM miembros");
  4. echo mysql_num_rows($consulta);
  5. mysql_free_result($consulta);
  6. }
  7.  
  8. //otro archivo:
  9.  
  10. include(archivo.php);
  11. test();


PD.: En el IF, no tienes que escribir la palabra FUNCTION


Título: Re: Consulta con me genera nada :S
Publicado por: Nakp en 9 Mayo 2010, 00:15 am
tu funcion retorna 1 en vez de $temporal y no es asignada... ademas select max devuelve un valor y no es mas de una fila


Título: Re: Consulta con me genera nada :S
Publicado por: ^Tifa^ en 9 Mayo 2010, 01:24 am
Exactamente lo que te dicen, sino imprimes el valor no tienes nada.

Otra cosa no se que andas buscando con la funcion SQL MAX ya que esto te retorna 1 solo registro que vendria siendo el numero mayor (si hablamos de un campo integer) encontrado en toda la tabla.... y si hablamos de un campo alfanumerico entonces te retorna de todos los registro la palabra que comienze y le sigan los caracteres mas alto del abecedario (diciendo por alto los que mas se hacerquen a la letra Z) por ejemplo si tienes registros llamado 'Maria', 'Juana', 'Zoe' la funcion MAX te retorna a 'Zoe' ya que es el nombre donde el inicial mas se acerca a la 'Z' del abecedario...

Si es numerico no hay mucho que abundar te retorna el numero mayor encontrado en la tabla completa (al menos que uses indices en tu consulta) pero asi como la tienes no estas usando ninguno asi que.... auch  :-X


Título: Re: Consulta con me genera nada :S
Publicado por: ZharkD en 9 Mayo 2010, 02:35 am
Porque en vez de hacer ese IF, haces un ECHO en la funcion, y desde el index, imprimis el TEST()

Algo asÍ:
Código
  1. function test()
  2. {
  3. $consulta = mysql_query("SELECT MAX(num) FROM miembros");
  4. echo mysql_num_rows($consulta);
  5. mysql_free_result($consulta);
  6. }
  7.  
  8. //otro archivo:
  9.  
  10. include(archivo.php);
  11. test();

PD.: En el IF, no tienes que escribir la palabra FUNCTION
Ohh,
No habia pensado en eso, intentare mezclar eso con algo un poco mas complejo que tengo en localhost =D

El PD del if, cierto, en local no lo tengo asi jeje nose porque aqui se me fue XD


tu funcion retorna 1 en vez de $temporal y no es asignada... ademas select max devuelve un valor y no es mas de una fila

Creo que es eso... en  ese caso, deberia hacerlo fuera de una funcion cierto? O bien se pueden mandar DOS valores desde una funcion (ya que agregaria otra cosa para mandar esos DOS valores).

Exactamente lo que te dicen, sino imprimes el valor no tienes nada.

Otra cosa no se que andas buscando con la funcion SQL MAX ya que esto te retorna 1 solo registro que vendria siendo el numero mayor (si hablamos de un campo integer) encontrado en toda la tabla.... y si hablamos de un campo alfanumerico entonces te retorna de todos los registro la palabra que comienze y le sigan los caracteres mas alto del abecedario (diciendo por alto los que mas se hacerquen a la letra Z) por ejemplo si tienes registros llamado 'Maria', 'Juana', 'Zoe' la funcion MAX te retorna a 'Zoe' ya que es el nombre donde el inicial mas se acerca a la 'Z' del abecedario...

Si es numerico no hay mucho que abundar te retorna el numero mayor encontrado en la tabla completa (al menos que uses indices en tu consulta) pero asi como la tienes no estas usando ninguno asi que.... auch  :-X
Efectivamente es un valor numerico (int) :)

Gracias a todos por su colaboracion, me es muy util :D


Título: Re: Consulta con me genera nada :S
Publicado por: Nakp en 9 Mayo 2010, 03:07 am
fuera de una funcion o retorna un objeto/array

ojo.. la query devuelve 1 numero y no varias filas asi que num_rows esta de mas... hazle un fetch_array e imprime el primer elemento ($row[0])


Título: Re: Consulta con me genera nada :S
Publicado por: ZharkD en 9 Mayo 2010, 03:16 am
fuera de una funcion o retorna un objeto/array

ojo.. la query devuelve 1 numero y no varias filas asi que num_rows esta de mas... hazle un fetch_array e imprime el primer elemento ($row[0])

Si efectivamente lo eh solucionado de esa manera :)

Gracias a todos por su colaboracion :)