2016-04-13 2 views
1

Я новичок в php-функции, можно ли использовать mysqli_fetch_assoc в php-функции?Как использовать mysqli_fetch_assoc в пользовательской php-функции?

вот что я делаю.

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 ?> 

как можно повторить $ fname1?

+1

Вернуть значение из функции – Thamilan

+0

Вы можете создать массив и возвращает массив, из которого вы можете получить соответствующее значение , – Indrajit

ответ

0

Предполагая, что вам нужно распечатать только $fname1, предлагается нижеследующее мое решение:

Вы должны вернуть $fname1 из вашей функции.

<?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 ?> 

В качестве альтернативы, вы можете вернуть всю строку из вашей функции, как это:

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'] ?> 
+0

Вероятно, удалите цикл и верните все выбранные столбцы в массиве и позвольте собеседнику получить какое-либо конкретное поле? –

1

Ваша функция ничего не возвращает, эти назначенные переменные остаются в области видимости функции. Если есть всегда только одна строка для извлечения, вы можете сделать это следующим образом:

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

Тогда вы можете вызвать эту функцию и эхо переменную:

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

Вы можете объявить переменную $ fname1 как глобальная и получить доступ к переменной. Предполагается, что возвращается только одна запись.

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 ?> 
0
<?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'] ?> 
Смежные вопросы