Foros del Web » Programando para Internet » PHP »

Problema con base de datos

Estas en el tema de Problema con base de datos en el foro de PHP en Foros del Web. Hola. De antemano muchas gracias por colabor con nosotros en nuestras dudas. mi pregunta es, tengo un escript que es un buscador que me funciona ...
  #1 (permalink)  
Antiguo 23/04/2010, 11:52
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años, 2 meses
Puntos: 0
Problema con base de datos

Hola.

De antemano muchas gracias por colabor con nosotros en nuestras dudas.

mi pregunta es, tengo un escript que es un buscador que me funciona en mi pc con servidor apache muy bien, pero cuando lo subi al sitio que es un hostin en linux con cpanel empexaron los problemas, cre la base de datos y todo me sale este error:



Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/usrr226/public_html/casarouter.com/buscador.php on line 120
(sin resultados)
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/usrr226/public_html/casarouter.com/buscador.php on line 145

aca tambien te dejo el codigo de (buscador) que es a lo que se refiere los errores

la linea 120

$total_registros = mysql_num_rows($resultados);

la linea 145

mysql_free_result($resultados);

este es el script buscador completo

<script src="openimagen.js" type="text/javascript"></script>
<script src="raking.js" type="text/javascript"></script>
<script language="javascript">
var lasdId="";
function expandir(capa){
if (lasdId!=""){
contraer(lasdId);
}
obj=document.getElementById('v'+capa);
obj.style.display='block'
lasdId=capa;
document.getElementById('b'+capa).innerHTML="<a href=javascript:contraer('" + capa + "');><img src='imagenes/contraer.jpg' border='0'></a>";
}

function contraer(capa){
obj=document.getElementById('v'+capa);
obj.style.display='none'
lasdId='';
document.getElementById('b'+capa).innerHTML="<a href=javascript:expandir('" + capa + "');><img src='imagenes/expandir.jpg' border='0'></a>";
}
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function load_resultados(pagina,criterio){

divResultado = document.getElementById('paginador');
ajax=objetoAjax();
ajax.open("POST", "script.php",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==1) {
divResultado.innerHTML = "<img src='imagenes/loading.gif' />";
}
if (ajax.readyState==4) {
divResultado.innerHTML = ajax.responseText;
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("pagina=" + pagina + "&criterio=" + criterio)
//load_menu(2);
}
</script>
<style type="text/css">
.buscador{
background-color:#FFFFFF;
width:auto;
padding:5px;
margin-bottom:15px;
margin-left:15px;
margin-right:15px;
font-family:Geneva, Arial, Helvetica, sans-serif;
font-size:14px;
font-weight:bold;
height:25px;
color:#666666;
}
.resultado{ margin-left:15px; padding-right:15px; width:auto; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:12px; text-align:justify; margin-bottom:15px; }
.resultado .descripcion{
border:#6EA8E2 1px solid;
width:auto;
color:#999999;
height:100px;
padding: 10px;
}
.resultado .descripcion h1{ font-size:18px; color:#333333; font-weight:bold; margin:0; padding:0;}
.resultado .boton { margin-top:-1px; }

.PopBoxImageSmall{ border: none 0px #ffffff; cursor: url("imagenes/magplus.cur"), pointer; }
.PopBoxImageLarge{ border: solid 1px #999999; cursor: url("imagenes/magminus.cur"), pointer; }
.PopBoxImageShrink{ cursor: url("imagenes/magminus.cur"), pointer; }
.PopBoxImageLink{ cursor: pointer; }
.PopBoxImageMove{ border: none 0px #ffffff; cursor: pointer; }
#paginas{ text-align:center; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:13px; }
#paginas a{
text-decoration:none;
color:#000000;
}
#paginas a:hover{
text-decoration:none;
color:#666666;
}
</style>
<div class="buscador">
<form name="buscador" id="buscador">
Ingrese termino a buscar
<input type="text" name="txtbuscador" id="txtbuscador" />
<input type="button" name="cmbbuscador" id="cmbbuscador" value="Buscar" onclick="javascript:load_resultados('',txtbuscador .value)"/>
<div id="palres" style="padding-left:70px; font-family:Geneva, Arial, Helvetica, sans-serif; color:#00CC33; font-weight:normal;"></div>
</form>
</div>
<div id='paginador'>
<?
include('conectar.php');
$db = conectar();
$registros = 2;
if (!$pagina) {
$inicio = 0; $pagina = 1;
} else {
$inicio = ($pagina - 1) * $registros;
}

$resultados = mysql_query("SELECT id FROM articulos WHERE visible = 1");
$total_registros = mysql_num_rows($resultados);
$resultados = mysql_query("SELECT * FROM articulos WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio, $registros");
$total_paginas = ceil($total_registros / $registros);
if($total_registros) {
while($articulo=mysql_fetch_array($resultados)) {
?>
<div class="resultado">
<div class="descripcion">
<img src="imagenes/<? echo $articulo["imagen"];?>" width="166" height="99" align="right" hspace="10" class="PopBoxImageSmall" onClick="Pop(this,50,'PopBoxImageLarge');" title="CLIC para abir/cerrar imagen" pbCaption="<? echo '<b>'.$articulo["titulo"].'</b>'; ?>" pbshowpopbar="true" pbShowText="false">
<h1><? echo $articulo["titulo"]; ?></h1>
<font color='#666666'><? $bringdesc= html_entity_decode($articulo["descripcion"]); echo $bringdesc; ?></font>
<div id="v<? echo $articulo["id"]; ?>" style="display:none; height:auto;">
<? $bringdata= html_entity_decode($articulo["contenido"]); echo $bringdata; ?>
</div>
</div>
<div id="b<? echo $articulo["id"]; ?>" class="boton">
<a href="javascript:expandir('<? echo $articulo["id"]; ?>');"><img src="imagenes/expandir.jpg" border="0"></a>
</div>
</div>
<?
}
} else {
echo "<font color='darkgray'>(sin resultados)</font>";
}

mysql_free_result($resultados);
if($total_registros) {
echo "<div id='paginas'>";
if(($pagina - 1) > 0) {
echo "<a href=javascript:load_resultados(".($pagina-1).",'');>Anterior</a> ";
}else{
echo "<span style='color:#666666'>Anterior </span>";
}
for ($i=1; $i<=$total_paginas; $i++){
if ($pagina == $i) {
echo "<span style='font-size:19px; color:#666666;'><b>".$pagina."</b></span> ";
} else {
echo "<a href=javascript:load_resultados(".$i.",'');>$i</a> ";
}
}
if(($pagina + 1)<=$total_paginas) {
echo " <a href=javascript:load_resultados(".($pagina+1).",'' );>Siguiente</a>";
}else{
echo "<span style='color:#666666'> Siguiente</span>";
}
echo "</div>";
}
?>
<? mysql_close($db);?>
</div>

muchas gracias por su respuesta
  #2 (permalink)  
Antiguo 23/04/2010, 12:01
 
Fecha de Ingreso: marzo-2010
Mensajes: 12
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema con base de datos

Puedes hacer dos cosas

Verifica que la variable $resultados que le pasas a mysql_nums_rows sea un recurso valido
Revisa la conecion, el nombre de usuario y el password y eso.
  #3 (permalink)  
Antiguo 23/04/2010, 13:27
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Problema con base de datos

amigo te sugiero que el codigo que colocaste slo coloques en etiquetas PHP.. asi es mas comodo para todos leerlo.. :S la forma en la que lo puedes hacer es la siguiente.. aca abajo cuando vas a responder ppor ejemplo, hay un boton que dice avanzado, luego te va salir, como cuando publicastes este post.. y en las opciones del menu, donde sale, fuentes.. etc.. al final de la segunda linea de opciones..

estan 3 botones, cada uno para tipo de código que quieras publicar, CODE,(este me imagino que es general..) HTML , PHP.. cuando tengas q mostrar un codigo que sea muy largo o algo asi pues, pisa en ese boton.. y se te va a generar unas etiquetas.. pega el codigo entre esas etiquetas y te quedara dela siguiente forma:

yo lo hare para que veas la diferencia, peor ya lo sabes.. por que de esta forma.. es mas comodo para todos y mas facil para ayudarte.. muchos veran este post y al ver el coñazo de letras pues..:s se desaniman en leerlo.. por que cuesta..

tu codigo:
Código PHP:
<script src="openimagen.js" type="text/javascript"></script>
<script src="raking.js" type="text/javascript"></script>
<script language="javascript">
var lasdId="";
function expandir(capa){
if (lasdId!=""){
contraer(lasdId);
}
obj=document.getElementById('v'+capa);
obj.style.display='block'
lasdId=capa;
document.getElementById('b'+capa).innerHTML="<a href=javascript:contraer('" + capa + "');><img src='imagenes/contraer.jpg' border='0'></a>";
}

function contraer(capa){
obj=document.getElementById('v'+capa);
obj.style.display='none'
lasdId='';
document.getElementById('b'+capa).innerHTML="<a href=javascript:expandir('" + capa + "');><img src='imagenes/expandir.jpg' border='0'></a>";
}
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function load_resultados(pagina,criterio){

divResultado = document.getElementById('paginador');
ajax=objetoAjax();
ajax.open("POST", "script.php",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==1) {
divResultado.innerHTML = "<img src='imagenes/loading.gif' />";
}
if (ajax.readyState==4) {
divResultado.innerHTML = ajax.responseText;
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("pagina=" + pagina + "&criterio=" + criterio)
//load_menu(2); 
}
</script>
<style type="text/css">
.buscador{
background-color:#FFFFFF;
width:auto;
padding:5px;
margin-bottom:15px;
margin-left:15px;
margin-right:15px;
font-family:Geneva, Arial, Helvetica, sans-serif;
font-size:14px;
font-weight:bold;
height:25px;
color:#666666;
}
.resultado{ margin-left:15px; padding-right:15px; width:auto; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:12px; text-align:justify; margin-bottom:15px; }
.resultado .descripcion{
border:#6EA8E2 1px solid;
width:auto;
color:#999999;
height:100px;
padding: 10px;
}
.resultado .descripcion h1{ font-size:18px; color:#333333; font-weight:bold; margin:0; padding:0;}
.resultado .boton { margin-top:-1px; }

.PopBoxImageSmall{ border: none 0px #ffffff; cursor: url("imagenes/magplus.cur"), pointer; }
.PopBoxImageLarge{ border: solid 1px #999999; cursor: url("imagenes/magminus.cur"), pointer; }
.PopBoxImageShrink{ cursor: url("imagenes/magminus.cur"), pointer; }
.PopBoxImageLink{ cursor: pointer; }
.PopBoxImageMove{ border: none 0px #ffffff; cursor: pointer; }
#paginas{ text-align:center; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:13px; } 
#paginas a{
text-decoration:none;
color:#000000;
}
#paginas a:hover{
text-decoration:none;
color:#666666;
}
</style>
<div class="buscador">
<form name="buscador" id="buscador">
Ingrese termino a buscar
<input type="text" name="txtbuscador" id="txtbuscador" />
<input type="button" name="cmbbuscador" id="cmbbuscador" value="Buscar" onclick="javascript:load_resultados('',txtbuscador .value)"/>
<div id="palres" style="padding-left:70px; font-family:Geneva, Arial, Helvetica, sans-serif; color:#00CC33; font-weight:normal;"></div>
</form>
</div>
<div id='paginador'>
<?
include('conectar.php');
$db conectar();
$registros 2;
if (!
$pagina) {
$inicio 0$pagina 1;
} else {
$inicio = ($pagina 1) * $registros;
}

$resultados mysql_query("SELECT id FROM articulos WHERE visible = 1");
$total_registros mysql_num_rows($resultados);
$resultados mysql_query("SELECT * FROM articulos WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio, $registros"); 
$total_paginas ceil($total_registros $registros); 
if(
$total_registros) {
while(
$articulo=mysql_fetch_array($resultados)) {
?>
<div class="resultado">
<div class="descripcion">
<img src="imagenes/<? echo $articulo["imagen"];?>" width="166" height="99" align="right" hspace="10" class="PopBoxImageSmall" onClick="Pop(this,50,'PopBoxImageLarge');" title="CLIC para abir/cerrar imagen" pbCaption="<? echo '<b>'.$articulo["titulo"].'</b>'?>" pbshowpopbar="true" pbShowText="false">
<h1><? echo $articulo["titulo"]; ?></h1>
<font color='#666666'><? $bringdeschtml_entity_decode($articulo["descripcion"]); echo $bringdesc?></font>
<div id="v<? echo $articulo["id"]; ?>" style="display:none; height:auto;">
<? $bringdatahtml_entity_decode($articulo["contenido"]); echo $bringdata?>
</div>
</div>
<div id="b<? echo $articulo["id"]; ?>" class="boton">
<a href="javascript:expandir('<? echo $articulo["id"]; ?>');"><img src="imagenes/expandir.jpg" border="0"></a>
</div>
</div>
<?
}
} else {
echo 
"<font color='darkgray'>(sin resultados)</font>";
}

mysql_free_result($resultados); 
if(
$total_registros) {
echo 
"<div id='paginas'>";
if((
$pagina 1) > 0) {
echo 
"<a href=javascript:load_resultados(".($pagina-1).",'');>Anterior</a> ";
}else{
echo 
"<span style='color:#666666'>Anterior </span>";
}
for (
$i=1$i<=$total_paginas$i++){
if (
$pagina == $i) {
echo 
"<span style='font-size:19px; color:#666666;'><b>".$pagina."</b></span> ";
} else {
echo 
"<a href=javascript:load_resultados(".$i.",'');>$i</a> ";

}
if((
$pagina 1)<=$total_paginas) {
echo 
" <a href=javascript:load_resultados(".($pagina+1).",'' );>Siguiente</a>";
}else{
echo 
"<span style='color:#666666'> Siguiente</span>";
}
echo 
"</div>";
}
?>
<? mysql_close
($db);?>
</div>
Espero haberte enseñado algo.. ya despes vere este mismo codigo a ver que se me ocurre..
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #4 (permalink)  
Antiguo 23/04/2010, 13:38
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Problema con base de datos

Tienes dos consultas con el mismo nombree!! o.O!

$resultados = mysql_query("SELECT id FROM articulos WHERE visible = 1");
$total_registros = mysql_num_rows($resultados);


$resultados = mysql_query("SELECT * FROM articulos WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio, $registros");
$total_paginas = ceil($total_registros / $registros);
while($articulo=mysql_fetch_array($resultados)) {

ponle nombre diferente ej. resultado y resultado2 .. noc quisas sea eso, por que luego en el while, se debe confundir ya que hay dos.. :S y como no te sirve la linea 120.. no te sirve la linea 145 que es la imprecion de los resultados por medio de java.. bueno noc eso es loq puedo ver, quisas me equivoco y puede ser tambien otra cosa.. pero por una parte es eso.. por q nunk habia visto que pudieran haber diferentes consultas con el mimo nombre.. o.O! espero haberte ayudado responde cualquier cosa..
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..

Etiquetas: Ninguno
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 12:18.