Jump to content
RichardOptions

[Iniciante] Array nessa forma, Array na tabela? [Resolvido]

Recommended Posts

Olá pessoal, estou novamente aqui pedindo auxílio aos mestres!

Estou há mais de 18 horas fazendo exercícios que preciso entregar para amanhã, são 10, já foram 8, faltam só 2, mas estes mesmo após horas de vídeo-aula, google e manual php, não to conseguindo fazer o link mental.

Então peço ajuda novamente!

 

Vou deixar os 2 exercícios que faltam e quem puder me dar uma luz de onde estou errando e como seguir, agradeço.

Exercício 9

<?php
/**
* Exercício 9
* Considere que você tem uma página chamada cidades.php, que contém um array $cidades da seguinte forma:
* <?php
* $cidades["PR"][] = "Curitiba";
* $cidades["PR"][] = "Londrina";
* $cidades["PR"][] = "Pinhais";
* $cidades["SC"][] = "Florianópolis";
* ?>
* Essa página, ao receber por GET a variável “estado”, deverá exibir apenas o nome
* das cidades, em ordem alfabética, que pertencerem ao estado. Se não houver cidades
* do estado informado, deverá exibir a mensagem: “Não há cidades desse estado”. Se a
* variável “estado” não for informada, a página deverá exibir todas as cidades no
* seguinte formato: “Cidade – Sigla do Estado”, ordenadas alfabeticamente por estado e cidade.
*/

header('Content-Type: text/html; charset=utf-8');

$cidades["PR"][] = "Curitiba";
$cidades["SP"][] = "São Paulo";
$cidades["PR"][] = "Pinhais";
$cidades["SC"][] = "Florianópolis";
$cidades["RJ"][] = "Niterói";

if(!empty($_GET['estado'])){

    $getEstado = $_GET['estado'];

    echo "Estado consultado: " . $getEstado . "<br><br>";

    foreach ($cidades as $chave => $valor) {
        echo "$chave: $valor \n";
    }

} else {
    echo "Você precisa inserir um UF em 'estado'";
}

?>

Eu não sei como trabalhar e bolar a lógica usando esse tipo de array, sei que pode ser simples pra quem tem total conhecimento em arrays, mas não sei mais pra onde correr.

[Exercício 9 - Resolvido e compreendido com a ajuda do parceiro Gleyson]

 

 

Exercício 10:

<?php
/**
* Exercício 10
* Dado um array com o nome das capitanias hereditárias, exiba-os em ordem
* ascendente ou descendente. Para isso, ao lado do cabeçalho da tabela, coloque dois
* links: um indicando para cima e outro, para baixo. Ao clicar “para cima” ou quando não
* houver indicação, os nomes deverão ser exibidos alfabeticamente; ao clicar para
* baixo, a exibição deverá ser invertida.
*/

$capitanias = array(
    "CAPITANIAS MARANHÃO",
    "CAPITANIA CEARÁ",
    "CAPITANIA RIO GRANDE",
    "CAPITANIA ITAMARACÁ",
    "CAPITANIA PERNAMBUCO",
    "CAPITANIA BAHIA",
    "CAPITANIA ILHÉUS",
    "CAPITANIA PORTO SEGURO",
    "CAPITANIA ESPIRITO SANTO",
    "CAPITANIA SÃO TOMÉ",
    "CAPITANIA RIO DE JANEIRO",
    "CAPITANIA SANTO AMARO",
    "CAPITANIA SÃO VICENTE",
    "CAPITANIA SANTANA"
);

//foreach ($capitanias as $lista) {
//    echo $lista . "<br>";
//}

?>
<html>
<body>
<title>Exercício 10</title>
<table border="1px">
<?php foreach ($capitanias as $lista) { ?>
    <tr>
        <th><?php echo $lista;?></th>

    </tr>
<?php } ?>
</table>
</body>
</html>

No exercício 10 consegui chegar até certo ponto, que foi montar a lista dentro de uma tabela normal, mas mas agora também me perdi porque não sei como fazer esses 2 links pra ordenar de forma diferente a tabela...

 

Bem, é isso pessoal, sei que não é muito, mas agradeço quem puder me ajudar em tão pouco tempo que tenho, ainda mais em um domingo.

Share this post


Link to post
Share on other sites
6 horas atrás, RichardOptions disse:

foreach ($cidades as $chave => $valor) {

por:

6 horas atrás, RichardOptions disse:

foreach ($cidades[$getEstado] as $chave => $valor) {

 

Troque seu $cidades[$getEstado] para pegar somente os valores que correspondem ao estado solicitado.

---------------------------------------------------------------------------------------

 

6 horas atrás, RichardOptions disse:

$getEstado = $_GET['estado'];

por

6 horas atrás, RichardOptions disse:

$getEstado =strtoupper( $_GET['estado']);

$getEstado ele esta vindo em minusculas, dentro do $cidades[PR] o PR está em maiúsculas então botei para todas as letras dentro de $getEstado ficar em maiúsculas.

  • Obrigado! 1

Share this post


Link to post
Share on other sites
37 minutes ago, Gleyson Abreu said:

por:

 

Troque seu $cidades[$getEstado] para pegar somente os valores que correspondem ao estado solicitado.

---------------------------------------------------------------------------------------

 

por

$getEstado ele esta vindo em minusculas, dentro do $cidades[PR] o PR está em maiúsculas então botei para todas as letras dentro de $getEstado ficar em maiúsculas.

 

Boa noite, Gleyson! Obrigado pela resposta e pela ajuda.

É nessa parte que eu estou perdido, em pegar os valores correspondentes ao estado solicitado.

Ainda tentando aqui...

 

Mas obrigado pela resposta!

Share this post


Link to post
Share on other sites
3 minutos atrás, RichardOptions disse:

 

Boa noite, Gleyson! Obrigado pela resposta e pela ajuda.

Mas você confundiu, são 2 códigos diferentes, no caso 2 exercícios. O primeiro que tem o array de cidades é 1 código. Onde preciso listar as cidades do estado recebido pelo $getEstado.

 

O abaixo,que tem a lista das capitanias, é outro exercício, onde preciso montar essa lista em uma tabela com ordem crescente ou decrescente.

 

Mas obrigado pela resposta!

Sim eu entendi eu enviei a ajuda somente do primeiro código o de mostrar apenas as cidades dos estado, adicionei um if para verificar se há cidades no estado informado:

<?php
/**
* Exercício 9
* Considere que você tem uma página chamada cidades.php, que contém um array $cidades da seguinte forma:
* <?php
* $cidades["PR"][] = "Curitiba";
* $cidades["PR"][] = "Londrina";
* $cidades["PR"][] = "Pinhais";
* $cidades["SC"][] = "Florianópolis";
* ?>
* Essa página, ao receber por GET a variável “estado”, deverá exibir apenas o nome
* das cidades, em ordem alfabética, que pertencerem ao estado. Se não houver cidades
* do estado informado, deverá exibir a mensagem: “Não há cidades desse estado”. Se a
* variável “estado” não for informada, a página deverá exibir todas as cidades no
* seguinte formato: “Cidade – Sigla do Estado”, ordenadas alfabeticamente por estado e cidade.
*/

header('Content-Type: text/html; charset=utf-8');
$cidades["PR"][] = "Curitiba";
$cidades["SP"][] = "São Paulo";
$cidades["PR"][] = "Ainhais";
$cidades["SC"][] = "Florianópolis";
$cidades["RJ"][] = "Niterói";

if(!empty($_GET['estado'])){
    $getEstado = strtoupper($_GET['estado']);
    echo "Estado consultado: ".$getEstado."<br><br>";
    if(isset($cidades[$getEstado])){

    	foreach ($cidades[$getEstado] as $chave => $valor) {
        	echo "$chave: $valor \n";
    	}
    }else{
    	echo "Não há cidades do estado informado.";
    }


} else {
    echo "Você precisa inserir um UF em 'estado'";
}

?>

 

  • Obrigado! 1

Share this post


Link to post
Share on other sites
6 minutes ago, Gleyson Abreu said:

Sim eu entendi eu enviei a ajuda somente do primeiro código o de mostrar apenas as cidades dos estado, adicionei um if para verificar se há cidades no estado informado:

 

Ah, eu até editei antes o meu post ali, eu que entendi errado, olhando agora, entendi o que eu tinha que ter feito no exercício.

Tirando o "echo" de testes ali que tava dando erro, tudo certinho agora, show!

Acho que vou demorar pra pegar o jeito com os Arrays.

 

Agora vou focar no último exercício, esse com tabelas que eu só consegui imprimir a lista de arrays dentro, mas não faço ideia de como fazer pra links indicando a ordem como está descrito, mas vamos lá!

 

Muito obrigado pela ajuda Gleyson, você não tem ideia do tempo que eu to nisso e preciso entregar amanhã, to na loucura aqui.

Share this post


Link to post
Share on other sites
23 minutos atrás, RichardOptions disse:

 

Ah, eu até editei antes o meu post ali, eu que entendi errado, olhando agora, entendi o que eu tinha que ter feito no exercício.

Tirando o "echo" de testes ali que tava dando erro, tudo certinho agora, show!

Acho que vou demorar pra pegar o jeito com os Arrays.

 

Agora vou focar no último exercício, esse com tabelas que eu só consegui imprimir a lista de arrays dentro, mas não faço ideia de como fazer pra links indicando a ordem como está descrito, mas vamos lá!

 

Muito obrigado pela ajuda Gleyson, você não tem ideia do tempo que eu to nisso e preciso entregar amanhã, to na loucura aqui.

E falando do exercicio 10 ele quer que você ponhe em ordem alfebetica e só você em baixo do array $capitanias o seguinte:

asort($capitanias) para ordem alfabética a-z ou

arsort($capitanias) para ordem inversa.

Você pode passar um parametro GET[] na url para identificar se é ordem alfabética ou a inversa:

ex:

www.seusite.com/?ordem=ascendente 

$ordem = $_GET['ordem'];
if($ordem == 'ascendente'){
	asort($capitanias); // Ordem alfabetica
}elseif($ordem == 'descendente'){
	arsort($capitanias); // inverte a ordem alfabetica.
}else{
	echo "Ordem desejada não existe"; // ou em vez do echo ponha em ordem alfabeta etc...
}

Fiz assim de bate-pronto..

  • Obrigado! 1

Share this post


Link to post
Share on other sites
59 minutes ago, Gleyson Abreu said:

E falando do exercicio 10 ele quer que você ponhe em ordem alfebetica e só você em baixo do array $capitanias o seguinte:

asort($capitanias) para ordem alfabética a-z ou

arsort($capitanias) para ordem inversa.

Você pode passar um parametro GET[] na url para identificar se é ordem alfabética ou a inversa:

ex:

www.seusite.com/?ordem=ascendente 


$ordem = $_GET['ordem'];
if($ordem == 'ascendente'){
	asort($capitanias); // Ordem alfabetica
}elseif($ordem == 'descendente'){
	arsort($capitanias); // inverte a ordem alfabetica.
}else{
	echo "Ordem desejada não existe"; // ou em vez do echo ponha em ordem alfabeta etc...
}

Fiz assim de bate-pronto..

 

Show, entendi a lógica, já tá montando certo na tabela, agora só preciso acertar o último detalhe, que seria:

 

"Para isso, ao lado do cabeçalho da tabela, coloque dois links: um indicando para cima e outro, para baixo. Ao clicar “para cima” ou quando não houver indicação, os nomes deverão ser exibidos alfabeticamente; ao clicar para baixo, a exibição deverá ser invertida."

 

Seria assim?

<html>
    <body>
        <title>Exercício 9</title>
            <table border="1px">
                <pre><a href="exibir.php?ordem=ascendente">Para Cima</a></pre>
                <pre><a href="exibir.php?ordem=descendente">Para Baixo</a></pre>
                <?php foreach ($capitanias as $lista) { ?>
                <tr>
                    <th><?php echo $lista;?></th>
                </tr>
                <?php } ?>
            </table>
        </body>
</html>

E Gleyson, muito obrigado por tudo até agora cara, tá me ajudando de todas as maneiras possíveis que eu não imaginei conseguir em um domingo de copa do mundo, obrigado!

Share this post


Link to post
Share on other sites

Exercício 1
O enunciado diz:
...deverá exibir apenas o nome  das cidades, em ordem alfabética,..

É preciso ajustar o script para não ecoar a $chave e ordenar alfabeticamente (notar que as cidades ecoam na ordem que aparecem no array das cidades).
 

 

  • Obrigado! 1

Share this post


Link to post
Share on other sites

Eu botaria assim ficando alinhado dentro da tabela e no lugar dos nomes 'pra cima', 'pra baixo' botaria uma imagem ou até mesmo em css de uma seta correspondente.

	<tr>
        <th>
            Capitanias
            <a href="exibir.php?ordem=ascendente">Para Cima</a>
            <a href="exibir.php?ordem=descendente">Para Baixo</a>
        </th>
    </tr>

 

  • Obrigado! 1

Share this post


Link to post
Share on other sites

Maujor, já removi a chave, não tinha notado, foi um pouco de falta de atenção, é um detalhe, mas detalhes importam, obrigado!

 

2 hours ago, Gleyson Abreu said:

Eu botaria assim ficando alinhado dentro da tabela e no lugar dos nomes 'pra cima', 'pra baixo' botaria uma imagem ou até mesmo em css de uma seta correspondente.

 

Coloquei assim mesmo, ficou bacaninha. Valeu a dica, CSS não é muito minha praia, como é um exercício e eu já estou há mais de 30 horas nisso, vou evitar o trabalho adicional por agora.

 

Aproveitando, queria saber se você pode me dizer se meu outro exercício, fiquei com a pulga atrás da orelha, mas acho que está certo:

 

<?php
/**  Exercício 8
* Dado um formulário POST com um campo de busca, que é submetido à página
* busca.php, implemente-a considerando a seguinte regra: se a palavra digitada
* constar em um array de palavras, a página deverá retornar as posições em que a
* palavra encontra-se. */

if (!empty($_POST['busca'])) {
    $getBusca = $_POST['busca'];

    $palavras = array(
        "Carro",
        "Moto",
        "Skate",
        "Bicicleta",
        "Patins",
        "Metro"
    );

echo "A palavra-chave usada na busca foi: " . $getBusca . "<br><br>";

foreach($palavras as $resultado) {
    if((strtolower($resultado)) == strtolower($getBusca)) {
        $resultado_final[] = $resultado;
    }
}
if(isset($resultado_final)){
    array_column($resultado_final, 0);
    echo "<pre>";
    print_r(array_values($resultado_final));
    echo "<pre>";
}
} else {
    echo "Você não digitou nenhuma palavra chave para buscar!";
}


?>
<title>Exercício 8</title>
<form method="POST">
    Busca: <input name="busca" type="text"><br>
<input type="submit">
</form>

Digito a palavra-chave no campo busca, caso encontre no array, ele me retorna:

A palavra-chave usada na busca foi: carro
 

Array
(
    [0] => Carro
)

Regra: se a palavra digitada constar em um array de palavras, a página deverá retornar as posições em que a palavra encontra-se.

 

Minha dúvida, se o único resultado mostrado, encontra-se no array, sempre será a posição 1, não?

Então pra mim, pelo que entendi, está certo esse código referente ou to perdido de novo? 

 

Novamente, obrigado Gleyson, você foi fora de série

Share this post


Link to post
Share on other sites
2 horas atrás, RichardOptions disse:

Regra: se a palavra digitada constar em um array de palavras, a página deverá retornar as posições em que a palavra encontra-se.

 

Esse exercício ta pedindo pra você retornar a posição (index/key) do array e não a posição do novo array que você ta criando.

 

Contextualizando melhor:

Se no seu código atual eu pesquisar por "Metro", vai me retornar Metro na posição 0:

image.png.ab9c32f0f3d9e2388ab3dec05f3af810.png

 

Porém, o exercício pede que você retorne a posição do array onde está todas as palavras, que no caso do Metro seria 5:

image.png.27e4fb6e0f0d35423ced594ec386c945.png

 

O que você ta fazendo é apenas printar o novo array ($resultado_final) que você mesmo ta criando, aí acaba gerando novas posições diferentes, pq você ta construindo um novo array.

 

As únicas coisas que você tem que fazer é o seguinte:

alterar o foreach e mexer um pouco na lógica:

remover: 

array_column($resultado_final, 0);

remover:

array_values()

Esses dois caras aí só ta te atrapalhando.

Agora, aqui é a lógica que você precisa entender:

foreach($palavras as $key => $value) {
  if((strtolower($value)) == strtolower($getBusca)) {
  	$resultado_final[$value] = "Posição: " . $key;
  }
}

Antes você só tava usando

foreach($palavras as $resultado)

porém, com o foreach você consegue capturar a key (posição) de cada valor do array, fazendo isso:

foreach($palavras as $key => $value)
  • $palavras = o array que você quer percorrer
  • $key = a posição no array (0,1,2,3,4 ou posições com nomes)
  • $value = o valor (Carro, Moto, Skate etc)

resultado das alterações:

image.png.136ad953c663c8c77ef75c17193df6ee.png

 

Segue aí o código pra você estudar e adaptar:

<?php
/**  Exercício 8
* Dado um formulário POST com um campo de busca, que é submetido à página
* busca.php, implemente-a considerando a seguinte regra: se a palavra digitada
* constar em um array de palavras, a página deverá retornar as posições em que a
* palavra encontra-se. */

header('Content-Type: text/html; charset=utf-8');

if(!empty($_POST['busca'])){
    $getBusca = $_POST['busca'];
    $palavras = array(
        "Carro",
        "Moto",
        "Skate",
        "Bicicleta",
        "Patins",
        "Metro"
    );
    echo "A palavra-chave usada na busca foi: " . $getBusca . "<br><br>";

    foreach($palavras as $key => $value) {
        if((strtolower($value)) == strtolower($getBusca)) {
            $resultado_final[$value] = "Posição: " . $key;
        }
    }
    if(isset($resultado_final)){
        echo "<pre>";
        print_r($resultado_final);
        echo "<pre>";
    } else {
        echo "Você não digitou nenhuma palavra chave para buscar!";
    }
}
?>
<title>Exercício 8</title>
<form method="POST">
    Busca: <input name="busca" type="text"><br>
<input type="submit">
</form>

 

  • Obrigado! 1
  • +1 1

Share this post


Link to post
Share on other sites
1 hour ago, BrunoBit said:

 

Esse exercício ta pedindo pra você retornar a posição (index/key) do array e não a posição do novo array que você ta criando.

 

Contextualizando melhor:

Se no seu código atual eu pesquisar por "Metro", vai me retornar Metro na posição 0:

image.png.ab9c32f0f3d9e2388ab3dec05f3af810.png

 

Porém, o exercício pede que você retorne a posição do array onde está todas as palavras, que no caso do Metro seria 5:

image.png.27e4fb6e0f0d35423ced594ec386c945.png

 

O que você ta fazendo é apenas printar o novo array ($resultado_final) que você mesmo ta criando, aí acaba gerando novas posições diferentes, pq você ta construindo um novo array.

 

As únicas coisas que você tem que fazer é o seguinte:

alterar o foreach e mexer um pouco na lógica:

remover: 


array_column($resultado_final, 0);

remover:


array_values()

Esses dois caras aí só ta te atrapalhando.

Agora, aqui é a lógica que você precisa entender:


foreach($palavras as $key => $value) {
  if((strtolower($value)) == strtolower($getBusca)) {
  	$resultado_final[$value] = "Posição: " . $key;
  }
}

Antes você só tava usando


foreach($palavras as $resultado)

porém, com o foreach você consegue capturar a key (posição) de cada valor do array, fazendo isso:


foreach($palavras as $key => $value)
  • $palavras = o array que você quer percorrer
  • $key = a posição no array (0,1,2,3,4 ou posições com nomes)
  • $value = o valor (Carro, Moto, Skate etc)

resultado das alterações:

image.png.136ad953c663c8c77ef75c17193df6ee.png

 

Segue aí o código pra você estudar e adaptar:


<?php
/**  Exercício 8
* Dado um formulário POST com um campo de busca, que é submetido à página
* busca.php, implemente-a considerando a seguinte regra: se a palavra digitada
* constar em um array de palavras, a página deverá retornar as posições em que a
* palavra encontra-se. */

header('Content-Type: text/html; charset=utf-8');

if(!empty($_POST['busca'])){
    $getBusca = $_POST['busca'];
    $palavras = array(
        "Carro",
        "Moto",
        "Skate",
        "Bicicleta",
        "Patins",
        "Metro"
    );
    echo "A palavra-chave usada na busca foi: " . $getBusca . "<br><br>";

    foreach($palavras as $key => $value) {
        if((strtolower($value)) == strtolower($getBusca)) {
            $resultado_final[$value] = "Posição: " . $key;
        }
    }
    if(isset($resultado_final)){
        echo "<pre>";
        print_r($resultado_final);
        echo "<pre>";
    } else {
        echo "Você não digitou nenhuma palavra chave para buscar!";
    }
}
?>
<title>Exercício 8</title>
<form method="POST">
    Busca: <input name="busca" type="text"><br>
<input type="submit">
</form>

 

 

Nossa Bruno, você realmente me deu uma aula!

 

Que explicação boa de entender, eu tive a impressão de ter me perdido na lógica e tar tentando criar algo que era mais simples, por fim, eu tava certo, não era daquela forma...

 

Mas com sua explicação onde eu errei e como eu devia ter feito, ficou muito claro pra mim.

 

É a segunda fez que você teve essa paciência e consideração em me ajudar de forma tão excelente, o meu mais profundo e sincero obrigado.

 

O pessoal desse fórum é muito receptivo e excelente em ajudar, sem julgar erros bobos, essa qualidade de material humano me fez querer aprender mais e poder ajudar aos outros que por aqui passarem em um futuro, assim como eu estou precisando hoje.

  • Obrigado! 1

Share this post


Link to post
Share on other sites

Tamo junto Richard, a galera por aqui ta sempre um ajudando e aprendendo com o outro, essa é a verdadeira essência da comunidade. E seja bem vindo ao fórum.

  • Obrigado! 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Robson Barros da Rocha
      Olá! Estou com sérias dúvidas sobre as notificações push. Já instalado, ela segue este tutorial explicativo: https://www.phpzag.com/push-notification-system-with-php-mysql/ Esse método para mim é mais simples, mas, e já fiz as adaptações para comportar meu banco de dados, mas, o problema é que ele não me envia as notificações push quando estou fora do navegador ou via celuar por exemplo. Eu comentei no artigo mencionado, mas, o autor não me respondeu já tem uma semana.
      Alguém tem algum artigo que indique como posso realizar essas notificações push até mesmo quando o navegador estiver fechado e via aparelho celular?
    • By z101
      Sou iniciante, nunca usei PHP na vida e preciso concluir uma tabela de distribuição de frequencia e o polígono de um array, sendo isso apenas o começo do que preciso fazer, mas isso não vem ao caso agora. Depois de muito pesquisar, acabei com o seguinte código:
      <?php
              $category = 7;
              $data = array(
                  16, 17, 17, 18, 18, 18, 19, 20, 20, 20, 20, 20, 
                  21, 21, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 
                  23, 25, 25, 25, 25, 25, 25, 26, 26, 27, 27, 27, 
                  27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 30, 30, 
                  30, 30, 31, 32, 33, 33, 33, 34, 34, 35, 36, 39
              );
              $min = min($data);
              $max = max($data);
              $limit = ceil(($max - $min) / $category);
              sort($data);
              for ($i = 0; $i < $category; $i++) {
                  $count = 0;
                  foreach ($data as $key => $number) {
                      if ($number <=  (($min + ($limit - 1)) + ($i * $limit))) {
                          $count++;
                          unset($data[$key]);
                      }
                  }
                  echo ($min + ($i * $limit)) . '-' . (($min + ($limit - 1)) + ($i * $limit)) . ' => ' . $count.'<br>';
              }
       
      Ele compila, tudo bem, mas a saída tá errada: 
      16-19 => 7<br>20-23 => 18<br>24-27 => 12<br>28-31 => 14<br>32-35 => 7<br>36-39 => 2<br>40-43 => 0<br> Ele me retorna esses valores, mas devia ser: 
      16 - 19,3 -> 7
      19,3 - 22,6 ->  9
      22,6 - 25,9 -> 15
      25,9 - 29,2 -> 12
      29,2 - 32,5 -> 9
      32,5 - 35,8 -> 6
      35,8 - 39,1 -> 2
       
      O sete veio  daqui : k = 1 + 3,3log 60(60 pq sao 60  números) =  6,9,    esse numero tem que ser inteiro, daí o sete.
      Eu pensei que quando eu atribuisse 7 ao $category, ele ia fazer a divisão do menor valor - o maior valor por 7. No caso 16-39/7 = 3,3. Isso deveria gerar os valores certos, mas não aconteceu.
      Não sei como  arrumar, alguém pode  me ajudar?
       
       
    • By citypoa1
      boa tarde
       
      estou atualizando um script para usar em php 7, atualizei quase todas as funçoes mysql_ para mysqli, menos a mysqli_result que nao tem mais no php 7, pelo menos nao com a mesma funçao
      o codigo
       
       
      $boxes = 1; $tot24 = "0"; $out24 = "0"; $click24 = "0"; $intot = "0"; $outtot = "0"; $clicktot = "0"; $credittot = "0"; while($row = mysqli_fetch_object($result3)) { $result4 = mysqli_query($db1, "SELECT u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,u12,u13,u14,u15,u16,u17,u18,u19,u20,u21,u22,u23 FROM stats WHERE id = $row->id"); $in = mysqli_fetch_array($result4, MYSQLI_NUM); $result5 = mysqli_query($db1, "SELECT o0,o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11,o12,o13,o14,o15,o16,o17,o18,o19,o20,o21,o22,o23 FROM stats WHERE id = $row->id"); $out = mysqli_fetch_array($result5, MYSQLI_NUM); $result6 = mysqli_query($db1, "SELECT c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21,c22,c23 FROM stats WHERE id = $row->id"); $click = mysqli_fetch_array($result6, MYSQLI_NUM); $today = 0; $todayout = 0; $todayclick = 0; for($i=0;$i<=$thishour;$i++) { $today = $today + $in[$i]; } for($i=0;$i<=$thishour;$i++) { $todayout = $todayout + $out[$i]; } for($i=0;$i<=$thishour;$i++) { $todayclick = $todayclick + $click[$i]; } $totalins = $row->ins + $today; $totalout = $row->outs + $todayout; $totalclick = $row->clicks + $todayclick; if($row->ins24 == 0) $prod24 = "0%"; else $prod24 = round($row->click24 / $row->ins24 * 100) ."%"; if($totalins == 0) $prod = "0%"; else $prod = round($totalclick / $totalins * 100) ."%"; if($row->active == 0) { $bgimg = "../images/system/line2.jpg"; $enable = "<span onclick=\"enable('partner',$row->id);\" id=\"enable$row->id\"><img src=\"../images/system/enable.jpg\" id=\"enimg$row->id\"></span>"; } else { $bgimg = "../images/system/line.jpg"; $enable = "<span onclick=\"disable('partner',$row->id);\" id=\"enable$row->id\"><img src=\"../images/system/disable.jpg\" id=\"enimg$row->id\"></span>"; } if($row->chosen == 0) $chosenone = "No"; else $chosenone = "Yes"; if($row->noframe == 0) $nofrm = "Yes"; else $nofrm = "No"; $credits = round($totalins - $totalout * ($ratio / 100)); if($showdaily == 1) { $showin2 = $today; $showout2 = $todayout; if($today == 0) $showprod2 = "0%"; else $showprod2 = round($todayclick / $today * 100) ."%"; } else { $showin2 = $row->ins24; $showout2 = $row->out24; $showprod2 = $prod24; } if(strlen($row->domain) > 15) $domain = substr($row->domain, 0, 15)."..."; else $domain = $row->domain; $allplugs = mysqli_result(mysqli_query($db1, "SELECT COUNT(*) FROM content WHERE domain='$row->domain'"),0); $activeplugs = mysqli_result(mysqli_query($db1, "SELECT COUNT(*) FROM content WHERE domain='$row->domain' AND active=1"),0); o erro esta nas duas ultimas linhas, porque nao existe a funçao msqli_result, pesquisei todos os topicos aqui do forum e de outros forum sobre o meu problema, consegui resolver quase todos menos esse do mysqli_result
      ja tentei de todas as formas indicadas, a mais proxima foi 
      $allplugs = mysqli_query($db1, "SELECT COUNT(*) FROM content WHERE domain='$row->domain'"); $rows = $allplugs->fetch_assoc(); if(count($rows) > 0){ } $activeplugs = mysqli_query($db1, "SELECT COUNT(*) FROM content WHERE domain='$row->domain'"); $rows = $activeplugs->fetch_assoc(); if(count($rows) > 0){ } mas da o erro 
      Recoverable fatal error: Object of class mysqli_result could not be converted to string in /home2
      linha do erro:
      <div style=\"width:900px;float:left;\"><div class=\"edittitle\">Plugs(active):</div><div id=\"edittext\">$allplugs($activeplugs)</div></div>");
      echo "        <li id=\"li$row->id\">
       
      o problema ainda é a forma de usar a funçao mysqli_result, acho que fiz da forma errada
       
      alguem saberia onde esta o erro? ou indicar algum artigo relacionado...
    • By EvertonFD
      Bom dia estou fazendo u  ranking onde deve ser selecionado alguns critérios de desempate exemplo:
      Caso os pontos sejam iguais deve ser decidido pelos gols, só pra ressaltar estou aprendendo php então se tiver uma maneira melhor de fazer isso estou disposto a aprender, segue o codigo que estou usando:
       <?php
              $result_times = "  SELECT * FROM  times    WHERE grupos='4'  
                                                      
                                                      ORDER BY pontos    DESC";
              $resultado_times = mysqli_query( $conn, $result_times );
              while ( $row_times = mysqli_fetch_assoc( $resultado_times ) ) {
                  ?>
          
          <div class="row p-1 bg-light p-1 mt-1 ">
              <div class="col-md-3 ">
                  <img src="assets/images/times/<?php echo $row_times['id']; ?>/<?php echo $row_times['logo_time']; ?>" width="60">
                  <span>
                      <?php echo $row_times['nome']; ?>
                  </span>
              </div>
              <div class="col-md-1 col-4 align-self-center  border">
                  V- <?php echo $row_times['vitoria']; ?>
              </div>
              <div class="col-md-1 col-4 align-self-center border">E-<?php echo $row_times['empate']; ?></div>
              <div class="col-md-2 col-4 align-self-center border">D-<?php echo $row_times['derrota']; ?></div>
              <div class="col-md-2 col-4 align-self-center border">GF-<?php echo $row_times['gf']; ?></div>
              <div class="col-md-2 col-4 align-self-center border">GC-<?php echo $row_times['gc']; ?></div>
              <div class="col-md-1 col-4 align-self-center border">P-<?php echo $row_times['pontos']; ?></div>
          </div>
                  <!---->
                  <?php
              }
              ?>
            
          
    • By Matheus_Moura
      Boa tarde.
      Estou fazendo uma aplicação PHP em um PC Linux com Lubuntu como SO, para conexão com um banco de dados ORACLE 11g. Porém quando utilizo a função oci_connect ou qualquer outra função para oracle é retornado uma mensagem informando que estão indefenidas.
      Estou utilizando o XAMPP como servidor e fiz a configuração no caminho opt/lampp/etc/php.ini retirando o ; tanto no php_oci8.dll como também na php_oracle.dll, porém não obtive sucesso. Coloquei dentro da pasta opt também o instantclient já descompactado e utilizei o PECL para tentar ativar as OCI, porém mesmo assim ainda não consegui sucesso. Alguém teria alguma outra sugestão ?
       
      Att,
      Matheus Moura
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.