Foros del Web » Programando para Internet » PHP »

Problemas con consultas en php

Estas en el tema de Problemas con consultas en php en el foro de PHP en Foros del Web. Tengo un problema con 2 consultas que realizo a mi bd, la primera la hace bien, pero la 2ª me da error, este es el ...
  #1 (permalink)  
Antiguo 01/05/2003, 06:28
Avatar de Pandragon  
Fecha de Ingreso: abril-2003
Ubicación: Alicante - España
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
Problemas con consultas en php

Tengo un problema con 2 consultas que realizo a mi bd, la primera la hace bien, pero la 2ª me da error, este es el codigo:


Código PHP:
<?php $tabla=$_GET['tabla']?>

<html>
<head>
<title><?php echo "listado de: ".$tabla ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php require_once('Connections/modulodivx.php'); ?>
<?php

mysql_select_db
($database_modulodivx$modulodivx);
$maxRows_modulodivx 10;
$pageNum_modulodivx 0;
if (isset(
$HTTP_GET_VARS['pageNum_modulodivx'])) {
  
$pageNum_modulodivx $HTTP_GET_VARS['pageNum_modulodivx'];
}
$startRow_modulodivx $pageNum_modulodivx $maxRows_modulodivx;

mysql_select_db($database_modulodivx$modulodivx);
$query_modulodivx "SELECT * FROM ".$tabla." order by descargas desc";
$query_limit_modulodivx sprintf("%s LIMIT %d, %d"$query_modulodivx$startRow_modulodivx$maxRows_modulodivx);
$modulodivx mysql_query($query_limit_modulodivx$modulodivx) or die(mysql_error());
$row_modulodivx mysql_fetch_assoc($modulodivx);

if (isset(
$HTTP_GET_VARS['totalRows_modulodivx'])) {
  
$totalRows_modulodivx $HTTP_GET_VARS['totalRows_modulodivx'];
} else {
  
$all_modulodivx mysql_query($query_modulodivx);
  
$totalRows_modulodivx mysql_num_rows($all_modulodivx);
}
$totalPages_modulodivx ceil($totalRows_modulodivx/$maxRows_modulodivx)-1;

$maxRows_modulodivx2 10;
$pageNum_modulodivx2 0;
if (isset(
$HTTP_GET_VARS['pageNum_modulodivx2'])) {
  
$pageNum_modulodivx2 $HTTP_GET_VARS['pageNum_modulodivx2'];
}
$startRow_modulodivx2 $pageNum_modulodivx2 $maxRows_modulodivx2;

mysql_select_db($database_modulodivx$modulodivx);
$query_modulodivx2 "SELECT * FROM ".$tabla." ORDER BY fecha desc";
$query_limit_modulodivx2 sprintf("%s LIMIT %d, %d"$query_modulodivx2$startRow_modulodivx2$maxRows_modulodivx2);
$modulodivx2 mysql_query($query_limit_modulodivx2$modulodivx) or die(mysql_error());
$row_modulodivx2 mysql_fetch_assoc($modulodivx2);

if (isset(
$HTTP_GET_VARS['totalRows_modulodivx2'])) {
  
$totalRows_modulodivx2 $HTTP_GET_VARS['totalRows_modulodivx2'];
} else {
  
$all_modulodivx2 mysql_query($query_modulodivx2);
  
$totalRows_modulodivx2 mysql_num_rows($all_modulodivx2);
}
$totalPages_modulodivx2 ceil($totalRows_modulodivx2/$maxRows_modulodivx2)-1;

$maxRows_modulodivx2 10;
$pageNum_modulodivx2 0;
if (isset(
$HTTP_GET_VARS['pageNum_modulodivx2'])) {
  
$pageNum_modulodivx2 $HTTP_GET_VARS['pageNum_modulodivx2'];
}
$startRow_modulodivx2 $pageNum_modulodivx2 $maxRows_modulodivx2;
?>
Como podeis ver las dos consultas son iguales, unicamente cambian las variables y el ORDER BY, pero en esta;

Código PHP:
mysql_select_db($database_modulodivx$modulodivx);
$query_modulodivx2 "SELECT * FROM ".$tabla." ORDER BY fecha desc";
$query_limit_modulodivx2 sprintf("%s LIMIT %d, %d"$query_modulodivx2$startRow_modulodivx2$maxRows_modulodivx2);
$modulodivx2 mysql_query($query_limit_modulodivx2$modulodivx) or die(mysql_error());
$row_modulodivx2 mysql_fetch_assoc($modulodivx2); 
Me da el siguiente error:

Warning: mysql_select_db(): supplied resource is not a valid MySQL-Link resource
Warning: mysql_query(): supplied resource is not a valid MySQL-Link resource

Me estoy volviendo loco y no lo entiendo.

Un saludo
  #2 (permalink)  
Antiguo 01/05/2003, 13:00
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona - España
Mensajes: 270
Antigüedad: 21 años, 5 meses
Puntos: 0
Creo que el problema está en que seleccionas 2 veces la misma base de datos y no cierras la consulta entre las dos selecciones.
  #3 (permalink)  
Antiguo 01/05/2003, 13:09
Avatar de Pandragon  
Fecha de Ingreso: abril-2003
Ubicación: Alicante - España
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
Ya lo he probado, separe las consulltas en archivos y los introduje en la consulta principal un require antes de que cada tabla e introduci un:

Código PHP:
  mysql_free_result($modulodivx); 
Despues de realizar la tabla de la primera consulta, pero me sigue dando el mismo error.
  #4 (permalink)  
Antiguo 01/05/2003, 13:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El segundo:

mysql_select_db($database_modulodivx, $modulodivx);

No tiene sentido .. pues estas intentando seleccionar la misma BD en la misma conexión que ya tienes hecha ...

La técnica de trabajar con una BD es:

* Conectas (mysql_connect() ...) a tu BD
* Seleccionas la BD que vas a trabajar. (mysql_select_db() ...)
* Haces consulta(s) mysql_query() ... Tantas como quieras ... Si usas diferente $variable para asiganar el resultado de mysql_query es bueno que LIBERES memoría de la anterior consulta realizada via mysql_free_result($variable) ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 01/05/2003, 13:31
Avatar de Pandragon  
Fecha de Ingreso: abril-2003
Ubicación: Alicante - España
Mensajes: 66
Antigüedad: 21 años
Puntos: 0
Eliminando el segundo mysql_select_db soluciono el primer error, no obstante sigo teniendo el problema del segundo error, no me deja ejecutar el mysql_query. y no lo entiendo.

Un saludo
  #6 (permalink)  
Antiguo 01/05/2003, 16:37
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Tu problema es la variable $modulodivx, que supongo que el include() tiene el valor devuelto por mysql_connect(). Pero en tu primera consulta haces:
Código PHP:
$modulodivx mysql_query($query_limit_modulodivx$modulodivx) or die(mysql_error()); 
con lo que pisas el valor y ya no es el valor de la conexion (link) a mysql sino el resultado de una consulta.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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:05.