Ir ao conteúdo
  • Cadastre-se
Pedro Guilherme

RESOLVIDO Imprimir valores limitados?

Recommended Posts

Preciso imprimir valores igual da outra vez, porém agora preciso imprimir apenas 5 valores e depois que o jogador usasse outra carta, aparecia uma outra carta.Já tentei usar if e não resolveu de nada.

<?php  $name = $_SESSION["nome"];  $query=mysql_query("SELECT * FROM users WHERE nome='$name'");  $x=mysql_fetch_array($query);  $x2 =  $x["id"];  $query2=mysql_query("SELECT * FROM deck WHERE idjogador='$xo' ORDER BY RAND()");   echo "<div id='cards'>"; //divwhile($deck = mysql_fetch_object($query2)):$y=mysql_query("SELECT * FROM cartas  WHERE id='$deck->idcarta'");  $xy=mysql_fetch_array($y);  $xo2 = $xy["imagem"]; echo "      <img src='$xo2' width='100'>    ";endwhile;  ?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até ai tudo bem, mas como disse, como faço para que depois que ele use uma carta, aparece outra ( que não seja a que ele tenha usado)?O jogador tem que ficar sempre com 5 cartas na mão

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu penso em duas possibilidades:

 

1- Criar uma tabela para receber o id das cartas usadas.. e de acordo com esta tabela, a carta usada fica indisponível  forçando a usar a seguinte. no momento que encerrar o jogo, zerar a tabela.

 

2- fazer uma consulta com todas as cartas do jogador, armazena-las em um array... e usar as funções array_search  e unset  para procurar e remover o elemento do array.

 

ps: nesse segundo caso, você trata tudo na linguagem de programação.... no primeiro,  é tratado no banco de dados( pode ser mais lento por causa das requisições)

 

link útil: remover elemento de um array

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com uma ideia aqui mas antes preciso saber de uma coisa, na parte 

while($deck = mysql_fetch_object($query2)):

teria como imprimir os valores das cartas, mas de maneira que não usasse um while? talvez um for ou qualquer meio alternativo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem problemas... mas, o laço do while serve justamente quando o número de elementos é indefinido(mesmo que você saiba o numero exato no banco)

O laço de for é usado quando já sabemos o número de elementos. como por exemplo:

 

Daria para fazer desta forma:

$query = mysql_query ("SELECT * FROM tabela" );$max = mysql_num_rows($query);for($i = 0; $i < $max; $i++):$row = mysql_fetch_object($query);echo "      $row->campo <br/>     ";endfor;

Veja que se não utilizar o while, você precisará setar o número máximo de registros e fazer um laço de for,  dentro dele setar o fetch, seja lá qual for. (object, array, assoc)

 

Eu particularmente prefiro o while.

No seu caso, pensaria em uma das duas possíveis soluções que eu apresentei no post #4

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do jeito que eu fiz não deu mesmo

for($i = 1; $i < $max; $i++):$row = mysql_fetch_object($query2);$qur=mysql_query("SELECT * FROM cartas  WHERE id='$row->idcarta'"); $x2=mysql_fetch_array($qur);  $x02 = $x2["imagem"];   $carta[$i]=$x02;echo "     	 <img src='$x02' width='100'>     ";endfor;unset($carta[2]);unset($carta[3]);unset($carta[8]);  ?>

Vou tentar com o tipo que você propôs, se possível explique o que tem de errado nessa tentativa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente:

while($row = mysql_fetch_array($result)){    $result_array[] = $row['campo'];    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poxa, amigo.. nem para pensar um pouquinho? rsrs  :lol:

 

 exemplo quando não se sabe o numero de registros:

while($row = mysqli_fetch_object($consulta)):  $arrayDeResultados[ $row->CAMPO] = $row;endwhile;

Bom, esse é só um exemplo.. e bem simples...  

Não vai funcionar a menos que você adapte para seus objetivos.

ps: fiz de cabeça...  rsrs pode conter erros 

ps2: existem outras maneiras de fazer a mesma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu aprendi PHP faz 3 dias amigo, sei que preciso ler um pouco mais a respeito.Mas quanto ao "Poxa, amigo.. nem para pensar um pouquinho? " eu já tinha tentando fazer mas não consegui, desculpa se não sei o suficiente. 


Enfim, dessa forma eu já tinha feito acima, vou tentar fazer sozinho e não perguntar mais aqui.Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu aprendi PHP faz 3 dias amigo, sei que preciso ler um pouco mais a respeito.Mas quanto ao "Poxa, amigo.. nem para pensar um pouquinho? " eu já tinha tentando fazer mas não consegui, desculpa se não sei o suficiente. 

Enfim, dessa forma eu já tinha feito acima, vou tentar fazer sozinho e não perguntar mais aqui.Abraços

Não foi desta maneira que eu disse.

Eu disse que você precisa tentar,  postar aqui o que tentou... no caso do post #10. foi uma pergunta, sem sua tentativa..

O tempo que você aprendeu a linguagem pouco importa, o que importa é as tentativas entendeu? 

 

Você pode perguntar o quanto quiser, mas lembre sempre de postar alguma tentativa como você vinha fazendo!

 

enfim.. Re-leia o post #11,  eu alterei o código... está testado e funcionando. só precisas alterar para seu proprósito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei aqui fazer da minha maneira e deu certo, tanto para imprimir quanto para destruir os arrays

for($i = 1; $i < $max; $i++):$row = mysql_fetch_object($query2);$qur=mysql_query("SELECT * FROM cartas  WHERE id='$row->idcarta'"); $x2=mysql_fetch_array($qur);   $carta[$i]= $x2["imagem"];endfor;for($i=1;$i<6;$i++){echo "<img width='100' src='$carta[$i]'>";  }

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×