Mysqli does not display results

1

I have the following table in the bd DUELOS, I inserted the data but at the time of picking up the result I am having problem what should be?

Fudged data in table

Datasearchcode

$iddesafiante=$_SESSION['user_id'];$desafiante=$_SESSION['username'];$iddesafiado=$_GET['idd'];$desafiado=$_GET['d'];$sql="SELECT * FROM duelos WHERE status='desafiado' AND desafiado='$desafiante' ";
 $query = $mysqli->query($sql);
 while ($dados = $query->mysqli_fetch_array()) {
 echo "Você foi desafiado por: ' . $dados['iddesafiado'] . ' <br> Aceitar Desafio / Não aceitar";
 }

error generated            Fatal error: Call to undefined method mysqli_result::mysqli_fetch_array

Full page code

  <?php
    require_once("functions.php");
    require_once("config2.php");
    session_start();
    if (logged_in() == false) {
        redirect_to("login.php");
    }

    //values to be inserted in database table
    $time = time();
    $acao = $_GET['acao'];
    $iddesafiante = $_SESSION['user_id'];
    $desafiante = $_SESSION['username'];
    $iddesafiado = $_GET['idd'];
    $desafiado = $_GET['d'];
    $status = 'desafiado';

    switch($acao)
    {
        case 'nenhuma';
           // ---------------- VERIFICACAO SE FOI DESAFIADO------------------
    $sql = "SELECT * FROM duelos WHERE status='desafiado' AND desafiado='$desafiante' ";
    $query = $mysqli->query($sql);
    while ($dados = $query->mysqli_fetch_array()) {
      echo "Você foi desafiado por: ' . $dados['iddesafiado'] . ' <br> Aceitar Desafio / Não aceitar";
    }

        break;

        case 'desafiar';
           // ---------------- VERIFICACAO SE JA DUELOU NAS ULTIMAS 24 HORAS COM O MESMO OPONENTE ------------------

           // ---------------- SE NAO DUELOU DESAFIAR ------------------


        break;

        case 'aceitar';
                // ---------------- UPDATE ACEITAR ------------------

        break;

        case 'emduelo';
      echo " breve";
        break;
        case 'breve';
            echo 'verificar se tem desafio';
        break;
        case 'aguardando';
            echo 'vreve';
        break;

        default;
        echo 'texto quando nao existir o parametro';
        break;
    }

    ?>
    
asked by anonymous 14.02.2016 / 22:29

2 answers

1

You are invoking a nonexistent method:

  

while ($ data = $ query- mysqli_fetch_array ()) {

Edit to

while ($dados = $query->fetch_array()) {

Of course, it does not mean that it will fetch the result you expect because the way you are generating the query query can be inconsistent and insecure.

Also check that the query is being formed correctly.

$sql = "SELECT * FROM duelos WHERE status='desafiado' AND desafiado='$desafiante' ";

Create a simple breackpoint to check how the query is being mounted.

Example:

$sql = "SELECT * FROM duelos WHERE status='desafiado' AND desafiado='$desafiante' ";
echo $sql; exit;

This will print the query and stop the page from running. This is just to debug and find the problem. This can be called a breakpoint.

What should you do? Just read the query and evaluate if it is correct.

    
14.02.2016 / 23:39
0

One way I was using is as follows:

while ($a = mysqli_fetch_assoc($exec)) { // fetch_assoc obtendo todos os resultados do banco de dados conforme a consulta
                foreach ($a as $i => $rows) {
                    echo $rows = $a[$i] . "<br/>";
                    $i++;
                }
            }
    
23.07.2017 / 06:13