Dos páginas iguales, en una error, en otra no...

  • Autor Autor Pcx89
  • Fecha de inicio Fecha de inicio
P

Pcx89

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola gente!, estoy bastante desorientado. Me encuentro probando una web y me encuentro con lo siguiente:

En una página tengo este código:
PHP:
						<?php
						include('config.php');
						$page = (int) (!isset($_GET['p'])) ? 1 : $_GET['p'];
						# sql query
						$sql = "SELECT * FROM tabla where DATE BETWEEN '2015-05-16' AND '2015-06-15' and rubro='1'";
						# find out query stat point
						$start = ($page * $limit) - $limit;
						# query for page navigation
						if( mysql_num_rows(mysql_query($sql)) > ($page * $limit) ){
						$next = ++$page;
						}
						$query = mysql_query( $sql . " LIMIT {$start}, {$limit}");
						if (mysql_num_rows($query) < 1) {
							echo"<script language='javascript'>window.location='no.php'</script>";
						exit();
						}
						?>
						
						<?php while ($row = mysql_fetch_array($query)): ?>
							<div class="item" id="item-<?php echo $row['id']?>">
								<h2>									
									<span class="firstname"><?php echo $row['first_name'].' - '?></span>
									<span class="lastname"><?php echo $row['last_name'].' - '?></span>
									<span class="lastname2"><?php echo $row['last_name2'].'.'?></span>
								</h2>
									<span class="film_info"><?php echo $row['film_info']?></span>
							</div>
									<?php endwhile?>

									<!--page navigation-->
									<?php if (isset($next)): ?>
						<div class="nav">
							<a href='archivo1.php?p=<?php echo $next?>'>Next</a>
						</div>
						<?php endif?>

y en la otra:
PHP:
						<?php
						include('config.php');
						$page = (int) (!isset($_GET['p'])) ? 1 : $_GET['p'];
						# sql query
						$sql = "SELECT * FROM tabla-2 where DATE BETWEEN '2015-07-06' AND '2015-06-06' and rubro='1'";
						# find out query stat point
						$start = ($page * $limit) - $limit;
						# query for page navigation
						if( mysql_num_rows(mysql_query($sql)) > ($page * $limit) ){ <!--Esta sería la línea 28 XD-->
						$next = ++$page;
						}
						$query = mysql_query( $sql . " LIMIT {$start}, {$limit}");
						if (mysql_num_rows($query) < 1) {
							echo"<script language='javascript'>window.location='no.php'</script>";
						exit();
						}
						?>
						
						<?php while ($row = mysql_fetch_array($query)): ?>
							<div class="item" id="item-<?php echo $row['id']?>">
								<h2>									
									<span class="firstname"><?php echo $row['first_name'].' - '?></span>
									<span class="lastname"><?php echo $row['last_name'].' - '?></span>
									<span class="lastname2"><?php echo $row['last_name2'].'.'?></span>
								</h2>
									<span class="film_info"><?php echo $row['film_info']?></span>
							</div>
									<?php endwhile?>

									<!--page navigation-->
									<?php if (isset($next)): ?>
						<div class="nav">
							<a href='archivo2.php?p=<?php echo $next?>'>Next</a>
						</div>
						<?php endif?>

Como ven lo único que cambia es la tabla de la consulta.
Lo curioso de todo esto es que el primer archivo lo ejecuta sin problemas, pero al ejecutar el segundo me da error:
Insertar CODE, HTML o PHP:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean give in
D:\xampp\htdocs\sitio\archivo2.php on line 28

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean give in
D:\xampp\htdocs\sitio\archivo2.php on line 32

Es muy raro que solo en un archivo salga el error :/

Por las dudas, el archivo config.php es:
PHP:
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','');
define('DB_NAME','bdx');
$limit = 10;

$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('Could not connect to MySQL DB ') . mysql_error();
$db = mysql_select_db(DB_NAME, $link);
?>

Gracias por su atención! :encouragement:
 
te dice que mysql_num_rows tiene que obtener un valor, y no esta obteniendo eso...de seguro esta obteniendo FALSE... tendrias que ver si tu consulta realmente esta bien:
PHP:
SELECT * FROM tabla-2 where DATE BETWEEN '2015-07-06' AND '2015-06-06' and rubro='1'
mete esa consulta en phpmyadmin a ver que error te da o si te regresa algo...
 
te dice que mysql_num_rows tiene que obtener un valor, y no esta obteniendo eso...de seguro esta obteniendo FALSE... tendrias que ver si tu consulta realmente esta bien:
PHP:
SELECT * FROM tabla-2 where DATE BETWEEN '2015-07-06' AND '2015-06-06' and rubro='1'
mete esa consulta en phpmyadmin a ver que error te da o si te regresa algo...

posiblemente el error en el intervalo, y no recuerdo si el nombre de tabla permite el guion( - )
 
sinceramente es por el phpadmin y los ' yo pongo " para que sea mejor suerte.
 
te dice que mysql_num_rows tiene que obtener un valor, y no esta obteniendo eso...de seguro esta obteniendo FALSE... tendrias que ver si tu consulta realmente esta bien:
PHP:
SELECT * FROM tabla-2 where DATE BETWEEN '2015-07-06' AND '2015-06-06' and rubro='1'
mete esa consulta en phpmyadmin a ver que error te da o si te regresa algo...

posiblemente el error en el intervalo, y no recuerdo si el nombre de tabla permite el guion( - )

sinceramente es por el phpadmin y los ' yo pongo " para que sea mejor suerte.

¡Gracias por responder!. El problema resultó ser el guión en el nombre de la tabla XD
 
para la próxima cuando ejecutes un mysql_query en php y quieras tener una devolución puntual de cual es el error puedes agregar al final del query " or die("error : ".mysql_error ());
esto te dira el error mysql igual que se muestra en la consola o en phpmyadmin
ej>
Insertar CODE, HTML o PHP:
$query = mysql_query( $sql . " LIMIT {$start}, {$limit}") or die("error".mysql_error());
 
XD yo nunca suelo usar guiones en las tablas pero suerte que lei esto ahora se que no debo 😀
 
Atrás
Arriba