Foros del Web » Programando para Internet » PHP »

No me toma la variable

Estas en el tema de No me toma la variable en el foro de PHP en Foros del Web. Hola amigos. Tengo un problema gravísimo. Son 3 archivos: 1) comun.php, 2) general.php y 3) rank.php 1) En una pagina, defino la variable $tabla y ...
  #1 (permalink)  
Antiguo 19/12/2009, 07:58
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
No me toma la variable

Hola amigos. Tengo un problema gravísimo. Son 3 archivos: 1) comun.php, 2) general.php y 3) rank.php

1) En una pagina, defino la variable $tabla y luego llamo a un archivo general:

comun.php
Cita:
$tabla=accion;
include_once("rank/general.php");
2) En el archivo general.php, llamo a la tabla de la base de datos (en este caso, accion). $query cuenta registros de la tabla $tabla (o sea accion).

general.php
Cita:
<?php
include_once("rank.php"); //Esto es para abrir la base de datos y contar votos.
$link=conectar();
mysql_query ("SET NAMES 'utf8'");
$query = "SELECT count(id) AS Total from $tabla WHERE LENGTH(descripcion)>(0)";
..............
..............
Hasta aquí no hay ningun problema: El valor de $tabla=accion es mantenido en el archivo general.php

3) En la parte anterior se incluye un archivo : rank.php y sigo con el valor de la variable $tabla=accion. El problema es que NO me toma el valor de la variable. $tabla=NULL o algo parecido:

rank.php: LINEA 50
Cita:
$result = mysql_query("UPDATE $tabla SET votos= $votos, media= $media WHERE id= $id",$link);
En este archivo rank.php la variable $tabla no tiene ningun valor y me da un error en el sitio.
Mi pregunta es porque la variable pierde el valor y no me actualiza la $tabla (que sería "accion" en este caso). Me tira el siguiente error:
Cita:
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\misitio\rank\rank.php on line 50
Bueno muchísimas gracias.
  #2 (permalink)  
Antiguo 19/12/2009, 08:34
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: No me toma la variable

O sea, en el mismo archivo tenes algo asi vos?

Código PHP:
<?php
$tabla
='accion';
include_once(
"rank/general.php");

include_once(
"rank.php"); //Esto es para abrir la base de datos y contar votos.
$link=conectar(); 

mysql_query ("SET NAMES 'utf8'");

#supuestamente aca no te llega el valor 'accion' ???
$query "SELECT count(id) AS Total from $tabla WHERE LENGTH(descripcion)>(0)"

...........
...........
...........

?>
Si este es exactamente el codigo que tenes, te faltan las comillas simples en $tabla en la consulta.

Si no, estas afectando la variable $tabla en alguno de tus archivos
  #3 (permalink)  
Antiguo 19/12/2009, 08:58
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No me toma la variable

Gracias jackson, lamento decirte que nada que ver. El error persiste. Pienso que hay que usar variables de sesión, pero no se bien como. Sabes algo?
  #4 (permalink)  
Antiguo 19/12/2009, 09:02
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: No me toma la variable

Variables de sesion? Para que??
Porque no pones los archivos rank.php y general.php para ver que tienen?

A que te referis con "nada que ver"? No te sirvio el ejemplo que te di, o no entendi para nada lo que necesitas?
  #5 (permalink)  
Antiguo 19/12/2009, 09:10
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No me toma la variable

Le agregue las comillas simples y mantiene el error. El tema es que la variable $tabla=accion pierde el valor en el archivo rank.php. Y si la pierde, tendría que usar una variable de sección para que mantenga el valor durante la navegación, al menos que cambie de página y nuevamente la variable $tabla tome otro valor, que igualmente deberá ser mantenido.
  #6 (permalink)  
Antiguo 19/12/2009, 09:11
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No me toma la variable

La inclusion del archivo rank.php ya la hago dentro del archivo general.php, no entiendo porque lo pones 2 veces en el archivo comun.php
  #7 (permalink)  
Antiguo 19/12/2009, 09:19
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: No me toma la variable

Cita:
Iniciado por principiantedelweb Ver Mensaje
La inclusion del archivo rank.php ya la hago dentro del archivo general.php, no entiendo porque lo pones 2 veces en el archivo comun.php
Cita:
Iniciado por jackson666 Ver Mensaje
O sea, en el mismo archivo tenes algo asi vos?
[...]
Fue una pregunta lo que hice, si estaba mal era para que corrigieras

Ademas te dije (se ve q ni lo leiste)

Cita:
Iniciado por jackson666 Ver Mensaje
[...]
Si no, estas afectando la variable $tabla en alguno de tus archivos
Si estas afectando la variable, pone los include antes que la variable, y listo
  #8 (permalink)  
Antiguo 19/12/2009, 09:38
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: No me toma la variable

Cita:
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\misitio\rank\rank.php on line 50
para corregir tu problemas necesitasmos que subas los codigos de rank.php y que marques cual es la linea 50.
Saludos
  #9 (permalink)  
Antiguo 19/12/2009, 09:55
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No me toma la variable

LINEA 50:

Cita:
if($row[0]==""){
$result = mysql_query("SELECT votos,media FROM $tabla WHERE id =$id",$link);
50 $row = mysql_fetch_row($result);
...
Miren, yo reemplacé manualmente el valor de $tabla por una de las tablas de mi base de datos y anduvo perfectamente bien. COnclusion $tabla no tiene valor.

En síntesis:
Archivo 1: Defino $tabla="accion" y llamo al archivo 2 (con un include())
Archivo 2: Llamo al archivo 3 (aquí se mantiene el valor de $tabla="accion")
Archivo 3: Aquí $tabla pierde su valor.

Mi pregunta es esa, como hago para que mantenga el valor.
  #10 (permalink)  
Antiguo 19/12/2009, 10:06
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: No me toma la variable

El error esta en las comillas....

Código SQL:
Ver original
  1. SELECT votos,media FROM '$tabla' WHERE id ='$id';
  #11 (permalink)  
Antiguo 19/12/2009, 10:16
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No me toma la variable

Creo que no le puedes poner comilla al valor de una variable. No es un texto, es una variable PHP
  #12 (permalink)  
Antiguo 19/12/2009, 10:18
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: No me toma la variable

Cita:
Iniciado por principiantedelweb Ver Mensaje
Creo que no le puedes poner comilla al valor de una variable. No es un texto, es una variable PHP
Ok, no se lo pongas.
  #13 (permalink)  
Antiguo 19/12/2009, 10:26
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No me toma la variable

Bien, entonces: ¿Como hago para que la variable $tablas mantenga el valor cuando está ejecutando el archivo rank.php? Gracias
  #14 (permalink)  
Antiguo 19/12/2009, 12:15
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No me toma la variable

Por favor, alguien podría ayudarme? Muchas Gracias.
  #15 (permalink)  
Antiguo 19/12/2009, 19:51
 
Fecha de Ingreso: octubre-2009
Ubicación: Catamarca
Mensajes: 91
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: No me toma la variable

Ponle comillas como dice jackson, luego de eso rebiza todos tus .php para ver todo lo que te podrias haber ahorrado!
  #16 (permalink)  
Antiguo 19/12/2009, 20:32
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No me toma la variable

Le puse comillas ('$tabla' en vez de $tabla)

Cita:
$query = "SELECT count(id) AS Total from '$tabla' WHERE LENGTH(descripcion)>(0)";
$row2=mysql_fetch_assoc(mysql_query($query));

y me tira error inmediatamente:
Cita:
mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\misitio\rank\site.php on line 19
No se bien porque insisten que le ponga comillas a una variable, ya que siempre me tira el error anterior.
  #17 (permalink)  
Antiguo 21/12/2009, 08:46
 
Fecha de Ingreso: octubre-2009
Ubicación: Catamarca
Mensajes: 91
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: No me toma la variable

Bueno eso quiere decir que el error que tenias antes no existe mas pero ahora deberias ir a la linea 19 del archivo site.php y parece que en esa linea tenes una consulta sql que tiene el mismo problema.
  #18 (permalink)  
Antiguo 21/12/2009, 10:13
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: No me toma la variable

Claro joacoff, pero no es tan así. Si yo cambio $tabla por el nombre de cualquier tabla de mi base de datos(por ej., accion), entonces, el script funciona perfectamente.
  #19 (permalink)  
Antiguo 21/12/2009, 14:45
 
Fecha de Ingreso: octubre-2009
Ubicación: Catamarca
Mensajes: 91
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: No me toma la variable

copia aqui la linea 19 del archivo site.php
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 19:12.