New question

Question:

Date: 30-09-2015 14:50:56 (In Spanish)

Ayuda con funcion PHP[Resolved]

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;
	}
?>
Tags: PHP - PHP MySQLi - Question - Warning Votes: 0 - Answers: 7 - Views: 8 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

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

    Saludos,
      Votes: 1 - Link answer
     
  • Date: 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));
    ?>
    
      Votes: 0 - Link answer
     
  • Date: 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....   Votes: 1 - Link answer
     
  • Date: 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
      Votes: 2 - Link answer
     
  • Date: 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.
      Votes: 0 - Link answer
     
  • Date: 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
      Votes: 0 - Link answer
     
  • Date: 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,
      Votes: 2 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In
 
frjcbbae garagebible.com