Попытка переписать MySQL в MySQL - PullRequest
0 голосов
/ 23 сентября 2018

Я хотел перейти от mysql к mysqli_, но я получаю некоторые ошибки.

Undefined index: Username in .. on line 8
Couldn't fetch mysqli in .. on line 8
Empty query in .. on line 9

Это часть моего кода

<?php
    include("config.php"); //including our config.php 
    include("auth.php");
    error_reporting(E_ALL); 

    if(isset($_SESSION['username'])) //if session is set, so if user is logged in... 
    { 
    $sql = mysqli_query($con, "SELECT * FROM users WHERE username = '".$_SESSION['Username']."'");
    if ($result=mysqli_query($con,$sql))
    {
        $Username = $row['Username']; //selecting user name, change 'username' to your field name  
        $Headshots = $row['Headshots']; //selecting user money, change 'money' to your field name  
    $Mesaj2 = $row['Mesaj2'];
    $Mesaj3 = $row['Mesaj3'];
    $Mesaj4 = $row['Mesaj4'];
    $viplog = $row['viplog'];
                $sql2 = "SELECT Username, BanditsKilled FROM users order by BanditsKilled DESC LIMIT 5;";
        $con2=mysqli_connect("localhost","xxxx","xxxx","xxxx");
        $results2 =  array();
        $result2 = mysqli_query($con2,$sql2);

        $results2 = mysqli_fetch_all($result2, MYSQLI_ASSOC);

    $output2 = '';

        foreach ($results as $row) {


    $output .= '  <li class="media"> <div class="media-left"> <a href="#">  <img class="media-object img-circle" src="../images/photos/user9.png" alt=""> </a> </div> <div class="media-body"> <h4 class="media-heading"><a href="">'. $row['Username'] . '</a></h4> <span>' . $row['BanditsKilled'] . '</span> playeri ucisi</div> </li>';
        }

}   

                $sql3 = "SELECT Username, pHour FROM users order by pHour DESC LIMIT 5;";
        $con3=mysqli_connect("localhost","xxxx","xxxx","xxxx");
        $results3 =  array();
        $result3 = mysqli_query($con3,$sql3);

        $results2 = mysqli_fetch_all($result3, MYSQLI_ASSOC);

    $output3 = '';

        foreach ($results2 as $row) {


    $output2 .= '  <li class="media"> <div class="media-left"> <a href="#">  <img class="media-object img-circle" src="../images/photos/user9.png" alt=""> </a> </div> <div class="media-body"> <h4 class="media-heading"><a href="">'. $row['Username'] . '</a></h4> <span>' . $row['pHour'] . '</span> ore jucate</div> </li>';
        }

}


                $sql4 = "SELECT Username, pAliveTime FROM users order by pAliveTime DESC LIMIT 5;";
        $con3=mysqli_connect("xxxx","xxxx","xxxx","xxxx");
        $results4 =  array();
        $result4 = mysqli_query($con5,$sql4);

        $results4 = mysqli_fetch_all($result4, MYSQLI_ASSOC);

    $output4 = '';

        foreach ($results4 as $row) {


    $output4 .= '  <li class="media"> <div class="media-left"> <a href="#">  <img class="media-object img-circle" src="../images/photos/user9.png" alt=""> </a> </div> <div class="media-body"> <h4 class="media-heading"><a href="">'. $row['Username'] . '</a></h4> <span>' . $row['pAliveTime'] . '</span> secunde in viata</div> </li>';
        }

    ?>

Я хочу указать, что естьмного больше $ text = $ ['row'], но я не опубликовал их, чтобы избежать массового рассылки спама.

Почему это показывает эти ошибки?Если я использую мой старый код mysql, он прекрасно работает.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

У вас есть несколько проблем с этим кодом ...

$sql = mysqli_query($con, "SELECT * 
                     FROM users 
                     WHERE username = '".$_SESSION['Username']."'");
if ($result=mysqli_query($con,$sql))

Вы используете $sql, чтобы выполнить запрос дважды, я предполагаю, что второй раз предназначен для извлечения данных (используя mysqli_fetch_assoc()) ...

$sql = mysqli_query($con, "SELECT * 
                     FROM users 
                     WHERE username = '".$_SESSION['username']."'");    // lowercase u
if ($row=mysqli_fetch_assoc($sql))

Также не уверен, где определен $con, возможно, потребуется ...

$con=mysqli_connect("localhost","xxxx","xxxx","xxxx");

как и в другое времяпозвоните по этому номеру, лучше всего придерживаться 1-го соединения и использовать его повторно.

Также дальше у вас есть ...

$results2 = mysqli_fetch_all($result2, MYSQLI_ASSOC);

$output2 = '';

foreach ($results as $row) {

, который извлекает данные в $results2 и затем использует$results.

Стоит также ознакомиться с подготовленными утверждениями, поскольку это дает много преимуществ, включая безопасность и т. Д.

0 голосов
/ 23 сентября 2018

Поскольку я не могу комментировать выше, я делаю свой комментарий здесь.Может быть, вместо:


$sql = mysqli_query($con, "SELECT * FROM users WHERE username = '".$_SESSION['Username']."'");
if ($result=mysqli_query($con,$sql))...

вы имеете в виду:


$sql = "SELECT * FROM users WHERE username = '".$_SESSION['Username']."'";
if ($result=mysqli_query($con,$sql))...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...