Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Grasel

Como adaptar esta query?

Recommended Posts

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

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

 <?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

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

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

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

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

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

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
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
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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.