Foros del Web » Programando para Internet » PHP »

problema de novato mysql_fetch_array():

Estas en el tema de problema de novato mysql_fetch_array(): en el foro de PHP en Foros del Web. Código: mysql_connect("localhost","user","pass"); $sSQL="Select * From tabla1 order by ref desc limit 0,1"; $result=mysql_db_query("basedatos",$sSQL); $row=mysql_fetch_array($result); $re=$row["ref"] ; $refe=($re + 1); //Esto lo hace bien pero a ...
  #1 (permalink)  
Antiguo 17/01/2005, 04:27
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 9 meses
Puntos: 13
problema de novato mysql_fetch_array():

Código:

mysql_connect("localhost","user","pass");
$sSQL="Select * From tabla1 order by ref desc limit 0,1";
$result=mysql_db_query("basedatos",$sSQL);
$row=mysql_fetch_array($result);
$re=$row["ref"] ;
$refe=($re + 1);
//Esto lo hace bien pero a partir de 10 no suma más y devuelve siempre 10 a partir de ahí.

$result=mysql_db_query("basedatos","Select * From tabla2 where campo=$valor");
$row=mysql_fetch_array($result);
$importe=$row["campo2"];
//me da error PHP Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Si alguien me puediese decir...
gracias de antemano.
  #2 (permalink)  
Antiguo 17/01/2005, 04:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Cita:
order by ref desc
Si ref es un campo de tipo texto, entonces lo que pasa es que cualquier cadena que empiece por 9 es mayor que cualquiera que empiece por 1. Es decir, 111 es menor que 9, porque si son cadenas de texto, la comparacion es caracter a caracter, el caracter '1' es menor que el caracter '9', entonces la cadena '111' es menor que '9' (de igual forma que 'Jose' es menor que 'Z').

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 17/01/2005, 04:53
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 9 meses
Puntos: 13
Gracias Josemi.
Algo así me imaginaba. Ahora tengo el problema de mysql_fetch_array(): supplied argument is not a valid MySQL result resource en la segunda consulta que si cabe es el que más me trae de cabeza.
Ejem...
  #4 (permalink)  
Antiguo 17/01/2005, 05:11
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Cita:
Iniciado por autonotel
Gracias Josemi.
Algo así me imaginaba. Ahora tengo el problema de mysql_fetch_array(): supplied argument is not a valid MySQL result resource en la segunda consulta que si cabe es el que más me trae de cabeza.
Ejem...
Si el valor que le pasas es valido, es porque mysql_db_query() no devuelve un valor valido. Y si no devuelve un valor valido, es porque se ha producido un error en MySQL al intentar ejecutar la consulta. Puedes usar mysql_error() (www.php.net/mysql_error) para ver el mensaje de error.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 17/01/2005, 05:59
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 9 meses
Puntos: 13
Pues por más que veo no encuentro el fallo:
Me dice:
1054: Unknown column '(el valor de $valor)' in 'where clause' pero todo está bien, tengo una tabla con el nombre tabla1 y un campo con el nombre campo y una fila con el valor del campo el valor de $valor
  #6 (permalink)  
Antiguo 17/01/2005, 06:06
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
¿Es $valor una cadena? Entonces en la consulta debes ponerlo entre comillas. Si no pones comillas, toma las cadenas como nombres de campos.

Salduos.
  #7 (permalink)  
Antiguo 17/01/2005, 06:20
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 20 años, 9 meses
Puntos: 13
Oee oee oe oe oeeee oeeeee!!!
Gracias Josemi
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 12:25.