kim de castro
kim de castro

Reputation: 309

How to use mysqli_fetch_assoc in custom php function?

I'm new in php function is it possible to use mysqli_fetch_assoc in php function?

here's what I'm doing.

function.php

<?php
        function getinfoid($conn,$idapplicant){

        $sql = "SELECT * FROM applicants WHERE id_mis = '".$idapplicant."' ";
        $result = mysqli_query($conn,$sql);
        while ($row = mysqli_fetch_assoc($result)) {
        $prefix=$row['prefix'];
        $fname1=$row['fname'];
        $mname1=$row['mname'];
        $lname1=$row['lname'];
        $gender=$row['gender'];
        $addr=$row['addr'];
        }
    }
?>

view.php

    <?php 
    require('connection.php'); 
    include ('function.php');
    getinfoid($conn,'2');
    ?>
I'm <?php echo $fname1 ?>

how is it possible to echo $fname1 ?

Upvotes: 1

Views: 122

Answers (4)

Pupil
Pupil

Reputation: 23958

Assuming you need to print only $fname1, following is my proposed solution:

You need to return $fname1 from your function.

<?php
function getinfoid($conn,$idapplicant){
    $sql = "SELECT * FROM applicants WHERE id_mis = '".$idapplicant."' ";
    $result = mysqli_query($conn,$sql);
    $row = mysqli_fetch_assoc($result);
    return $row['fname'];
} 
require('connection.php'); 
include ('function.php');
$fname1 = getinfoid($conn,'2');
?>
I'm <?php echo $fname1 ?>

Alternatively, you can return whole row from your function like this:

function getinfoid($conn,$idapplicant){
    $sql = "SELECT * FROM applicants WHERE id_mis = '".$idapplicant."' ";
    $result = mysqli_query($conn,$sql);
    return mysqli_fetch_assoc($result);
}
require('connection.php'); 
include ('function.php');
$useDetails = getinfoid($conn,'2');
?>
I'm <?php echo $useDetails['fname'] ?>

Upvotes: 0

Anil Kumar
Anil Kumar

Reputation: 44

<?php
        function getinfoid($conn,$idapplicant){

        $sql = "SELECT * FROM applicants WHERE id_mis = '".$idapplicant."' ";
        $result = mysqli_query($conn,$sql);
        $row = mysqli_fetch_assoc($result); 
        return $row
    }
?>

 <?php 
    require('connection.php'); 
    include ('function.php');
    $data = getinfoid($conn,'2');
    ?>
I'm <?php echo $data['firstname'] ?>

Upvotes: 0

Sashant Pardeshi
Sashant Pardeshi

Reputation: 1095

You can declare variable $fname1 as global and access the variable. Assuming only single record is returned.

function.php

<?php
        $fname1 = "";
        function getinfoid($conn,$idapplicant){
        global $fname1;
        $sql = "SELECT * FROM applicants WHERE id_mis = '".$idapplicant."' ";
        $result = mysqli_query($conn,$sql);
        while ($row = mysqli_fetch_assoc($result)) {
        $prefix=$row['prefix'];
        $fname1=$row['fname'];
        $mname1=$row['mname'];
        $lname1=$row['lname'];
        $gender=$row['gender'];
        $addr=$row['addr'];
        }
    }
?>

view.php

<?php 
require('connection.php'); 
include ('function.php');
getinfoid($conn,'2');
?>
I'm <?php echo $fname1 ?>

Upvotes: 0

n-dru
n-dru

Reputation: 9430

Your function doesn't return anything, those assigned variables stay in the scope of the function. If there is always just one row to fetch, you can do it like this:

function getinfoid($conn,$idapplicant){
    $sql = "SELECT * FROM applicants WHERE id_mis = '".$idapplicant."' ";
    $result = mysqli_query($conn,$sql);
    return mysqli_fetch_assoc($result);
}

Then you can call this function and echo your variable:

$row = getinfoid($conn,'2');
?>
I'm <?php echo $row['fname'] ?>

Upvotes: 1

Related Questions