elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Consulta con me genera nada :S
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Consulta con me genera nada :S  (Leído 3,033 veces)
ZharkD

Desconectado Desconectado

Mensajes: 112


Ver Perfil WWW
Consulta con me genera nada :S
« en: 8 Mayo 2010, 23:48 »

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


En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Consulta con me genera nada :S
« Respuesta #1 en: 8 Mayo 2010, 23:56 »

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


« Última modificación: 8 Mayo 2010, 23:59 por Skeletron » En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Consulta con me genera nada :S
« Respuesta #2 en: 9 Mayo 2010, 00:15 »

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
En línea

Ojo por ojo, y el mundo acabará ciego.
^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Consulta con me genera nada :S
« Respuesta #3 en: 9 Mayo 2010, 01:24 »

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
En línea

ZharkD

Desconectado Desconectado

Mensajes: 112


Ver Perfil WWW
Re: Consulta con me genera nada :S
« Respuesta #4 en: 9 Mayo 2010, 02:35 »

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
« Última modificación: 9 Mayo 2010, 02:38 por ZharkD » En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Consulta con me genera nada :S
« Respuesta #5 en: 9 Mayo 2010, 03:07 »

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])
En línea

Ojo por ojo, y el mundo acabará ciego.
ZharkD

Desconectado Desconectado

Mensajes: 112


Ver Perfil WWW
Re: Consulta con me genera nada :S
« Respuesta #6 en: 9 Mayo 2010, 03:16 »

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 :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines