Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá
Tenho um script que funciona +/-, quero que quando uma busca retornar nada seja exibida a mensagem "sem registros", eu criei um if para isso, ele retorna essa mensagem mas tbm retorna uma mensagem de erro, veja:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\cliente\curriculum\categorias.php on line 19
Sem registros.
veja como está o código:
<?php
include "conmysql.php";
$area_pretendida = $_GET['area_pretendida'];
$consulta = "SELECT * FROM curriculum WHERE area_pretendida='$area_pretendida'";
$fazer_consulta = mysql_query($consulta);
if(mysql_num_rows($consulta) <= 0){
echo '<div class="conteinerfoto">Sem registros</div>';
}
while ($dados_consulta = mysql_fetch_array($fazer_consulta)) {
$nome = $dados_consulta ['nome'];
$id = $dados_consulta['id'];
echo "<a href=ver_curriculum.php?id=$id><span class='style3'>$nome</span></a><br><hr>";
}
?>
gostaria da ajuda de vcs para resolver isso.
Olá Tash
Tentei com o código que você me passou porém continua com o mesmo erro:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\cliente\curriculum\categorias.php on line 21
Sem registros
e uma outra coisa "estranha" tbm, mesmo quando retorna algum valor e mostra a mensagem, ex:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\cliente\curriculum\categorias.php on line 21
Sem registros
Registro teste 1
Registro teste 2
Você postou todo o script? tem mais alguma parte?
ele está completo
<?php
include "conmysql.php";
$area_pretendida = $_GET['area_pretendida'];
$consulta = "SELECT * FROM curriculum WHERE area_pretendida='$area_pretendida'";
$fazer_consulta = mysql_query($consulta);
if(!$fazer_consulta || mysql_num_rows($consulta) <= 0){
echo '<div class="conteinerfoto">Sem registros</div>';
} else {
while ($dados_consulta = mysql_fetch_array($fazer_consulta)) {
$nome = $dados_consulta ['nome'];
$id = $dados_consulta['id'];
echo "<a href=ver_curriculum.php?id=$id><span class='style3'>$nome</span></a><br><hr>";
}
}
?>
Acho que esse else adicional, resolve.continua dando erro, agora até mesmo quando tem algum registro.
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Ouro Branco-Noticias\curriculum\categorias.php on line 20
Sem registros
Eu to desatento! haha... a variável passada pro num_rows tá errada:
<?php
include "conmysql.php";
$area_pretendida = $_GET['area_pretendida'];
$consulta = "SELECT * FROM curriculum WHERE area_pretendida='$area_pretendida'";
$fazer_consulta = mysql_query($consulta);
if(!$fazer_consulta || mysql_num_rows($fazer_consulta) <= 0){
echo '<div class="conteinerfoto">Sem registros</div>';
} else {
while ($dados_consulta = mysql_fetch_array($fazer_consulta)) {
$nome = $dados_consulta ['nome'];
$id = $dados_consulta['id'];
echo "<a href=ver_curriculum.php?id=$id><span class='style3'>$nome</span></a><br><hr>";
}
}
?>hehe, tbm fiquei desatento... mas agora os que contem registros são exibidos normalmente, mas o que não tem registro a página fica em branco, não exibe o "sem registros" :huh:
(file_exists('conmysql.php')) ? require('conmysql.php'):false;
$area_pretendida = $_GET['area_pretendida'];
$consulta =mysql_query("SELECT * FROM curriculum WHERE area_pretendida='$area_pretendida'")or die(mysql_error());
if(mysql_num_rows($consulta) > 0){
while ($dados_consulta = mysql_fetch_array($consulta)){
$nome = $dados_consulta ['nome'];
$id = $dados_consulta['id'];
echo '<a href="ver_curriculum.php?id='.$id.'"><span class="style3">'.$nome.'</span></a><br><hr>';
}
} else {
echo '<div class="conteinerfoto">Sem registros</div>';
}
?>
mysql_query pode retornar tanto um manipulador do tipo resource quanto um booleano FALSE. Se ele retornar FALSE, você não consegue aplicar mysql_num_rows.
Pra resolver, primeiro você checa se $fazer_consulta não é FALSE usando o operador "!" (exclamação), depois, se ele for diferente de FALSE, você pode checar o número de linhas.