Foros del Web » Programando para Internet » PHP »

problema con PHP Warning: mysql_fetch_arra

Estas en el tema de problema con PHP Warning: mysql_fetch_arra en el foro de PHP en Foros del Web. cuando me cambie de hosting a banahosting sale este error cuando agrego datos desde el panell de mi web no se agrega los datos a ...
  #1 (permalink)  
Antiguo 14/04/2014, 01:15
 
Fecha de Ingreso: abril-2014
Mensajes: 1
Antigüedad: 10 años
Puntos: 0
problema con PHP Warning: mysql_fetch_arra

cuando me cambie de hosting a banahosting sale este error cuando agrego datos desde el panell de mi web no se agrega los datos a la base de datos solo se agrega el campo id los demas campos no guarda nada con php 5.2 funcionaba correcto al cambiarme al php 5.3 me sale este error


America/New_York] PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in on line 67



este es el codigo

Código PHP:
//    funcion para episodios
function episodio_v($_id=0){
$ex = @mysql_query("SELECT id,nombre,id_capitulo,id_anime,nombre_capitulo,embed,url FROM animes INNER JOIN capitulos ON animes.id=capitulos.id_anime where id_capitulo =".$_id);
if(@
mysql_num_rows($ex) > 0){
while (
$i = @mysql_fetch_assoc($ex)){
$anime[] = array("CAPITULO"=>'si',"nom"=>$i['nombre'],"id_cap"=>$i['id_capitulo'],"id_anim"=>$i['id_anime'],"nom_capitulo"=>$i['nombre_capitulo'],"embed"=>$i['embed'],"url"=>$i['url'],"id_cap"=>$i['id_capitulo']);
}
}else{
$anime[] = array("CAPITULO"=>'no');
}
@
mysql_free_result($ex);
return 
$anime;
}


function 
cortarTexto($texto) {
    
$tamano 25// tamaño maximo
    
$textoFinal ''// Resultado
    
if (strlen($texto) < $tamano$tamano strlen($texto);
    for (
$i=0$i <= $tamano 1$i++) {
        
$textoFinal .= $texto[$i];
    }
if(
strlen($texto)<25){ return $texto;}else{return $textoFinal."...";}
}




// funcion para index menus
function index_a_f(){
$x=@mysql_query("SELECT nombre,id FROM animes WHERE SUBSTRING(nombre,1,1) IN ('a','b','c','d','e','f') ORDER BY nombre ASC");



ABAJO ESTA LA LINEA 67 



while($i=mysql_fetch_array($x)){
echo 
"<li><a alt=\"Ver ANIME  ".$i['nombre']."\" title=\"Ver EL ANIME  ".$i['nombre']."\" href=\"".hacer_url($i['nombre'])."/".$i['id']."/\"><span>".cortarTexto($i['nombre'])."</span></a></li>";
}
@
mysql_free_result($x);
}


function 
index_g_l(){
$x=@mysql_query("SELECT nombre,id FROM animes WHERE SUBSTRING(nombre,1,1) IN ('g','h','i','j','k','l') ORDER BY nombre ASC");
while(
$i=mysql_fetch_array($x)){
echo 
"<li><a alt=\"Ver ANIMES  ".$i['nombre']."\" title=\"Ver EL ANIME ".$i['nombre']."\" href=\"".hacer_url($i['nombre'])."/".$i['id']."/\"><span>".cortarTexto($i['nombre'])."</span></a></li>\n";
}
@
mysql_free_result($x);
}

function 
index_m_r(){
$x=@mysql_query("SELECT nombre,id FROM animes WHERE SUBSTRING(nombre,1,1) IN ('m','n','o','p','q','r') ORDER BY nombre ASC");


while(
$i=mysql_fetch_array($x)){
echo 
"<li><a alt=\"Ver ANIME  ".$i['nombre']."\" title=\"Ver EL ANIME ".$i['nombre']."\" href=\"".hacer_url($i['nombre'])."/".$i['id']."/\"><span>".cortarTexto($i['nombre'])."</span></a></li>";
}
@
mysql_free_result($x);
}

function 
index_s_z(){
$x=@mysql_query("SELECT nombre,id FROM animes WHERE SUBSTRING(nombre,1,1) IN ('s','t','u','v','w','x','y','z') ORDER BY nombre ASC");
while(
$i=@mysql_fetch_array($x)){
echo 
"<li><a alt=\"Ver ANIME ".$i['nombre']."\" title=\"Ver EL ANIME ".$i['nombre']."\" href=\"".hacer_url($i['nombre'])."/".$i['id']."/\"><span>".cortarTexto($i['nombre'])."</span></a></li>";
}
@
mysql_free_result($x);

  #2 (permalink)  
Antiguo 14/04/2014, 02:19
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años
Puntos: 10
Respuesta: problema con PHP Warning: mysql_fetch_arra

Cuando un mysql_fetch_array o mysql_fetch_assoc, devuelve que esperaba un recurso, pero se ha devuelto un booleano, significa que la query tiene un error mysql.

Pon en la sentencia mysql_query esto al final:
mysql_query("tu query") or die(mysql_error);

Una vez que encuentres el error en tu consulta mysql, vuelve a quitar el or die, porque los usuarios de tu web no tienen porque ver errores mysql.

2 recomendaciones aparte son, que dejes de usar la libreria mysql, usa mysqli, solo es añadir una i al mysql, pero mysql es obsoleta, Y, que no uses @, si tu codigo lanza notice o errores debes corregirlos, no ignorarlos.

Un saludo
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos

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 08:02.