Grasel 0 Denunciar post Postado Julho 31, 2014 Onde estou errando nesta query? <table width="75%" border="1"> <tr> <td><b>Duelist</b><td> </tr> <tr> <td><b>Character Name</b><td> <td><b>Points</b><td> <td><b>Competitions Done</b><td> </tr> <?php //Script de Status Raid boss //Script Desenvolvido por: Jonatha ferreira. //Email: jonathaferreira@live.com. $db['servidor'] = "localhost";//Nome do servidor $db['usuario_mysql'] = "root";// Usuario do mysql $db['senha_mysql'] = "vertrigo";//Senha do mysql $db['banco_de_dados'] = "site";//Nome d banco de dados $connect = @mysql_connect($db['servidor'], $db['usuario_mysql'], $db['senha_mysql']); @mysql_select_db($db['banco_de_dados'], $connect); if(!$connect) echo 'não foi possivel conectar ao servidor'; else $sql = mysql_query("SELECT cha.char_name, cla.ClassName, noble.olympiad_points, noble.competitions_done FROM olympiad_nobles AS noble INNER JOIN characters AS cha ON cha.obj_Id = noble.charId INNER JOIN char_templates AS cla ON cla.ClassId = noble.class_id "); while($c = mysql_fetch_object($sql)){ ?> <tr> <td><?php echo $c['char_name'] ?><td> <td><?php echo $c['olympiad_points'] ?><td> <td><?php echo $c['competitions_done'] ?><td> </tr> <?php } ?> </table> Se poder ajudar, agradeço... Peço desculpas se postei no lugar errado... sou novo no Fórum Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Julho 31, 2014 Ajude informando o que dá de errado Compartilhar este post Link para o post Compartilhar em outros sites
Grasel 0 Denunciar post Postado Julho 31, 2014 O Mysql acusa o seguinte erro: Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource ja tentei mudar a linha : while($c = mysql_fetch_object($sql)){ para while($c = mysql_fetch_array($sql)){ Mas não funciona, acho que estou errando na hora de unir os dados pesquisados em diferentes tables. alguém sabe? Compartilhar este post Link para o post Compartilhar em outros sites
wesleybelinato 3 Denunciar post Postado Julho 31, 2014 já tentou? while($c = mysql_fetch_assoc($sql)){ Compartilhar este post Link para o post Compartilhar em outros sites
Grasel 0 Denunciar post Postado Julho 31, 2014 <?php $query = mysql_query("SELECT cha.char_name, cla.ClassName, noble.olympiad_points, noble.competitions_done FROM olympiad_nobles AS noble INNER JOIN characters AS cha ON cha.obj_Id = noble.charId INNER JOIN char_templates AS cla ON cla.ClassId = noble.class_id ORDER BY noble.olympiad_points DESC"); while($c = mysql_fetch_assoc($query)){ ?> <tr> <td><?php echo $c['char_name'] ?><td> <td><?php echo $c['olympiad_points'] ?><td> <td><?php echo $c['competitions_done'] ?><td> </tr> <?php } ?> e dando mesmo erro na linha: while($c = mysql_fetch_assoc($query)){ Compartilhar este post Link para o post Compartilhar em outros sites
wesleybelinato 3 Denunciar post Postado Julho 31, 2014 não encontrei erro na sintaxe sql, qualquer coisa se vc usa o workbench ou phpmyadmin tenta colocar lá e ve se funciona, a unica coisa que eu modificaria seria renomear as colunas que vc esta trazendo. SELECT cha.char_name AS 'charname', cla.ClassName AS 'classname', noble.olympiad_points AS 'olympiadpoints', noble.competitions_done AS 'competitionsdone' FROM olympiad_nobles AS noble INNER JOIN characters AS cha ON cha.obj_Id = noble.charId INNER JOIN char_templates AS cla ON cla.ClassId = noble.class_id uma coisa que pode estar dando esse erro é o resultado ser vazio; tenta fazer essa verificação antes if(!empty($query)){ while(.... } Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Julho 31, 2014 Primeiro, não omite os erros causados, resolva-os: $connect = @mysql_connect($db['servidor'], $db['usuario_mysql'], $db['senha_mysql']); @mysql_select_db($db['banco_de_dados'], $connect); Cheque se somente a consulta funciona no banco de dados, pode ser pelo phpmyadmin mesmo, caso não haja problemas na query, tente utilizar o mysqli_fetch_assoc(), há diferença entre versões do MySQL, as últimas versões suportam o uso do mysqli e não o mysql (acho eu, hehe). Compartilhar este post Link para o post Compartilhar em outros sites
Grasel 0 Denunciar post Postado Julho 31, 2014 Nenhuma ajudou, quanto a conexão com o banco de dados eu uso a mesma pra outras aplicações sem erros então não é conexão, vou postar o codigo completo abaixo: <table width="75%" border="1"> <tr> <td><b>Duelist</b><td> </tr> <tr> <td><b>Character Name</b><td> <td><b>Points</b><td> <td><b>Competitions Done</b><td> </tr> <?php $db['servidor'] = "localhost";//Nome do servidor $db['usuario_mysql'] = "root";// Usuario do mysql $db['senha_mysql'] = "vertrigo";//Senha do mysql $db['banco_de_dados'] = "site";//Nome d banco de dados $connect = @mysql_connect($db['servidor'], $db['usuario_mysql'], $db['senha_mysql']); @mysql_select_db($db['banco_de_dados'], $connect); if(!$connect) echo 'não foi possivel conectar ao servidor'; else ?> <?php $query = mysql_query("SELECT characters.char_name, char_templates.ClassName, olympiad_nobles.olympiad_points, olympiad_nobles.competitions_done FROM olympiad_nobles AS noble INNER JOIN characters AS cha ON cha.obj_Id = olympiad_nobles.charId INNER JOIN char_templates AS cla ON cla.ClassId = olympiad_nobles.class_id ORDER BY olympiad_nobles.olympiad_points DESC"); while($c = mysql_fetch_array($query)){ ?> <tr> <td><?php echo $c['char_name'] ?><td> <td><?php echo $c['olympiad_points'] ?><td> <td><?php echo $c['competitions_done'] ?><td> </tr> <?php } ?> </table> Quem sabe algum "Anjo" desse a terra e ajuda :cry: :cry: :cry: Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Agosto 1, 2014 A consulta funciona diretamente no banco de dados? Compartilhar este post Link para o post Compartilhar em outros sites
Grasel 0 Denunciar post Postado Agosto 1, 2014 Sim como mostrado acima Abaixo as ultimas tentativas sem sucesso: <?php $query = mysql_query("SELECT o.*, (SELECT char_name FROM characters WHERE obj_Id = o.charId) AS char_name FROM olympiad_nobles AS o ORDER BY o.olympiad_points DESC") or die(mysql_error()); while(linha = mysql_fetch_array ($query)){ ?> <tr> <td <?php echo $linha['char_name'] ?><td> <td <?php echo $linha['olympiad_points'] ?><td> <td <?php echo $linha['competitions_done'] ?><td> </tr> <?php } ?> retorna o seguinte erro: Parse error: syntax error, unexpected '=' in C:\Program Files (x86)\VertrigoServ\www\PvP\arquivos\olly_teste.php on line 33 na linha33 tem o seguinte: while(linha = mysql_fetch_array ($query)){ Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Agosto 1, 2014 Faz assim: $sql = "SELECT characters.char_name, char_templates.ClassName, olympiad_nobles.olympiad_points, olympiad_nobles.competitions_done FROM olympiad_nobles AS noble INNER JOIN characters AS cha ON cha.obj_Id = olympiad_nobles.charId INNER JOIN char_templates AS cla ON cla.ClassId = olympiad_nobles.class_id ORDER BY olympiad_nobles.olympiad_points DESC"; $query = mysql_query($sql) or die(mysql_error()); Compartilhar este post Link para o post Compartilhar em outros sites
Grasel 0 Denunciar post Postado Agosto 1, 2014 retorna seguinte erro: Unknown column 'characters.char_name' in 'field list' Conferi 10 vezes a tabela characters e esta correto os nomes, nossa que agonia aqui :( :( :cry: minha ultima tentativa foi a seguinte : <?php $query = mysql_query("SELECT o.*, (SELECT char_name FROM characters WHERE obj_Id = o.charId) AS charId FROM olympiad_nobles AS o ORDER BY o.olympiad_points DESC") or die(mysql_error()); while($c = mysql_fetch_array($query)){ ?> <tr> <td><?php echo $c['char_name'] ?><td> <td><?php echo $c['olympiad_points'] ?><td> <td><?php echo $c['competitions_done'] ?><td> </tr> <?php } ?> que retornou o erro: Unknown column 'obj_Id' in 'where clause' Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Agosto 1, 2014 Cara, da um DESC [nome da tabela] em cada uma delas e cola aí pra gente ver. Compartilhar este post Link para o post Compartilhar em outros sites
Grasel 0 Denunciar post Postado Agosto 1, 2014 SELECT `account_name`, `charId`, `char_name`, `level`, `maxHp`, `curHp`, `maxCp`, `curCp`, `maxMp`, `curMp`, `face`, `hairStyle`, `hairColor`, `---`, `heading`, `x`, `y`, `z`, `exp`, `expBeforeDeath`, `sp`, `karma`, `fame`, `pvpkills`, `pkkills`, `clanid`, `race`, `classid`, `base_class`, `transform_id`, `deletetime`, `cancraft`, `title`, `title_color`, `accesslevel`, `online`, `onlinetime`, `char_slot`, `newbie`, `lastAccess`, `clan_privs`, `wantspeace`, `isin7sdungeon`, `punish_level`, `punish_timer`, `power_grade`, `nobless`, `subpledge`, `lvl_joined_academy`, `apprentice`, `sponsor`, `clan_join_expiry_time`, `clan_create_expiry_time`, `death_penalty_level`, `aio`, `aio_end`, `vip`, `vip_end`, `bookmarkslot`, `vitality_points`, `createDate`, `pccafe_points`, `language`, `prime_points`, `lastVoteHopzone`, `lastVoteTopzone`, `hasVotedHop`, `hasVotedTop`, `monthVotes`, `totalVotes`, `tries`, `bot_report_points` FROM `characters` WHERE 1 SELECT `ClassId`, `ClassName`, `RaceId`, `STR`, `CON`, `DEX`, `_INT`, `WIT`, `MEN`, `P_ATK`, `P_DEF`, `M_ATK`, `M_DEF`, `MOVE_SPD`, `x`, `y`, `z`, `M_COL_R`, `M_COL_H`, `F_COL_R`, `F_COL_H` FROM `char_templates` WHERE 1 SELECT `charId`, `class_id`, `olympiad_points`, `competitions_done`, `competitions_won`, `competitions_lost`, `competitions_drawn`, `competitions_done_week`, `competitions_done_week_classed`, `competitions_done_week_non_classed`, `competitions_done_week_team` FROM `olympiad_nobles` WHERE 1 esta ai todas as minhas tabelas Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Agosto 1, 2014 Sua SQL: $query = mysql_query("SELECT characters.char_name, char_templates.ClassName, olympiad_nobles.olympiad_points, olympiad_nobles.competitions_done FROM olympiad_nobles AS noble INNER JOIN characters AS cha ON cha.obj_Id = olympiad_nobles.charId INNER JOIN char_templates AS cla ON cla.ClassId = olympiad_nobles.class_id ORDER BY olympiad_nobles.olympiad_points DESC"); Tá complicado, mas vamos lá, substitua o characters.char_name por cha.char_name, você deve ter adaptado mas não se atentou a este detalhe. Compartilhar este post Link para o post Compartilhar em outros sites
Grasel 0 Denunciar post Postado Agosto 1, 2014 Pessoal acabei de fazer o seguinte teste: <?php $db['servidor'] = "127.0.0.1";//Nome do servidor $db['usuario_mysql'] = "root";// Usuario do mysql $db['senha_mysql'] = "vertrigo";//Senha do mysql $db['banco_de_dados'] = "l2jserver";//Nome d banco de dados $open = mysql_connect($db['servidor'], $db['usuario_mysql'], $db['senha_mysql']) or die("Não foi possível conectar-se à database."); $select_db = mysql_select_db($db['banco_de_dados'], $open) or die("Database não encontrada ou inexistente."); $query = mysql_query("SELECT charId FROM characters WHERE 1"); while($linha = mysql_fetch_array($query)){ ?> <tr> <td><?php echo $linha['char_name'] ?><td> </tr> <?php } ?> MEU DESESPERO FOI: "NÃO RETORNA NADA DESSA TABELA (characters)" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa e agora o que eu faço? Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Agosto 1, 2014 Troca mysql_fetch_array por mysqli_fetch_array, note que é mysqli Compartilhar este post Link para o post Compartilhar em outros sites
Grasel 0 Denunciar post Postado Agosto 1, 2014 ja troquei anteriormente nem assim busca Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Agosto 1, 2014 Vamos partir do princípio, $query = "SHOW TABLES"; O nome da coluna será "tables_in_" & $db['banco_de_dados'] Compartilhar este post Link para o post Compartilhar em outros sites
lokaodomau 61 Denunciar post Postado Agosto 1, 2014 Esta é a resposta: $linha = array(); while($linha = mysql_fetch_array($query)){ Defina a variável $linha antes de utiliza-la. Compartilhar este post Link para o post Compartilhar em outros sites