0

I am using MySQL and created 2 tables in it; Users and Activity. User table has following data:

enter image description here

For now I am using the above data only. I want this data to show in JSON format and then I will use it in my Android app. I have tried to convert it but I am getting the below result:


( ! ) Warning: mysqli_query() expects at least 2 parameters, 1 given in D:\xampp\htdocs\MobileApp\index.php on line 18 Call Stack #TimeMemoryFunctionLocation 10.0015134480{main}( )...\index.php:0 20.0034141920getUserName( )...\index.php:38 30.0034142272http://www.php.net/function.mysqli-query' target='_new'>mysqli_query ( )...\index.php:18

( ! ) Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in D:\xampp\htdocs\MobileApp\index.php on line 20 Call Stack #TimeMemoryFunctionLocation 10.0015134480{main}( )...\index.php:0 20.0034141920getUserName( )...\index.php:38 30.0050142240http://www.php.net/function.mysqli-fetch-array' target='_new'>mysqli_fetch_array ( )...\index.php:20

{"users":[]}

I have posted the above result in 3 steps so it can be clearly identified what mistake I am making.

Below is my PHP file:

require_once ('config.php');

function getUserName()
{
// array for json response
$response = array();
$response["users"] = array();

// Mysql select query
$result = mysqli_query("SELECT * FROM Users");

while ($row = mysqli_fetch_array($result))
{
    // temporary array to create single category
    $tmp = array();
    $tmp["Id"] = $row["Id"];
    $tmp["Name"] = $row["Name"];

    // push category to final json array
    array_push($response["Users"], $tmp);
}
// keeping response header to json
header('Content-Type: application/json');

// echoing json result
echo json_encode($response);
}

getUserName();

And my config file:

<?php 
 define("HOST","localhost");
 define("DATABASE","app");
 define("USERNAME","root");
 define("PASSWORD","");

 $con=mysqli_connect(HOST,USERNAME,PASSWORD,DATABASE);
 if(!$con){
    die("Database Connection Error: " . mysqli_connect_error());
 }
 else{
  echo "Connection successful";
 }

I am getting ‘Connection successful’ from config.

I don't know what wrong I am doing.

2 Answers 2

1

The problem comes from the way you use mysqli_query.

As said in error message mysqli_query expects two parameters. The first one will be the connection object and the second one, the query.

i.e. :

$result = mysqli_query($con, "SELECT * FROM Users");

And then, build you json data like this with json_encode() php function.

require_once ('config.php');

function getUserName()
{
    // defines global since $con not in the scope of the function variables
    global $con;

    $response = array();
    while ($row = mysqli_fetch_array($result))
    {
        // temporary array to create single category
        $tmp = array();
        $tmp["Id"] = $row["Id"];
        $tmp["Name"] = $row["Name"];

        // build response array
        $response['users'][] = $tmp;
    }

    // convert $response array to json and return it
    return json_encode($response);
}

// get function return 
$users_name = getUserName();

Hope it helps.

Sign up to request clarification or add additional context in comments.

9 Comments

While adding $con in the $result = mysqli_query($con, "SELECT * FROM Users"); it's giving me error unidentified variable con
Are you sure you included the right connection file ?
I am using a function so is there something to do with it?
What if you try to access config.php directly ? Do you see the "Connection successful" string or a mysqli_connection error ?
Working like a champ :)
|
0

Add this line After sql Query

$sql="insert sql query";

$res=mysqli_query($con,$sql);

Add in while loop use this one

$row=mysqli_fetch_array($res)

updated

    <?php
require_once ('config.php');

$result= "SELECT * FROM Users";
$res=mysqli_query($con,$result);

$response = array();

while ($row=mysqli_fetch_array($res)){
        array_push($response,array('Id' =>$row['Id'] ,
    'Name' =>$row['Name']

        //      add element on your array

    ));
    }
    echo json_encode(($response));

    mysqli_close($con);

?>

Put config and php file in the same folder

6 Comments

While adding $con in the $result = mysqli_query($con, "SELECT * FROM Users"); it's giving me error unidentified variable con
add this in your config file: $con = mysqli_connect(HOST,USERNAME,PASSWORD,DATABASE)or die('Unable to Connect'); and remove if else loop
Do i have to exclude my function ?
there is no need to add your function.. but if u want u can
The problem is still there as i can find $con in my intellesence
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.