Foros del Web » Programando para Internet » PHP »

duda consulta sql

Estas en el tema de duda consulta sql en el foro de PHP en Foros del Web. ¿Alguien sabe por qué esto me da error? $consulta = "select max(id_area) as max from areas"; $resultado = mysql_query($consulta); $fila = mysql_fetch_array($resultado); $id=$fila[max]; No le ...
  #1 (permalink)  
Antiguo 06/04/2004, 04:12
 
Fecha de Ingreso: enero-2004
Mensajes: 1
Antigüedad: 13 años, 10 meses
Puntos: 0
duda consulta sql

¿Alguien sabe por qué esto me da error?

$consulta = "select max(id_area) as max from areas";
$resultado = mysql_query($consulta);
$fila = mysql_fetch_array($resultado);
$id=$fila[max];

No le gusta la penultima sentencia!
  #2 (permalink)  
Antiguo 06/04/2004, 07:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Deberías poner el error que te dá .. Es más, lo verías más claro si usas estructuras tipo:

Código PHP:
$resultado mysql_query($consulta) or die (mysql_error()); 
Pero, en principio estás usando como "alias" para una función que aplicas .. el mismo nombre de una función (max() ) .. eso te puede dar problemas. En SQL (de Msyql o cualquier otra BD) también hay palabras reservadas que no puedes usar para "alias" por ejemplo ...

Por otro lado .. si sólo buscas el valor de ese max(id) puedes usar:

Código PHP:
$max=mysql_result($resultado,0); 
Sin necesidad de usar alias en el SQL (as nombre) ni de usar el msyql_fetch_array() .. pues, esa función (mysql_result()) ya accede directamente al resultado del primer registro arrojado de tu consulta y campo primero (el 3er parámetro si no se indica un nº de campo o nombre se asume el primero ..)

Para lo que estás haciendo .. revisa también la función:
mysql_insert_id() (o su equivalente en SQL)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 17:10.