[Resolvido] PHP executa query mas não retorna valores.

king344

Membro
Ao executar:

PHP:
if (empty($_GET['tipo']) and isset($_GET['dep'])){
        $ldep = $_GET['dep'];
        $ldep = utf8_decode($ldep);     
        $dep= converter($ldep);
        $sql = "SELECT * FROM `feed` WHERE Departamento LIKE '$dep'";
        //echo $sql;
        $result = mysql_query($sql);
        if (!$result) {
            echo "Query mal ($sql) mal executada a partir da DB: " . mysql_error();
            exit;
        }

        if (mysql_num_rows($result) == 0) {
           echo "Nada encontrado";
           exit;
        }

        while($values_query = mysql_fetch_assoc($result)){
              //codigo
           }
}

Ele vai até ao "Nada encontrado", ou seja, a query não esta a retornar valores mas se eu a copiar e executar no phpmyadmin já me é apresentado os rows que deviam aparecer ao executar o código PHP.

Agradeço a quem me poder ajudar. :D
 
Tens a certeza que essa é a string correta com esses espaçamentos? Experimenta colocar Like '%$dep%'.

Podes também pegar nessa query e corre—la diretamente num cliente, heidi por exemplo e ver se dá o esperado.
 
Mesmo com os % no php n retorna nenhum row, já ao executar no phpmyadmin na linha de comandos sql ele devolve todos os row q deviam aparecer no php.

Ex: SELECT * FROM `feed` WHERE Departamento LIKE 'Escola de Engenharia - Presidência'
$dep = 'Escola de Engenharia - Presidência'

//codigo
$sql = "SELECT * FROM `feed` WHERE Departamento LIKE '$dep'";
$result = mysql_query($sql);
if (!$result) {
echo "Query mal ($sql) mal executada a partir da DB: " . mysql_error();
exit;
}

if (mysql_num_rows($result) == 0) {
echo "Nada encontrado";
exit; --> Sai aqui porque n retorna nenhum row
}

mas se fizer

$sql = "SELECT * FROM `feed` WHERE Departamento LIKE '$dep'";
echo $sql;
$result = mysql_query($sql);
if (!$result) {
echo "Query mal ($sql) mal executada a partir da DB: " . mysql_error();
exit;
}

if (mysql_num_rows($result) == 0) {
echo "Nada encontrado";
exit; --> Ele sai mas consigo ver a query ex: SELECT * FROM `feed` WHERE Departamento LIKE 'Escola de Engenharia - Presidência' se a copiar e meter na linha de comandos sql no phpmyadmin ele ja retorna todos os rows q devia fazer ao correr o codigo.
}
 
Pelos vistos faltava:

Código:
$ldep = $_GET['dep'];
$ldep = utf8_decode($ldep);       
$dep = converter($ldep);
»» $dep = utf8_decode($dep); «« refazer a variavel para que a bd aceite a acentuação
$sql = "SELECT * FROM `feed` WHERE Departamento LIKE '%$dep%'";
        echo $sql;
        $result = mysql_query($sql);
        if (!$result) {
            echo "Query mal ($sql) mal executada a partir da DB: " . mysql_error();
            exit;
        }

        if (mysql_num_rows($result) == 0) {
            echo "Nada encontrado";
            exit;
        }

        while($values_query = mysql_fetch_assoc($result)){
//codigo
}
 
Back
Topo