Nueva pregunta

Pregunta:

Fecha: 30-09-2015 14:50:56 (En Español)

Ayuda con funcion PHP[Resuelta]

Estoy haciendo esta funcion de consulta de registros pero me da el siguiente error
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\AppServ\www\biblioteca\includes\admin.php on line 26

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\AppServ\www\biblioteca\includes\admin.php on line 27
<?
	function num_rows($tabla){
		//primero conectamos siempre a la base de datos mysql
		$result = mysqli_query($link, "SELECT * FROM ".$tabla);
		$numero = mysqli_num_rows($result); // obtenemos el número de filas
		$contenido = $numero;
		return $contenido;
	}
?>
Etiquetas: PHP - PHP MySQLi - Pregunta - Warning Votos: 0 - Respuestas: 7 - Vistas: 8 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 30-09-2015 15:21:58 Con que estas cargando la variable $link? Aparentemente le estas enviando un null, revisa esa variable.

    Saludos,
      Votos: 1 - Link respuesta
     
  • Fecha: 30-09-2015 15:24:34 Son incluidas ambas en una sola página
    <?
        session_start();
        include "../includes/config.php";
        include "../includes/admin.php";
    ?>
    

    <?
    $host_db = "localhost";
    $user_db = "root";
    $pass_db = "4414910";
    $nomb_db = "biblioteca";
    $link = mysqli_connect($host_db, $user_db, $pass_db, $nomb_db) or die(mysqli_error($link));
    ?>
    
      Votos: 0 - Link respuesta
     
  • Fecha: 30-09-2015 15:30:21 Ok, pero ese código lo tenes que tener dentro de la función, o la función debe recibirlo por parámetro, o (algo que no recomiendo) utilizar la variable como global....   Votos: 1 - Link respuesta
     
  • Fecha: 30-09-2015 16:07:43 Lo que dice Fernando es que te complicas ElCapa8 y es cierto no es recomendable usar la variable como global, supongo que ya lo habrias intentado asi , no? :
    <?php
    require_once("com.php");
    /*
            //primero conectamos siempre a la base de datos mysql
            $result = "SELECT * FROM tabla";
    
            $self = $link->query($result);
            $numero = $self->num_rows; // obtenemos el número de filas
            $contenido = $numero;
            echo $contenido;
            */
           
           $result = mysqli_query($link, "SELECT * FROM tabla");
    
            $numero = mysqli_num_rows($result); // obtenemos el número de filas
            $contenido = $numero;
            
          echo $contenido;
    ?>
    


    en los dos me funciono sin ningun problema y mejor que como lo hacias dentro de la function aunque lo necesitas hacerlo asi?

    Bueno espero haberte ayudado Saludos n.n
      Votos: 2 - Link respuesta
     
  • Fecha: 30-09-2015 19:13:36 Si la necesito dentro de una función para no repetir tanto el mismo código en la página.
    Fernando. Pero como hago sabiendo que eso es una pequeña CMS que se puede usar en varias partes??
    y ya probe poniendo la la conexion en la funcion pero no funciona.
      Votos: 0 - Link respuesta
     
  • Fecha: 30-09-2015 19:23:39 Bueno despues de horas de bregar lo logre comparto el código por si alguien le intereza.
    Código de la función
    <?
    	//función que consulta el numero mediante php y mysqli
    	function num_rows($tabla, $db){
    		//primero conectamos siempre a la base de datos mysql
    		$result = mysqli_query($db, "SELECT * FROM ". $tabla);
    		$numero = mysqli_num_rows($result); // obtenemos el número de filas
    		$contenido = number_format($numero);
    		return $contenido;
    	}
    ?>
    

    Código del llamado de la función.
    <?=num_rows("libros", $link);?>

    Atención: la variable $link es su conexión ala DB mysqli
      Votos: 0 - Link respuesta
     
  • Fecha: 01-10-2015 05:22:26 Edinson, claramente estabas teniendo un problema de "ambito de las variables en php", el famoso SCOPE, puedes leer un poco sobre eso en la documentación oficial de PHP: http://php.net/manual/es/language.variables.scope.php

    Claramente lo has solucionado como te decía en mi anterior respuesta "...o la función debe recibirlo por parámetro...". Procura votar las respuestas que te han sido de ayuda.

    Saludos,
      Votos: 2 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com