Pregunta:
Fecha: 01-09-2017 18:54:03
(En Español)
function extrae_titulo_categoria( $idioma , $idcategoria_principal , $idcategoria )
{
$host = "xxxxx";
$usuario_db = "dbx";
$pass_usuario_db ="12345";
$basedatos = "db691508081";
$mysqli = mysqli_connect($host,$usuario_db,$pass_usuario_db,$basedatos);
$idcategoria_principal_pagina = $idcategoria_principal;
$idcategoria = (int)$idcategoria;
//Aunque la pasamos en la función buscamos la categoria principal a la que pertenece por seguridad
$sop = "SELECT idcategoria_principal FROM categorias WHERE idcat=".$idcategoria;
$result = mysqli_query($mysqli,$sop);
list( $idcategoria_principal ) = mysqli_fetch_assoc( $result );
//Con la modificación todos los productos del nuevo sistema están en la categoria 1
if( $idcategoria_principal_pagina != 5 && ( $idcategoria_principal == 1 || $idcategoria_principal == 2 || $idcategoria_principal == 3 || $idcategoria_principal == 6 ) )
{
$sop = "SELECT idseccion FROM secciones WHERE idcategoria_principal=".$idcategoria_principal_pagina;
$result = mysql_query($sop);
list( $idseccion ) = mysqli_fetch_assoc( $result );
$sop = "SELECT categorias_descripciones.*,categorias.link FROM categorias_descripciones ";
$sop .= " LEFT JOIN categorias ON categorias_descripciones.idcategoria = categorias.idcat ";
$sop .= " WHERE categorias.estado = 1 AND categorias_descripciones.idcategoria=".$idcategoria." AND idseccion=".$idseccion;
$result = mysqli_query($mysqli,$sop);
$lista = mysqli_fetch_assoc( $result );
$array_respuesta["titulo"] = $lista["descripcion_".$idioma];
$array_respuesta["metadescription"] = $lista["metadescription_".$idioma];
$array_respuesta["metakeywords"] = $lista["metakeywords_".$idioma];
$array_respuesta["txt"] = $lista["txt_".$idioma];
$array_respuesta["link"] = $lista["link"];
}
else
{
$sop = "SELECT * FROM categorias ";
$sop .= " WHERE idcat=".$idcategoria;
$result = mysqli_query($mysqli,$sop);
$lista = mysqli_fetch_assoc( $result );
$array_respuesta["titulo"] = $lista["descripcion_".$idioma];
$array_respuesta["metadescription"] = $lista["metadescription_".$idioma];
$array_respuesta["metakeywords"] = $lista["metakeywords_".$idioma];
$array_respuesta["txt"] = $lista["txt_".$idioma];
$array_respuesta["link"] = $lista["link"];
}
return $array_respuesta;
}
De antemano muchas gracias. Votos: -1 - Respuestas: 5 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
Conección con msqli[Resuelta]
Saludos, mi problema es el siguiente, he estado cambiando conexiones de msql(),que como ya sabemos ya no se utiliza, en un sitio web sobre el que estoy trabajando, todo estaba funcionando bien, pero al cambiar un archivo en particular, primero daba el error de getadresses y ahora al ingresar al sitio solo tira la pagina en blanco, ese archivo consiste en una serie de funciones:function extrae_titulo_categoria( $idioma , $idcategoria_principal , $idcategoria )
{
$host = "xxxxx";
$usuario_db = "dbx";
$pass_usuario_db ="12345";
$basedatos = "db691508081";
$mysqli = mysqli_connect($host,$usuario_db,$pass_usuario_db,$basedatos);
$idcategoria_principal_pagina = $idcategoria_principal;
$idcategoria = (int)$idcategoria;
//Aunque la pasamos en la función buscamos la categoria principal a la que pertenece por seguridad
$sop = "SELECT idcategoria_principal FROM categorias WHERE idcat=".$idcategoria;
$result = mysqli_query($mysqli,$sop);
list( $idcategoria_principal ) = mysqli_fetch_assoc( $result );
//Con la modificación todos los productos del nuevo sistema están en la categoria 1
if( $idcategoria_principal_pagina != 5 && ( $idcategoria_principal == 1 || $idcategoria_principal == 2 || $idcategoria_principal == 3 || $idcategoria_principal == 6 ) )
{
$sop = "SELECT idseccion FROM secciones WHERE idcategoria_principal=".$idcategoria_principal_pagina;
$result = mysql_query($sop);
list( $idseccion ) = mysqli_fetch_assoc( $result );
$sop = "SELECT categorias_descripciones.*,categorias.link FROM categorias_descripciones ";
$sop .= " LEFT JOIN categorias ON categorias_descripciones.idcategoria = categorias.idcat ";
$sop .= " WHERE categorias.estado = 1 AND categorias_descripciones.idcategoria=".$idcategoria." AND idseccion=".$idseccion;
$result = mysqli_query($mysqli,$sop);
$lista = mysqli_fetch_assoc( $result );
$array_respuesta["titulo"] = $lista["descripcion_".$idioma];
$array_respuesta["metadescription"] = $lista["metadescription_".$idioma];
$array_respuesta["metakeywords"] = $lista["metakeywords_".$idioma];
$array_respuesta["txt"] = $lista["txt_".$idioma];
$array_respuesta["link"] = $lista["link"];
}
else
{
$sop = "SELECT * FROM categorias ";
$sop .= " WHERE idcat=".$idcategoria;
$result = mysqli_query($mysqli,$sop);
$lista = mysqli_fetch_assoc( $result );
$array_respuesta["titulo"] = $lista["descripcion_".$idioma];
$array_respuesta["metadescription"] = $lista["metadescription_".$idioma];
$array_respuesta["metakeywords"] = $lista["metakeywords_".$idioma];
$array_respuesta["txt"] = $lista["txt_".$idioma];
$array_respuesta["link"] = $lista["link"];
}
return $array_respuesta;
}
De antemano muchas gracias. Votos: -1 - Respuestas: 5 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 02-09-2017 11:49:44 $result = mysql_query($sop);????, debes revisar bien tu código para que no tengas remanentes d e la librería anterior.
Revisa los log de errores de php asi llegas rápido al problema y a darle solución.
Por otro lado no se como esta estructurado tu sitio pero eso de colocar la conexión a BD en las funciones no me parece buena idea, espero haya sido solo para pruebas, deberías de trabajar con clases y una de ellas sea exclusiva para la conexión, o en todo caso, trabajar con un framework como codeigniter.
como te comente, activa los errores de php para asi dar solución a problemas que en realidad no lo son.
Saludos Votos: 3 - Link respuesta -
Fecha: 02-09-2017 17:57:52 claro, ya he cambiado todo por msqli, el tema es que luego me tira el error que no rerconoce el host especificado, me falto mencionar que el servidor esta con php7 Votos: -1 - Link respuesta
-
Fecha: 02-09-2017 18:57:26 Vuelvo y repito, verifica tu log de errores, el servidor debería de estarlo generando automáticamente dependiendo de tu configuración, de esta manera lograras ver el trace del o los errores que tengas y así poderte ayudar mejor, usualmente el server genera un archivo error.log en la ubicación del archivo que esta fallando, esa es la manera más rápida de llegar a la linea exacta que genero la excepción y asid ar con la solución. Votos: 1 - Link respuesta
-
Fecha: 04-09-2017 08:05:35 Hola HQM , la cuestion no es solo cambiar el nombre mysql por mysqli , mysqli ha quitado algunas funciones y hay que hacer ajustes en ello para que queden escritas correctamente. Por otro lado deberias revisar la configuracion del servidor porque es importante saber si se ha llevado a cabo alguna actualizacion del mismo.
Por ultimo yo te propondria configurar un sitio local con las mismas caracteristicas del sitio de produccion, bajar la web , testearla y asi mismo activar la depuracion de errores para conocer los errores que arroja.
Saludos Votos: 1 - Link respuesta -
Fecha: 04-09-2017 18:21:57 HQM EL,
El mensaje de error es bastante claro, es un problema con el host que estás proporcionando.
Es una IP pública o privada?
El dominio está registrado adecuadamente?
Pueden ser mil cosas en este caso pero el hecho es que es el parámetro $host y eso es indicador de que hay algo que no permite a ambos servidores comunicarse adecuadamente.
Hazle ping desde tu servidor para ver si está respondiendo (está activo), después intenta conectarte al servidor desde consola con el cliente de mysql. Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
