Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Ayuda actualización a MYSQLI

Hola de nuevo, estoy teniendo problemas con el archvio funciones.php pasando a MYSQLI, me sale el error Undefined variable: database_conexion y varios mas de este tipo de la variable $datosWeb no se porque bota el error, aparentemente no se logra conectar, pero cual es el error? ¡Ayuda!



conexion.php
<?php
//SESSIONES
if (!isset($_SESSION)) {
  session_start();
}
    $hostname_conexion = "localhost";
    $database_conexion = "dacf";
    $username_conexion = "root";
    $password_conexion = "";
    $conexion = mysqli_connect($hostname_db, $username_db, $password_db);
    include('inc/funciones.php')
?>
funciones.php
<?php 
//FORMATEO BASE DE DATOS
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  //Iniciamos la variable $conexion
  global $conexion;

  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  //Agregamos $conexion en las funciones mysqli_real_escape_string y mysqli_escape_string
  $theValue = $conexion("mysqli_real_escape_string") ? mysqli_real_escape_string($conexion,$theValue) : $conexion($conexion,$theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

//FORMATO DE CARACTERES
    header('Content-Type: text/html; charset=iso-8859-1');
	
//CONSULTA BASE DATOS
	mysqli_select_db($conexion, $database_conexion);
	$query_DatosWeb = "SELECT * FROM d_datos";
	$DatosWeb = mysqli_query($conexion, $query_DatosWeb) or die(mysqli_error());
    $row_DatosWeb = mysqli_fetch_assoc($DatosWeb);
    $totalRows_DatosWeb = mysqli_num_rows($DatosWeb);
    
    mysqli_free_result($DatosWeb);



function nombre($iduser){
	
	 global $database_conexion, $conexion;
	
	mysqli_select_db($conexion, $database_conexion);
	$query_DatosFuncion = sprintf("SELECT user FROM d_users WHERE id=%s",
	
		GetSQLValueString($iduser, "int"));
	
	
	
	
	$DatosFuncion = mysqli_query($conexion, $query_DatosFuncion) or die(mysqli_error());
	$row_DatosFuncion = mysqli_fetch_assoc($DatosFuncion);
	$totalRows_DatosFuncion = mysqli_num_rows($DatosFuncion);
	
	
    return $row_DatosFuncion['user'];
    
    mysqli_free_result($DatosFuncion);
	
	
}
    
 function recordarsesion($user,$pass){
	setcookie("usercookie", $user, time() + (365 * 24 * 60 * 60),"/"); 
	setcookie("passcookie", $pass, time() + (365 * 24 * 60 * 60),"/");
}

if (isset($_COOKIE['usercookie']) && isset($_COOKIE['passcookie']) && !isset($_SESSION['iduser'])) {
	
		mysqli_select_db($conexion, $database_conexion);
	$query_DatosLogin = sprintf("SELECT * FROM d_users WHERE user=%s AND password=%s",
	
	
	GetSQLValueString($_COOKIE['usercookie'], "text"),
	GetSQLValueString($_COOKIE['passcookie'], "text"));
	
	
	
	
	$DatosLogin = mysqli_query($conexion, $query_DatosLogin) or die(mysqli_error());
	$row_DatosLogin = mysqli_fetch_assoc($DatosLogin);
	$totalRows_DatosLogin = mysqli_num_rows($DatosLogin);
	
	if ($totalRows_DatosLogin==1){
		$_SESSION['iduser']=$row_DatosLogin['id'];
		$_SESSION['nombreuser']=$row_DatosLogin['user'];
		} 

			
	
    mysqli_free_result($DatosLogin);
}
?>

Editado
0
Puntos
1850
Visitas
11
Resp
Por andresc9410 hace 91 meses
Principiante
Respuesta #1
hola tienes que usar la función getsqlvaluestring para mysqli, aquí la tienes https://datoweb.com/post/2608/formatear-cadena-con-funcion-getsqlvaluestring-en-mysqli
0
Puntos
Por alber hace 91 meses
Administrador
Respuesta #2
Ya la tenía.. sigue con el error
0
Puntos
Por andresc9410 hace 91 meses
Principiante
Respuesta #3
claro el error $databas_conexion es por que en el fichero conexion no la tienes ademas no tienes bien los nombres de las variables, mira haz que conexion.php quede exactamente así:
<?php
//SESSIONES
if (!isset($_SESSION)) {
  session_start();
}
    $hostname_conexion = "localhost";
    $database_conexion = "dacf";
    $username_conexion = "root";
    $password_conexion = "";
    $conexion = mysqli_connect($hostname_conexion, $username_conexion, $password_conexion);
    mysqli_select_db($conexion,$database_conexion) or die ("Ninguna DB seleccionada");
    include('inc/funciones.php')
?>
con eso ya lo tienes saludos
0
Puntos
Por alber hace 91 meses
Administrador
Respuesta #4
Gracias por responder alber, esto de mysql es complicado, me da error la variable "dato" NOTICE: UNDEFINED VARIABLE dato, de la consulta a base de datos "DatosWeb", ´pongo el código para que porfavor me ayudes.

funciones.php
<?php  //Formateo Base de datos
if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
		global $conexion;
      if (PHP_VERSION < 6) {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      }
      $theValue = function_exists("mysqli_real_escape_string") ? mysqli_real_escape_string($conexion, $theValue) : mysqli_escape_string($conexion, $theValue);
    
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
}

//FORMATO DE CARACTERES
    header('Content-Type: text/html; charset=iso-8859-1');
	
//CONSULTA BASE DATOS
	mysqli_select_db($conexion, $database_conexion);
	$query_DatosWeb = "SELECT * FROM d_datos";
	$DatosWeb = mysqli_query($conexion, $query_DatosWeb) or die(mysqli_error());
    $row_DatosWeb = mysqli_fetch_assoc($DatosWeb);
    $totalRows_DatosWeb = mysqli_num_rows($DatosWeb);
    
    mysqli_free_result($DatosWeb);



function nombre($iduser){
	
	 global $database_conexion, $conexion;
	
	mysqli_select_db($conexion, $database_conexion);
	$query_DatosFuncion = sprintf("SELECT user FROM d_users WHERE id=%s",
	
		GetSQLValueString($iduser, "int"));
	
	
	
	
	$DatosFuncion = mysqli_query($conexion, $query_DatosFuncion) or die(mysqli_error());
	$row_DatosFuncion = mysqli_fetch_assoc($DatosFuncion);
	$totalRows_DatosFuncion = mysqli_num_rows($DatosFuncion);
	
	
    return $row_DatosFuncion['user'];
    
    mysqli_free_result($DatosFuncion);
	
	
}
    
 function recordarsesion($user,$pass){
	setcookie("usercookie", $user, time() + (365 * 24 * 60 * 60),"/"); 
	setcookie("passcookie", $pass, time() + (365 * 24 * 60 * 60),"/");
}

if (isset($_COOKIE['usercookie']) && isset($_COOKIE['passcookie']) && !isset($_SESSION['iduser'])) {
	
		mysqli_select_db($conexion, $database_conexion);
	$query_DatosLogin = sprintf("SELECT * FROM d_users WHERE user=%s AND password=%s",
	
	
	GetSQLValueString($_COOKIE['usercookie'], "text"),
	GetSQLValueString($_COOKIE['passcookie'], "text"));
	
	
	
	
	$DatosLogin = mysqli_query($conexion, $query_DatosLogin) or die(mysqli_error());
	$row_DatosLogin = mysqli_fetch_assoc($DatosLogin);
	$totalRows_DatosLogin = mysqli_num_rows($DatosLogin);
	
	if ($totalRows_DatosLogin==1){
		$_SESSION['iduser']=$row_DatosLogin['id'];
		$_SESSION['nombreuser']=$row_DatosLogin['user'];
		} 

			
	
    mysqli_free_result($DatosLogin);
}
?>
0
Puntos
Por andresc9410 hace 91 meses
Principiante
Respuesta #5
Olvidalo ya lo resolví, fue un descuido mio, gracias por responder.
0
Puntos
Por andresc9410 hace 91 meses
Principiante
Respuesta #6
la variable $dato no existe en tu código por eso te dice que no esta definida, te falta hacer esto:
//CONSULTA BASE DATOS
	mysqli_select_db($conexion, $database_conexion);
	$query_DatosWeb = "SELECT * FROM d_datos";
	$DatosWeb = mysqli_query($conexion, $query_DatosWeb) or die(mysqli_error());
    $row_DatosWeb = mysqli_fetch_assoc($DatosWeb);
    $totalRows_DatosWeb = mysqli_num_rows($DatosWeb);

$dato=array($row_DatosWeb['url']); // Agregar los demas valores de $dato
    
    mysqli_free_result($DatosWeb);
0
Puntos
Por alber hace 91 meses
Administrador
Respuesta #7
Sigo con mas problemas, y creo que vendran más, espero me tengan pasciencia y me ayuden.

Al abrir el link para id post me sale error, el error dice que es de está linea:
$query_DatosImg = "SELECT * FROM d_imgs WHERE idpost=%s",$row_DatosVer['id'],"int");
aqui pego el código
<?php require_once("conexion.php");
if (!isset($_SESSION['iduser'])){
	header('Location:'.$dato['0']);
	}

$idpost= $_GET['id'];

//CONSULTA BASE DATOS

    mysqli_select_db($conexion, $database_conexion);
    $query_DatosVer = "SELECT * FROM d_post WHERE id='$idpost'";
    $DatosVer = mysqli_query($conexion, $query_DatosVer) or die(mysqli_error());
    $row_DatosVer = mysqli_fetch_assoc($DatosVer);
    $totalRows_DatosVer = mysqli_num_rows($DatosVer);

    mysqli_select_db($conexion, $database_conexion);
    $query_DatosImg = "SELECT * FROM d_imgs WHERE idpost=%s",$row_DatosVer['id'],"int");
    $DatosImg = mysqli_query($conexion, $query_DatosImg) or die(mysqli_error());
    $row_DatosImg = mysqli_fetch_assoc($DatosImg);
    $totalRows_DatosImg = mysqli_num_rows($DatosImg);
	
?>

<!-- CÓDIGO HTML -->

<?php mysqli_free_result($DatosVer);?>
<?php mysqli_free_result($DatosImg);?>
0
Puntos
Por andresc9410 hace 91 meses
Principiante
Respuesta #8
no puedes usar:
$query_DatosImg = "SELECT * FROM d_imgs WHERE idpost=%s",$row_DatosVer['id'],"int");
pero puedes hacer esto:
$iddelpost=$row_DatosVer['id'];
$query_DatosImg = "SELECT * FROM d_imgs WHERE idpost=%s",$iddelpost,"int";
0
Puntos
Por alber hace 91 meses
Administrador
Respuesta #9
refresca la pagina que eh editado la respuesta
0
Puntos
Por alber hace 91 meses
Administrador
Respuesta #10
me sigue dando el mismo error Parse error: syntax error, unexpected ',' in C:\AppServ\www\dacf\ver_post.php on line 18
0
Puntos
Por andresc9410 hace 91 meses
Principiante
Respuesta #11
logre solucionar, ahora se muestra la página de ver_post pero en la minuatura se muestra una imagen de fotos.php "las que uno sube" y en la parte donde se debe mostrar las fotos (fotos.php) aparece este error Warning: mysqli_free_result() [function.mysqli-free-result]: Couldn't fetch mysqli_result in C:\AppServ\www\dacfmovies\ver_peli.php on line 166 y sigue sin mostrarse el titulo y el contenido en el html porque pongo el echo en el titulo y si lo muestra, no entiendo cual es el error, ya e mirado todo, e revisado los vídeos y nada :/
0
Puntos
Por andresc9410 hace 91 meses
Principiante
Compartir en facebook
Compartir en twitter
Compartir
Para comentar Inicia sesión o Registrate