Foros del Web » Programando para Internet » PHP »

Problemas con mysql_result

Estas en el tema de Problemas con mysql_result en el foro de PHP en Foros del Web. Pues resulta que estoy programando un weblog n el trabajo. Aquí tengo MySQL 4.0.16, PHP 4.3.1. Y por su puesto me funciona de maravilla. El ...
  #1 (permalink)  
Antiguo 12/01/2004, 03:28
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 23 años, 6 meses
Puntos: 14
Problemas con mysql_result

Pues resulta que estoy programando un weblog n el trabajo. Aquí tengo
MySQL 4.0.16, PHP 4.3.1. Y por su puesto me funciona de maravilla.

El caso es que quise seguir el trabajo en casa, asi que mediante WINLAMP, instalé Apache+MySQL 4.0.16, PHP 4.3.3. Bueno, pues ahora el weblog que en trabajo si funcionaba, en casa no lo hace bien. De momento ya corregí un tema de que no podía recoger los datos insertados en un formulario para pasarlos a la base de datos:

yo lo tenía así para recoger los datos:

Código PHP:
$v1=$titulo;
$v2=$cuerpo;
$v3=$autor;
$v4=date("d-m-Y H:i a"); 
$v5=$intro
y para que funcioara tuve que usar $_POST creo recordar.

Pero esto que viene a continuación me da error y no se por donde me vienen los palos:

Código PHP:
$qry "SELECT id, titulo, cuerpo, autor, fecha, fechaa, intro FROM articulos WHERE id=$id";
$res mysql_query($qry);
$cuerpo_art mysql_result($res0"cuerpo");
$titulo_art mysql_result($res0"titulo");
$autor_art  mysql_result($res0"autor");
$fecha_art  mysql_result($res0"fecha"); 
Me da error en las lineas referidas a mysql_result :

"""Warning: mysql_result(): supplied argument is not a valid MySQL result resource in....."""

Lo que no entiendo es que en un ordenador con una version del php me funcione y en otro con una versión superior no lo haga.

Alguien sabe por donde puedo tirar???

Gracias,
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com

Última edición por Alfon; 12/01/2004 a las 03:34
  #2 (permalink)  
Antiguo 12/01/2004, 03:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Primero, tu PHP en el trabajo esta configurado de una forma poco recomendable. Esta con register_globals a ON. Y ya lleva varias versiones en las que viene esa configuracion por defecto a OFF. Mas info en http://www.forosdelweb.com/showthrea...988#post238988 y siguiente.

Y con lo del query, si dices que te da error, suele ayudar que pongas el mensaje que te pone. Porque puede ser cualquiera.

Por ejemplo, te puede dar un "el argumento no es un id de resultado MySQL valido" (es el que normalmente sale). Este suele ser causado porque se ha producido un error en la ejecucion de la consulta MySQL, por lo que mysql_query() devuelve false en lugar de un id de recordset. En este caso puede ver el mensaje de error de MySQL con:
Código PHP:
$res mysql_query($qry) or die("Error $qry <br>MySQL dice: ".mysql_error()); 
Pero si el mensaje es otro, el error puede ser cualquiera.
Cita:
Lo que no entiendo es que en un ordenador con una version del php me funcione y en otro con una versión superior no lo haga.
Una de las caracteristicas de PHP es su gran flexibilidad a la hora de configurar.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 12/01/2004, 03:57
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 23 años, 6 meses
Puntos: 14
Gracias josemi. Esta tarde en casa probaré poner la linea esa que me dices y mañana pondré aqui cual es el error devuelto.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #4 (permalink)  
Antiguo 12/01/2004, 04:01
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Puede que tenga que ver con $id. Si es una variable que pasas por URL, tienes que recogerla con $_GET.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 12/01/2004, 05:19
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 23 años, 6 meses
Puntos: 14
Si, podría ser, lo probaré... pero en el ytrabajo si que m e funciona. En cualquier caso ¿ como sería la sintaxis ?
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #6 (permalink)  
Antiguo 12/01/2004, 05:31
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Pues como con $_POST. Con register_globals a OFF, los parametros que vienen por URL se recogen con $_GET, al igual que los de los formularios con method="GET"; $_POST sirve para los parametros de formularios method="POST"; $_COOKIE para las cookies; $_SESSION para las variables de sesion.

Mas info de estos arrays en http://www.php.net/manual/en/reserved.variables.php . Y mas sobre register_globals y la seguridad http://www.php.net/manual/en/securit...terglobals.php

Suerte.

PD:
Código PHP:
$id=$_GET['id'];
$qry "SELECT id, titulo, cuerpo, autor, fecha, fechaa, intro FROM articulos WHERE id=$id"
Siempre y cuando id sea un parametro que recibes por la URL (pagina.php?id=69).
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 12/01/2004, 05:44
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 23 años, 6 meses
Puntos: 14
Gracias josemi. todo apuntadito para cuando llege a casa y probar. Ya contaré que tal me fue.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #8 (permalink)  
Antiguo 13/01/2004, 02:30
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 23 años, 6 meses
Puntos: 14
Pues bien.llegé a mi casa y lo primero que hice es mirar los register_globals que estaban a OFF. Introduje:
Código PHP:
$id=$_GET['id']; 
y nada todo seguia igual. Así que decide poner la linea esa para que me devolviera el error y así saber por tirar:
Código PHP:
$res mysql_query($qry) or die("Error $qry <br>MySQL dice: ".mysql_error()); 
Y con esto último se solucionó el tema. sigo sin etenderlo pero se solucinó, ya que la línea es exactamente igual que la que yo tenía pero añadiendo el "or die......" para sacar el error.

De todas formas muchas gracias josemi. El caso es que esta todo solucionado.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #9 (permalink)  
Antiguo 13/01/2004, 06:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Alfon .. una observación:

Código PHP:
$res mysql_query($qry);
$cuerpo_art mysql_result($res0"cuerpo");
$titulo_art mysql_result($res0"titulo");
$autor_art  mysql_result($res0"autor");
$fecha_art  mysql_result($res0"fecha"); 
En lugar de esos X mysql_result() .. puedes usar también

mysql_fetch_row()

Código PHP:
$id=$_GET['id'];
$qry "SELECT id, titulo, cuerpo, autor, fecha, fechaa, intro FROM articulos WHERE id='".$id."'"// usé comillas simples para la varible ..

$datos=mysql_fetch_row($res);
echo 
$datos['cuerpo'];
echo 
$datos['titulo'];
// etc ... 
mysql_fetch_row() te devuelve un array asociativo con ese registro (se entiende que sólo es posible que tu consulta SQL va a arrojar 1 registro máx.). Si fuesen más registros los esperados .. ya conoceras mysql_fetch_array() o mysql_fetch_assoc() (entre otras).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 13/01/2004, 07:08
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 23 años, 6 meses
Puntos: 14
Uff, gracias Cluster. Pues no lo sabia. Esta tarde lo pruebo.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
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 22:47.