Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gente boas, estou programando um site com mssql, e agora precisei usar mysql pra fazer a conexao do site com meu forum IPBoard,
Gostaria de saber como vocês podem me ajudar? :)
Seguinte, já fiz uma class, pra conectar meu mysql no site (sou novato 1 mes de php)...
está assim meu código que verifica a query:
<div class="title_content float_right">Notícias do fórum</div>
<div class="content float_right">
<!--<div class="success">Sem registros no banco de dados!</div>-->
<?php
$inc_result_forum = mysql_query("select TOP ".NEWS_FORUM_QUANTIDADE." tid,title,start_date,starter_name from ".PREFIXO_NOTICIA." topics order by tid asc");
if(mysql_num_rows($inc_result_forum) < 1){
?>
<div class="info">Nenhuma notícia cadastrada no fórum :(</div>
<?php
}else{
for($i = 0; $i < mysql_num_rows($inc_result_forum); $i++){
$inc_for = mysql_fetch_row($inc_result_forum);
?>
<?php
if(INC_FORUM_TYPE == 1){ ?>
<a href="<?php echo INC_FORUM_LINK; ?>/index.php?showtopic=<?php echo $inc_for[2]; ?>"><?php echo $inc_for[0]; ?></a>
<?php } // TYPE 1 ?>
<?php if(INC_FORUM_TYPE == 2){ ?>
<a href="<?php echo INC_FORUM_LINK; ?>/index.php/topic/<?php echo $inc_for[2]."-".$inc_for[0]; ?>"><?php echo $inc_for[0]; ?></a>
<?php } // TYPE 2?>
<?php } // FOR
} // ELSE ?>
</div>
<?php } ?>
Só que quando eu executo isso me mostra o seguinte erro:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\myweb\pages\home.php on line 38
Segundo o site do PHP.net eu fiz certo por que foi de lá que eu tirei referência sobre mysql_num_rows();
A minha query eu fui montando conforme a tabela lá tudo em ordem :D
E os meus defines que defini ali na query está exatamente assim
define('NEWS_FORUM_QUANTIDADE', 5); // QUANTIDADE DE NOTÍCIAS A MOSTRAR (PADRÃO: 5)
define('NEWS_FORUM_PREFIX', 'ibf_'); // PREFIXO DAS NOTÍCIAS (PADRÃO: ibf_)
Obs: O site que eu estou fazendo aceita apenas PHP 5.2 então não me critiquem por favor :P
Erro meu esqueci de usar o mysql_error(); Desculpe membros iMasters :cry:
Retornou o erro dizendo :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '5 tid,title,start_date,starter_name from PREFIXO_NOTICIA topics order by tid sa' at line 1
Tá dizendo que meu servidor MySQL não suporta a versão WTF :google:
Fui no google pesquisar e não achei nada a respeito :(
Esquisito isso vou rever meus casos!
Bom eu vi outra coisa também, o MySQL não trabalha com TOP, ele tem LIMIT
Quem trabalha com TOP é MSSql, o MySQL não
é eu tentei usar TOP e LIMIT ambos com o mesmo erro :'(
Resolvi usando isso:
try {
$inc_query = sprintf("SELECT title, start_date, tid, starter_name FROM %stopics ORDER BY tid ASC LIMIT %d", NEWS_FORUM_PREFIX, NEWS_FORUM_QUANTIDADE);
$inc_result_forum = mysql_query($inc_query) or die(mysql_error());
}catch(Exception $e) {
throw $e->getMessage();
}
Esse erro é pq a query em cima não retornou o que deveria. Veja o motivo:
$inc_result_forum = mysql_query("select TOP ".NEWS_FORUM_QUANTIDADE." tid,title,start_date,starter_name from ".PREFIXO_NOTICIA." topics order by tid sac")or die(mysql_error());o or die() ali, vai te mostrar. Corrija.