PHP/MYSQL(Ordenação de Dados )

Home Fóruns PHP/MYSQL PHP/MYSQL(Ordenação de Dados )

Visualizando 9 respostas da discussão
  • Autor
    Posts
    • #103869
      Inoque Miguel
      Participante

      no meu aparece o seguinte erro:
      “Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘ORDER BY j.nome’ at line 2 in C:\xampp\htdocs\Games\index.php:54 Stack trace: #0 C:\xampp\htdocs\Games\index.php(54): mysqli->query(‘SELECT j.cod, j…’) #1 {main} thrown in C:\xampp\htdocs\Games\index.php on line 54”

    • #103886
      Tutora Vera
      Mestre

      Precisamos dos códigos para poder analisar, no erro aparentemente identifica algum problema em alguma linha de código que não corresponde ao que é preciso ser feito. Informe também qual módulo e aula está fazendo, beleza?

    • #103912
      Inoque Miguel
      Participante

      PHP com MySQL – Módulo 01: Criando um CRUD
      Aula: M01A08 – Ordenação de Dados

      <!DOCTYPE html>
      <html lang=”pt”>
      <head>
      <meta charset=”UTF-8″>
      <meta http-equiv=”X-UA-Compatible” content=”IE=edge”>
      <meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
      <title>Listagem de Jogos</title>
      <link rel=”stylesheet” href=”css/style.css”>

      </head>
      <body>
      <?php
      require_once “includes/banco.php”;
      require_once “includes/funcoes.php”;
      $ordem = $_GET[‘o’] ?? “n”;
      ?>
      <div id=”corpo”>
      <?php include_once “topo.php” ?>
      <h1>Escolha o seu jogo!!</h1>

      <form action=”index.php” method=”get” id=”busca”>
      Ordenar:
      Nome |
      Produtora |
      Nota Alta |
      Nota Baixa
      Buscar: <input type=”text” name=”c” size=”10″ maxlength=”40″/>
      <input type=”submit” value=”ok”>
      </form>

      <table class=”listagem”>
      <?php
      $q = “SELECT j.cod, j.nome, g.genero, p.produtora, j.descricao, j.nota, j.capa FROM jogos j
      JOIN generos g ON j.genero=g.cod JOIN produtoras p ON j.produtora=p.cod;”;

      // Nesta Parte está apresentando Erros
      // Não ordena, apenas aparece um Bug
      switch ($ordem){
      case “p”:
      $q .=”ORDER BY p.produtoras”;
      break;
      case “n1″:
      $q .=”ORDER BY j.nota DESC”;
      break;
      case “n2″:
      $q .=”ORDER BY j.nota ASC”;
      break;
      default:
      $q .= “ORDER BY j.nome”;
      break;
      }
      // ———————————————
      $busca = $banco->query($q);
      if(!$busca){
      echo “<tr></td>infelizmente a busca não deu certo”;
      }else{
      if($busca->num_rows == 0){
      echo “<tr><td>Nenhum registro encontrado”;
      }else{
      while ($reg=$busca->fetch_object()) {
      $t = thumb($reg->capa);
      echo “<tr><td>“;
      echo “<td>cod’>$reg->nome“;
      echo “[$reg->genero]”;
      echo “<br/> $reg->produtora”;
      echo “<td>adm”;
      }
      }
      }

      ?>
      </table>
      </div>
      <?php include_once “rodape.php” ?>
      </body>
      </html>

    • #103949
      Tutora Jessica
      Moderador

      Ola Inhoque,
      Observando o erro que esta apresentando, esta na linha 54..
      Preciso que me envie o que esta na sua linha 54 ou me envie seu código já identado para que eu consiga verificar direitinho.
      Para enviar identado, você copia e cola seu código aqui na caixinha do fórum, seleciona ele por completo e clica na opção CODE, a partir disso seu código vem identado certinho.
      Veja como fica, exemplo:

      ?>
      </table>
      </div>
      <?php include_once “rodape.php” ?>
      </body>
      </html>
      
    • #103962
      Inoque Miguel
      Participante
      <!DOCTYPE html>
      <html lang="pt">
      <head>
          <meta charset="UTF-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Listagem de Jogos</title>
          <link rel="stylesheet" href="css/style.css">
        
      </head>
      <body>
          <?php
          require_once "includes/banco.php"; 
          require_once "includes/funcoes.php";
          $ordem = $_GET['o'] ?? "n";
          ?>
          <div id="corpo">
              <?php include_once "topo.php" ?>
              <h1>Escolha o seu jogo!!</h1>
      
              <form action="index.php" method="get" id="busca">
                  Ordenar: 
                  <a href="index.php?o=n">Nome</a> |
                  <a href="index.php?o=p">Produtora</a> |
                  <a href="index.php?o=n1">Nota Alta</a> |
                  <a href="index.php?o=n2">Nota Baixa </a>
                  Buscar: <input type="text" name="c" size="10" maxlength="40"/>
                  <input type="submit" value="ok">
              </form>
      
              <table class="listagem">
              <?php
              $q = "SELECT j.cod, j.nome, g.genero, p.produtora, j.descricao, j.nota, j.capa FROM jogos j
              JOIN generos g ON j.genero=g.cod JOIN produtoras p ON j.produtora=p.cod;";
      
      // Nesta Parte está apresentando Erros
      // Não ordena, apenas aparece um Bug
              switch ($ordem){
                  case "p":
                      $q .="ORDER BY p.produtora";
                      break;
                  case "n1":
                      $q .="ORDER BY j.nota DESC";
                      break;
                  case "n2":
                      $q .="ORDER BY j.nota ASC";
                      break;
                  default:
                      $q .="ORDER BY j.nome";
                      break;
              }
                  $busca = $banco->query($q); //Linha 54
                  if(!$busca){
                      echo "<tr></td>infelizmente a busca não deu certo";
                  }else{
                      if($busca->num_rows == 0){
                          echo "<tr><td>Nenhum registro encontrado";
                      }else{
                          while ($reg=$busca->fetch_object()) {
                              $t = thumb($reg->capa);
                              echo "<tr><td><img src='$t' class='mini'/>";
                              echo "<td><a href='detalhes.php?cod=$reg->cod'>$reg->nome</a>";
                              echo "[$reg->genero]";
                              echo "<br/> $reg->produtora";
                              echo "<td>adm";
                          }
                      }
                  }
                  
                  ?>
              </table>
          </div>
          <?php include_once "rodape.php" ?>
      </body>
      </html>
    • #103965
      Tutora Jessica
      Moderador

      Ola Inhoque,
      Nessa parte do seu código (JOIN produtoras p ON j.produtora=p.cod;”;) tem um ponto e virgula a mais, retire ele e coloque um espaço em branco, dessa forma:

      JOIN produtoras p ON j.produtora=p.cod ";

      Veja se vai funcionar.

    • #103966
      Inoque Miguel
      Participante

      Permanece o erro.
      A parte de listagem de simples funciona normalmente se eu comentar o código de ordenacão que é a parte do Switch.

      switch ($ordem){
                  case "p":
                      $q .="ORDER BY p.produtora";
                      break;
                  case "n1":
                      $q .="ORDER BY j.nota DESC";
                      break;
                  case "n2":
                      $q .="ORDER BY j.nota ASC";
                      break;
                  default:
                      $q .="ORDER BY j.nome";
                      break;
              }
    • #103991
      Tutora Jessica
      Moderador

      Ola Inhoque,
      Baixe outra versão do XAMPP, versão 1.8.3 de 2014, nesse link: https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/
      Se o problema persistir, baixe uma versão anterior a essa para ver se consegue solução.
      Mas já deixando avisado, o curso de PHP esta sendo atualizado e já esta em processo de gravações.

    • #103993
      Inoque Miguel
      Participante

      está bem

    • #103998
      Tutora Jessica
      Moderador

      Caso queira participar do nosso canal do discord, fique a vontade..
      La os alunos se ajudam e também tem tutoria.
      Segue o link do canal de discord : https://discord.gg/SzptG3x9.

Visualizando 9 respostas da discussão
  • Você deve fazer login para responder a este tópico.