PHP page does not identify SELECT result

1

I'm doing a PHP page to show database information, but it does not give an error and only returns " :0 " on the page, as if there had not been any results from SELECT (only enters else ).

Follow the code:

<?php
    $conexao = mysqli_connect("localhost","root","") 
    or die("Erro na conexão com banco de dados");      
    $select_db = mysqli_select_db($conexao,"mentoria"); 
    $campos = array(".", "-");      

    $cpf = str_replace($campos,"",$_POST["inputCPF"]);

    $consulta_jovens = "SELECT jCPF AS jovem, ((CASE WHEN jovem.jfaixaetaria = mentor.mfaixaetaria THEN 1 ELSE 0 END)+(CASE WHEN jovem.jescolaridade = mentor.mescolaridade THEN 1 ELSE 0 END)+(CASE WHEN jovem.jhobby = mentor.mhobby THEN 1 ELSE 0 END)+(CASE WHEN jovem.jcomida = mentor.mcomida THEN 1 ELSE 0 END)+(CASE WHEN jovem.jmusica = mentor.mcomida THEN 1 ELSE 0 END)+(CASE WHEN jovem.jesporte = mentor.mesporte THEN 1 ELSE 0 END)+(CASE WHEN jovem.jtime = mentor.mtime THEN 1 ELSE 0 END)+(CASE WHEN jovem.jcaracteristica = mentor.mcaracteristica THEN 1 ELSE 0 END)+(CASE WHEN jovem.janimal = mentor.manimal THEN 1 ELSE 0 END)+(CASE WHEN jovem.jlivro = mentor.mlivro THEN 1 ELSE 0 END)+(CASE WHEN jovem.jsonho = mentor.msonho THEN 1 ELSE 0 END)) AS qtdCaracteristicasIguais FROM jovem INNER JOIN mentor ON jovem.jcidade = mentor.mcidade AND jovem.jestado = mentor.mestado WHERE mentor.mcidade = jovem.jcidade AND mentor.mestado   = jovem.jestado AND mentor.CPF ='$cpf'";

    $string_sql = "SELECT * FROM mentor WHERE CPF='$cpf'";  

    $result= mysqli_query($conexao, $string_sql); 

    $resultadojovens = mysqli_query($conexao,$consulta_jovens);

    $dado = mysqli_fetch_array($result);    
    $aluno = mysqli_fetch_array($resultadojovens);

    $alunosel = $aluno['qtdCaracteristicasIguais'];
    $nome = $dado['mnome'];     

    if(mysqli_affected_rows($conexao) == 1){ 
        echo "<p><h2>Olá, $nome! <br><br> Escolha o seu mentorando abaixo:</h2></p>
        <br>
        <br>
        <p>$resultadojovens</p>";

    } else {
        echo mysqli_errno($conexao) . ": " . mysqli_error($conexao) . "\n";
    }

    mysqli_close($conexao); 
    
asked by anonymous 18.01.2018 / 15:01

1 answer

3

Probably the problem is the use of this function:

mysqli_affected_rows

The mysqli_affected_rows is used to get the number of changes of a DELETE or UPDATE , or to identify if the operation is a REPLACE that you inserted or updated.

If you want the number of rows returned by a SELECT you should use this:

mysqli_num_rows

Maybe it's the case of using if(mysqli_num_rows($conexao)) without ==1 so that if enters the first condition even if the number of rows is greater than zero, not just one.

    
18.01.2018 / 15:04