PHP mySQL problem when using umlaut

0

I need to develop a script that checks for an accented character in the string and saves a string variable without the umlaut.

The script that clears below compiles

//Checa Especial
$nomeCliente = "Bröring";

if(strstr($nomeCliente, "ä") || 
   strstr($nomeCliente, "ö") || 
   strstr($nomeCliente, "ü")){

    if(strstr($nomeCliente, "ä")){ $variavel .= str_replace("ä", "a", $nomeCliente).","; }
    if(strstr($nomeCliente, "ö")){ $variavel .= str_replace("ö", "o", $nomeCliente).","; }
    if(strstr($nomeCliente, "ü")){ $variavel .= str_replace("ü", "u", $nomeCliente).","; }

    echo $variavel;
    //Imprime Broring,

}else{
    echo "Não há trema";
}

I did a direct query in PHPmyAdmin

SELECT id, nome FROM clientes WHERE nome LIKE '%ö%'

To see if you could pull the data like this and compile

ThenIimplementedascript

//Geravariáveisdonome$sqlTremas=mysqli_query($conn,"SELECT id, nome FROM clientes WHERE nome LIKE '%ö%' OR nome LIKE '%ä%' OR nome LIKE '%ü%'");

while($dadosT = mysqli_fetch_array($sqlTremas)) {
    //Checa Especial
    $nomeCliente = utf8_decode($nomeCliente);

    if(strstr($nomeCliente, "ä")){ $variavel .= str_replace("ä", "a", $nomeCliente).","; }
    if(strstr($nomeCliente, "ö")){ $variavel .= str_replace("ö", "o", $nomeCliente).","; }
    if(strstr($nomeCliente, "ü")){ $variavel .= str_replace("ü", "u", $nomeCliente).","; }

    $tamanhoStringVariavel = strlen($variavel);
    $variavel = substr($variavel, 0, $tamanhoStringVariavel-1);

    $alteraCliente = mysqli_query($conn, "UPDATE clientes SET variavel = '{$variavel}' WHERE id = {$dadosT['id']}");

    if($alteraCliente) {
        echo "SUCESSO {$dadosT['id']}<br><br>";
    }else{
        echo "ERRO {$dadosT['id']}<br><br>";
    }
}

In this code the mysql_num_rows($sqlTremas) comes empty, but when compiling directly into mysql, it works. I have another query in the same file that works (it is not connection to the database). What can it be?

    
asked by anonymous 21.12.2017 / 15:55

1 answer

-1

You have checked the snippet below the comment *//Checa Especial*

$sqlTremas = mysqli_query($conn, "SELECT id, nome FROM clientes WHERE nome LIKE '%ö%' OR nome LIKE '%ä%' OR nome LIKE '%ü%'");

while ($dadosT = mysqli_fetch_array($sqlTremas)) {
    //Checa Especial
    $nomeCliente = ($dadosT['nome']);

    if (strstr($nomeCliente, "ä")) {
        $variavel .= str_replace("ä", "a", $nomeCliente) . ",";
    }
    if (strstr($nomeCliente, "ö")) {
        $variavel .= str_replace("ö", "o", $nomeCliente) . ",";
    }
    if (strstr($nomeCliente, "ü")) {
        $variavel .= str_replace("ü", "u", $nomeCliente) . ",";
    }

    $tamanhoStringVariavel = strlen($variavel);
    $variavel = substr($variavel, 0, $tamanhoStringVariavel - 1);

    $alteraCliente = mysqli_query($conn, "UPDATE clientes SET variavel = '{$variavel}' WHERE id = {$dadosT['id']}");

    if ($alteraCliente) {
        echo "SUCESSO {$dadosT['id']}<br><br>";
    } else {
        echo "ERRO {$dadosT['id']}<br><br>";
    }
}
    
21.12.2017 / 16:19