Last Record from Mysqli Database not showing - mysql

Thank you in advance for your help.
For some reason I cannot get the last record from the Database to show when I retrieve information from it.
This was working just fine until I upgraded from PHP 5 to PHP 7.1
<?php
$servername = "xxxxxxxx";
$username = "xxxxxxxx";
$password = "xxxxxxxx";
$dbname = "xxxxxxxx";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//Second Half
$sql="SELECT * FROM Online_Customers order by id DESC LIMIT 100";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
?>

fetch_assoc() removed in PHP 7
change
$row = $result->fetch_assoc()
to
$row = $result->fetch_array()

I got this fixed. I removed the if statement and it's working just fine. If someone is having the same problem please let me know and I can guide you through.

Related

Working script stop working (php,mysql)

I've got a weird problem.
I created a website on localhost. Everything was working fine. I could connect to my mysql db without any problems.
I decided to put it on external server to show it to my friends. I changed $username, $dbname etc.
Then I decided to work little with the website back on localhost. And then it started. When I run my script which adds new records to my db (name, message, email) this shows up.
No database selected
Everything is just the same it was before I decided to put it on the server. What can be the problem?
EDIT: Here's the code of connect.php
<?php
$username ="root";
$password = "";
$host = "localhost";
$table = "test";
$conn = new mysqli("$host", "$username", "$password", "$table");
if (!$conn) {
die("Nie udało się połączyć z bazą danych: ".mysqli_connect_error());
}
and here's a script implemented into index.php
<?php
include 'connect.php';
$sql = "SELECT s_id, name, s_like, s_dislike, message FROM suggestions ORDER BY rand()";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$s_id = $row["s_id"];
$s_like = $row["s_like"];
$s_dislike = $row["s_dislike"];
echo '<p>' . $row["message"] . '</p>';
echo '<h1 class="podpis">' . $row["name"] . '</h1>';
mysqli_close($conn);
?>
and here's the cde of comments.php where I see the message about No database selected.
<?php
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$message = $_REQUEST['message'];
$username ="root";
$password = "";
$host = "localhost";
$table = "test";
$conn = mysqli_connect($host, $username, $password, $table);
$query = "INSERT INTO suggestions (name, email, message) VALUES ('$name',
'$email', '$message')";
if (mysql_query($query)) {
echo 'Dodano sugestię!';
header('Location: index.php');
} else{ die(mysql_error());}
mysql_close();
?>

How to display a query from a phpmyadmin that uses MariaDB? My query returns empty

Can someone please explain to me how to display a query from a phpmyadmin that uses MariaDB? When I execute this script, the page returns empty. No error messages, nothing. All blank screenshot of the phpamydmin here.
It seems the commands I shall use in PHP must be different from the used in the conventional phpmyadmin.
I've searched in different sites, but it seems MariaDB is not much used.
<?php
$dbhost = 'localhost:3306';
$dbuser = 'santos1q_test';
$dbpass = 'xxxxxx';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT * FROM test';
mysql_select_db('santos1q_events');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo {$row['event_title']};
echo {$row['event_address']};
}
echo "Fetched data successfully";
mysql_close($conn);
?>

mysql insert turns ★ into ★

When I do an insert from my application all ★ (stars) turns into "★"
How can I stop this from happening?
*It works if I directly insert it through phpmyadmin, but not when doing it using this php:
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";
$inputTime = mysql_escape_string($_POST['inputTime']);
$inputBotid = mysql_escape_string($_POST['inputBotid']);
$inputImage = mysql_escape_string($_POST['inputImage']);
$inputName = mysql_escape_string($_POST['inputSkin']);
$inputStatus = mysql_escape_string($_POST['inputStatus']);
$inputTradeid = mysql_escape_string($_POST['inputTradeid']);
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO items (trade, market_hash_name, status, img, botid, time)
VALUES ('$inputTime', '$inputName', '$inputStatus', '$inputImage', '$inputBotid','$inputTime')";
if ($conn->query($sql) === TRUE) {
echo "Success";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
You have Mojibake. Search this Q&A for 'Mojibake' to see what causes and how to prevent it.
Since you are into symbols, you might want to use utf8mb4, not just utf8 in MySQL. The former includes various 4-byte Emoji.
Also, see PHP tips. The most important is $mysqli_obj->set_charset('utf8mb4'); right after connecting.

select query will not execute, is my syntax wrong?

Apparently i have something wrong because this query will not execute, Can anyone see why ?
$username=username;
$mysqli = #new mysqli($localhost, $user, $pass, $database);
$sql = "SELECT * FROM player_log WHERE user = '$username'AND log_status=online";
$result = $mysqli->query($sql);
if ($result->num_rows > 0){
echo "its works";
}
Multiple issues see modified code below
Added standard way to call mysqli (space after $username is not an issue)
$username=username;
$mysqli = #new mysqli($localhost, $user, $pass, $database);
$sql = "SELECT * FROM player_log WHERE user = '$username'AND log_status='online' ";
if ($result = $mysqli->query($sql)){
printf("Select returned %d rows.\n", $result->num_rows);
/* free result set */
$result->close();
echo "its works";
}

mysql_fetch_assoc in MeekroDB

Excuse me for being new to MeekroDB library, I wonder how to check for rows in the login process;
$query = DB::query("SELECT * FROM users WHERE username=%s",$username);
$numrows = DB::count($query);
// this needs the edit
if ($numrows!=0){
while($row = mysql_fetch_assoc($query)){
$dbusername = $row['username'];
$dbpassword = $row['password'];}
You need to bear in mind that your variable $query is now an array (if any records are found) so you do not need to do
while($row = mysql_fetch_assoc($query))
Instead try
foreach ($query as $user)
{
$dbusername = $user['username'];
$dbpassword = $user['password'];
}
Also, if you have more then one record with the same username and password then you may be doing something wrong with your user registration/maintenance process.