Roberto Santos Filho
Roberto Santos Filho

Reputation: 121

how do I check if mysqli connection is working?

I am really new on php and I am trying to create my own php shop cart. After some research I got myself stuck in the "function products" below because seems to me it is not working properly. I expect to see the names of my products on my mysql database but it is not showing anything. My user name is noivaemd_etalhes, I am using my correct password and my database name is noivaemd_cart and I created on this database the table called Products with my list of products available. Can anybody help me to figure out what am I doing wrong on the php instructions below???? I appreciate any help.

<?php 

session_start();
$page = 'index.php';

function products()  {
        $con = mysqli_connect("localhost", "noivaemd_etalhes", "mypassword", "noivaemd_cart") or die (mysqli_error());
        $res = mysqli_query($con, "SELECT id, name, description, price FROM Products WHERE quantity > 0 ORDER BY id DESC");
        if (mysqli_num_rows($res)==0) {
        echo "<font family=verdana><font size=6px><font color= #90882C><font style=normal><font variant= normal><br>No products available<br></font>";
            }
        else{
        while($get_row = mysqli_fetch_assoc($res)) {
                echo '<p>'.$res['name'].'</p>';
        }
    }
}

?>

Upvotes: 7

Views: 6798

Answers (2)

tash
tash

Reputation: 189

It's not good practice to connect to your database directly in your code. Open another file, and save it has 'dbconnect.php' or whatever you choose to name it. Save it in the same root.

Inside DB connect, you connect to the database like this:

<?php
$mysql_host = "localhost"; 
$mysql_user = "username"; 
$mysql_pass = ""; 
$mysql_dbname = "Products"; 
$conn_error = "Sorry, Could Not Connect"; 

if(!@mysql_connect($mysql_host,$mysql_user,$mysql_pass)||!@mysql_select_db($mysql_dbname)){
    die($conn_error); 
}
?>

In your index.php, inside your php tags, write 'require "dbconnect.php";'.

Then you get your values like this:

$InfoQuery = " SELECT id, product, name FROM table_name WHERE quantity>0 ORDER BY id DESC"; 
    $Info = mysql_query($InfoQuery); 
    while($InfoRow=mysql_fetch_assoc($Info)){echo "<p>".$InfoRow['id']."<br>". $InfoRow['product']"."<br>". $InfoRow['name']."</p>";}

Edit: What you did wrong is in your while loop, you fetched the table data from $res when it should be fetched from $get_row

Upvotes: 0

Sourabh Kumar Sharma
Sourabh Kumar Sharma

Reputation: 2807

This code:

while ($get_row = mysqli_fetch_assoc($res)) {
    echo '<p>'.$res['name'].'</p>';
}

Should be:

while ($get_row = mysqli_fetch_assoc($res)) {
    echo '<p>'.$get_row ['name'].'</p>';
}

As your title ask also tell how to check if the mysqli database connection is successful you can use the below code:

$con = mysqli_connect("localhost","my_user","my_password","my_db");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

Reference link: http://www.php.net/manual/en/function.mysqli-connect.php

Upvotes: 8

Related Questions