Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

error en la busqueda

Estas en el tema de error en la busqueda en el foro de Bases de Datos General en Foros del Web. Hola: He copiado el paginador de la pagina forosdelweb y al usarlo me sale la primera pagina bien pero en la segunda ya me da ...
  #1 (permalink)  
Antiguo 28/06/2010, 04:36
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
error en la busqueda

Hola: He copiado el paginador de la pagina forosdelweb y al usarlo me sale la primera pagina bien pero en la segunda ya me da el siguiente error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource en la linea marcada en rojo en el script

El script es el mismo de la pagina: forosdelweb

<?php
# Funcion para conectar a la base de datos
function conectar($host,$user,$pass,$db){
$link = @mysql_connect($host,$user,$pass) or die("Error Conectando a la Base de datos");
@mysql_select_db($db,$link) or die("Error Seleccionando base de datos.");
return $link;
}

$host = "localhost";
$user = "root";
$pass = "";
$db = "base de datos";
# Se crea la variable $link que es para identificar la coneccion
# a la base de datos
$link = conectar($host,$user,$pass,$db);
$Nombre=$_POST['Nombre'];
$Telefono=$_POST['Telefono'];
$localidad=$_POST['localidad'];

# aqui colocan la tabla que se utilizara para
# extraer los registros y paginarlos
$tabla = "mitabla";

# aqui se extrae la cantidad de registros totales
$rsC = mysql_query("Select count(*) from ".$tabla);
$resultC = mysql_fetch_array($rsC);
$count = $resultC[0];

# Aqui se pone la cantidad de registros por pagina
# que se quieren mostrar
$hasta = 2;

if($pag==""){
$desde = 0;
$pag = 1;
}
else{
$pag = $_POST["pag"];
$pagS = $pag - 1;
$desde = $hasta * $pagS;
}

$resultados = mysql_query("SELECT * FROM ".$tabla." WHERE localidad='$localidad' limit $desde,$hasta");
if($count!=0){

while($articulo=mysql_fetch_array($resultados)){
echo "<tr height=100%>";
echo $articulo["localidad"]."<br>\n";
echo $articulo["Nombre"]."<br>\n";
echo $result["Telefono"]."<br>\n"; ";
}
}
else{
echo "No tenemos registros.";
}
mysql_close($link);

# aqui se llama a la funcion que muestra los links por paginas
# la variable $extra_variables es para anexar mas variables al url
# si es necesario para los querys que hagan.
# Solo se debe concatenar los datos nombre1=valor1&nombre2=value2
# NOTA: puede ubicar en cualquier parte de su codigo esta funcion
# para que aparesca dentro de la celda que desee.
# link totales es una variable al ser definida le dices a la funcion
# cuantos links quieres que aparescan por pantalla ya que si tienes
# 100 paginas no deberas ver los 100 links y solo muestres los necesarios
$link_totales = 2;
# se llama la funcion paginar
# los links si tiene un css podran tomar la estructura y color que le pongas
## Inicia Paginador
paginar($count,$hasta,$pag,$link_totales,$extra_va riables);

# Funcion paginar
# Inicia
function paginar($count,$hasta,$pag,$link_totales,$extra_va riables){
if($link_totales==1)$link_totales=2;
$links = $count / $hasta;
$arriba = $link_totales - 2;
$abajo = $pag - 1;
if($abajo==0)$abajo = 1;
$temp_r = $links - $pag;
if($temp_r>=$arriba){
$link_break = $pag + $arriba;
}
else{
$link_break = $links;
$abajo = $pag + 1 - $arriba;
if($pag==$links-1)$abajo = $pag - $arriba;
if($pag==$links)$abajo = $pag - 1 - $arriba;
}

if($pag==1)$link_break = $link_totales;
if($abajo==0)$abajo=1;
if(strlen($extra_variables)!=0) $extra_variables = "&".$extra_variables;

if($pag==1){
$anterior = 1;
}
else{
$anterior = $pag - 1;
}
if($pag!=1){
echo "<a href=".$_SERVER['PHP_SELF']."?pag=".$anterior.$extra_variables."><< Anterior | </a>";
}

for($i=$abajo;$i<=$links;$i++){
if($link_break<$i){
break;
}
else{
if($pag==$i){
echo $i." | ";
}
else{
echo "<a href='".$_SERVER['PHP_SELF']."?pag=".$i.$extra_variables."'>";
echo $i;
echo " | </a>";
}
}
}
if($pag==$links){
$siguiente = $links;
}
else{
$siguiente = $pag + 1;
}
if($pag!=$links){
echo "<a href=".$_SERVER['PHP_SELF']."?pag=".$siguiente.$extra_variables.">Siguient e >></a>";
}
}
?>


¿ Me podeis ayudar ?
Gracias
  #2 (permalink)  
Antiguo 28/06/2010, 05:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error en la busqueda

Es muy probable (lo más probable) que el error lo tengas en el manejo de las variables $tabla, $localidad, $desde o $hasta, y que alguna de ellas esté entrando vacía o incorrectamente cargada, de algún modo.
Si fuese simplemente la sintaxis, te fallaría incluso en la primera ejecución. Pero como te falla en la segunda es dable suponer que entre ambas ejecuciones las variables sufrieron algún cambio, y este cambio es incorrecto, sea porque falte el valor o porque el valor sea incorrecto.
Realiza un debuggeo manual del contenido de las variables ANTES de que se realice la consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 28/06/2010, 10:18
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: error en la busqueda

Gracias por responder.
El error debe estar en las variables $desde o $hasta. Las he marcado y en la primera pagina, que la da bien, el valor de las dos variables es 0 y 2; pero al darle a "siguiente", el valor que deberia ser 3 y 5 ,sale -2 y 2
He intentado ver donde está pero es superior a mis conocimientos, me pierdo, debe verlo alguien que sea docto en la materia, no un aprendiz como yo.
Si alguien puede ayudarme, se lo agradecería mucho.
  #4 (permalink)  
Antiguo 28/06/2010, 10:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error en la busqueda

Mmmm...
Creo que sería mejor que pasaras el problema al Foro de PHP, porque es allí donde están los expertos en eso...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 28/06/2010, 11:53
Avatar de roxhp  
Fecha de Ingreso: mayo-2010
Ubicación: Veracruz
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 3
Respuesta: error en la busqueda

Hola:

Oye una observacion siempre checa los valores que pasas en tus variables imprimiendolas en pantalla con un echo para que veas mejor donde estan tus errores ya cuando no las utilices los borras.

Checando este fragmento de codigo...
Código PHP:

$hasta 
2;

if(
$pag==""){
$desde 0;
$pag 1
}
else{
$pag $_POST["pag"];
$pagS $pag 1// aqui si pagina no existe te asignara un valor de -1
$desde $hasta $pagS;  // aqui igual si no existe te asignara -2
}

//el query que te estaria ejecutando seria:
$resultados mysql_query("SELECT * FROM mitabla WHERE localidad='$localidad' limit -2,2"); 
Checa posiblemente eso sea lo que te esta marcando error en tu consulta.

Etiquetas: busquedas
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 10:14.