Foros del Web » Programando para Internet » PHP »

Problema consulta MySQL con PHP

Estas en el tema de Problema consulta MySQL con PHP en el foro de PHP en Foros del Web. Hola buenas, Tengo un problema importante, el caso es que hago la siguiente consulta en localhost y funciona: Código PHP: <?  $servidor = "localhost" ; ...
  #1 (permalink)  
Antiguo 22/04/2009, 03:35
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Problema consulta MySQL con PHP

Hola buenas,

Tengo un problema importante, el caso es que hago la siguiente consulta en localhost y funciona:

Código PHP:
<? 
$servidor
="localhost";
$usuario="root";
$pass="root";
$database="pinicial_principal";
$tabla="enlaces";

//Conectamos a la Base de datos
$db mysql_connect($servidor$usuario$pass);
//La consulta SQL
mysql_select_db($database);
$sql "SELECT * FROM enlaces WHERE id='$id'";
$leer mysql_query ($sql$db) or die ("problema del query: " mysql_error());

//Sacamos los datos
$row mysql_fetch_array($leer) or die(" Problema: "mysql_error());

$link $row["link"];
$clicks $row["clicks"];

//Le sumamos "1" al click
$nu $clicks 1;

//Con esto sumamos un click
$consulta "UPDATE enlaces SET clicks='$nu' where id='$id'";

//Ejecutamos el query
mysql_query($consulta);


mysql_close($db); 


?>

<? echo "enlace: ".$link;?>
Este funciona sin problemas, pero si lo subo a mi host, que tiene también la versión PHP5, da el error:

"Problema:"
Que si nos fijamos hace referencia al mysql_fetch_array de cuando sacamos los datos.

Alguien podría ayudarme?

Muchas gracias.
  #2 (permalink)  
Antiguo 22/04/2009, 03:49
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema consulta MySQL con PHP

Podrias mostrar el Error... prueba con mysql_fetch_assoc...
  #3 (permalink)  
Antiguo 22/04/2009, 04:11
 
Fecha de Ingreso: septiembre-2007
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Problema consulta MySQL con PHP

No se si has puesto todo el código. Pero me parece que lo único que te pasa es que no tienes ningún valor en $id.

Código PHP:
$sql "SELECT * FROM enlaces WHERE id='$id'"
Espero que sea eso.
  #4 (permalink)  
Antiguo 22/04/2009, 06:43
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema consulta MySQL con PHP

el $id es el valor que se muestra mediante GET en el header de la página. El problema es que la página está correctamente o al menos eso parece en modo local, pero al subirlo al servidor me sale simplemente en blanco.
  #5 (permalink)  
Antiguo 22/04/2009, 07:07
 
Fecha de Ingreso: septiembre-2007
Mensajes: 29
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Problema consulta MySQL con PHP

mira si php tiene activado short_tags. Pruebalo poniendo al principio <?php en lugar de <?
  #6 (permalink)  
Antiguo 22/04/2009, 07:47
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema consulta MySQL con PHP

sí, lo tiene activado. Además por lo contrario supongo que simplemente no leería el Código en PHP, pero el problema es que sí que lo lee, por eso sale lo de:

"Problema:" y en blanco, sin mostrar ningún error mediante la variable mysql_error()

P.D: También he probado como dice "machoman112233", sustituir mysql_fetch_array por mysql_fetch_assoc y sigue pasando lo mismo :S
  #7 (permalink)  
Antiguo 22/04/2009, 08:02
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Problema consulta MySQL con PHP

Hola tid32

Seguramente le estás pasando un resource vacio a mysql_fetch_array().

Saludos.
  #8 (permalink)  
Antiguo 22/04/2009, 08:11
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema consulta MySQL con PHP

Si te refieres a que no hay nada en la base de datos, no es así, está subido exactamente igual que en localhost y eso es lo que más me extraña, si está igual de configurado, porqué da este problema :S
  #9 (permalink)  
Antiguo 22/04/2009, 08:26
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema consulta MySQL con PHP

Bueno, para verificar que no era un problema de la base de datos, he realizado otro tipo de consulta similar a esta:
Código PHP:
<?
$servidor
="localhost";
$database="pinicial_principal";
$tabla="enlaces";
$usuario="root";
$pass="root";
$db mysql_connect($servidor$usuario$pass);
mysql_select_db("pinicial_principal");
$leer mysql_query ("SELECT * FROM enlaces WHERE link= 'http://unapaginademibasededatos'"$db);
$row mysql_fetch_array($leer);
$link $row["link"];

mysql_close($db);
echo 
$link;
?>
y así efectivamente me funciona, me muestra la página de mi base de datos. Es en el momento en el que solicito que me muestre la página que pertenece a la ID que está en el Header es decir, es en el momento en el que sustituyo esto:
Código PHP:
$leer mysql_query ("SELECT * FROM enlaces WHERE link= 'http://unapaginademibasededatos'"$db); 
Por esto:
Código PHP:
$leer mysql_query ("SELECT * FROM enlaces WHERE id= '$id'"$db); 
A ver si me podéis ayudar por favor.

Muchas gracias.

EDITO: Para que os hagais una idea, cuando accedes a la página http://mihost/enlace.php?id=1 en teoría me tiene que mostrar la página de la base de datos que pertenece a esta ID.

Última edición por tld32; 22/04/2009 a las 08:29 Razón: aclaración.
  #10 (permalink)  
Antiguo 22/04/2009, 08:27
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Problema consulta MySQL con PHP

Yo creo que sí, el resource esta vacío, pero no porque sean distintas bases de datos, si no que en el servidor seguramente tenés register_global = off entonces hay que usar $_GET['id'] y no simplemente $id
  #11 (permalink)  
Antiguo 22/04/2009, 08:53
 
Fecha de Ingreso: abril-2009
Ubicación: Cuba
Mensajes: 54
Antigüedad: 15 años
Puntos: 2
De acuerdo Respuesta: Problema consulta MySQL con PHP

Tu problema creo que es bastante simple. Tiene que ver con lo que dice lisandro Arg

$id a que es igual??? Tú dices que está en el header de la dirección, pero tienes que asignarselo a $id, es decir lo único que te falta es poner antes de llamar a la consulta con mysql_query asignarle a $id el id del $_GET.
quedaría así.

Código:
$id = $GET['id'];
$leer = mysql_query ("SELECT * FROM enlaces WHERE id= '$id'", $db);
dime si te funcionó,.

Saludos.
  #12 (permalink)  
Antiguo 22/04/2009, 08:54
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema consulta MySQL con PHP

Oh sí! Lisandro, Muchísimas gracias por tu ayuda, era simplemente que el register_global estaba off, lo he cambiado a ON y ya funciona a la perfección!!

Enserio, Muchas gracias por tu ayuda y la de todos los que me han contestado.

Ash_AM, simplemente es lo que dijo Lisandro, aunque tu método seguramente también funcionaría.
GRACIAS.
  #13 (permalink)  
Antiguo 22/04/2009, 09:12
 
Fecha de Ingreso: abril-2009
Ubicación: Cuba
Mensajes: 54
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema consulta MySQL con PHP

Si, yo se que register global lo tenías desactivado. en off.
De echo el PHP por defecto lo trae desactivado, lo cual es muy recomendable por problemas de seguridad.

Y opr experiencia, te recomiendo que no lo pongas en on, que lo dejes en off y cada vez que quieres obtener una variable ya sea por GET o POST simplemente le asignes el valor a otra variable mediante las variables $_GET y $_POST.

Saludos.

Última edición por Ash_AM; 22/04/2009 a las 09:29
  #14 (permalink)  
Antiguo 22/04/2009, 09:36
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Problema consulta MySQL con PHP

Que quede claro que no aconsejé cambiar el register global a ON, Ash_AM y yo te estamos diciendo exactamente lo mismo, usa $_GET !

Saludos.
  #15 (permalink)  
Antiguo 22/04/2009, 12:04
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema consulta MySQL con PHP

Entonces, si pongo el register global a off el método que me ha indicado Ash_AM no me funciona, me sigue dando el mismo problema :S

Qué creeis que puede pasar si lo tengo en ON?

Última edición por tld32; 22/04/2009 a las 12:09
  #16 (permalink)  
Antiguo 22/04/2009, 12:15
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Problema consulta MySQL con PHP

No funciona porque en el ejemplo esta $GET['id'] y es $_GET['id']
  #17 (permalink)  
Antiguo 22/04/2009, 14:16
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema consulta MySQL con PHP

cierto jejeje. Bueno, Solución:
Cita:
$id = $_GET['id'];
$leer = mysql_query ("SELECT * FROM enlaces WHERE id= '$id'", $db);
Gracias por vuestra ayuda. ;)
  #18 (permalink)  
Antiguo 22/04/2009, 14:18
f0n
 
Fecha de Ingreso: abril-2009
Mensajes: 54
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema consulta MySQL con PHP

pon esto antes anda...

Cita:
<?php
if(!is_numeric($_GET['id'])) $id = 1;
else
$id = $_GET['id'];
?>
Así te aseguras de que otros no se puedan echar alguna que otra risa.

Un saludo
  #19 (permalink)  
Antiguo 22/04/2009, 15:05
 
Fecha de Ingreso: julio-2008
Mensajes: 201
Antigüedad: 15 años, 9 meses
Puntos: 11
Respuesta: Problema consulta MySQL con PHP

vaya, pero realmente que mal podría hacer si no solicito que sea únicamente un número?
  #20 (permalink)  
Antiguo 22/04/2009, 15:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Problema consulta MySQL con PHP

Se puede hacer un UNION ALL y dependiendo de los permisos que tenga el usuario que conecta a la base de datos obtener datos sensibles de la base de datos "mysql" (que es la que tiene el control interno de usuarios). Entre otras cosas.

Es mejor prevenir y filtrar los datos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 11:56.