Jump to content
Fórum Script Brasil
  • 0

Loop com junção de tabelas


jamiel

Question

<?php 

// Configurações do banco de dados
date_default_timezone_set("America/Recife");
if (!defined('SERVIDOR')) define('SERVIDOR', 'localhost');
if (!defined('USUARIO')) define('USUARIO', 'root');
if (!defined('SENHA')) define('SENHA', '');
if (!defined('BANCO')) define('BANCO', 'agenciawp2');
if (!defined('CHARSET')) define("CHARSET", "utf8");


// Definir URL BASE
define('URL_BASE',  'http://localhost/agenciawp2/');
define('URL_ADMIN', 'http://localhost/agenciawp2/admin/');

        $conexao = @mysqli_connect(SERVIDOR, USUARIO, SENHA, BANCO) or die (mysqli_connect_error());
        mysqli_set_charset($conexao, CHARSET);

?>

 

CREATE TABLE IF NOT EXISTS `categoria` (
  `cat_id` int(11) NOT NULL AUTO_INCREMENT,
  `cat_name` varchar(60) NOT NULL,
  `cat_slug` varchar(60) NOT NULL,
  PRIMARY KEY (`cat_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;

 

CREATE TABLE IF NOT EXISTS `post` (
  `post_id` int(11) NOT NULL AUTO_INCREMENT,
  `post_cat_id` int(11) NOT NULL,
  `post_name` varchar(200) NOT NULL,
  `post_slug` varchar(220) NOT NULL,
  `post_img` varchar(100) NOT NULL,
  `post_text` text NOT NULL,
  `post_views` int(11) NOT NULL,
  `post_data` date NOT NULL,
  `post_author` varchar(200) NOT NULL,
  `post_ativo` int(1) NOT NULL,
  PRIMARY KEY (`post_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

 

 

<div class="table-responsive">
    <table class="table">
        <thead>
          <tr>
            <th width="6%">id</th>
            <th width="30%">Título</th>
            <th width="30%">Categoria</th>            
            <th align="center">Ação</th>
          </tr>
        </thead>
        <?php 
      
           
              $sql = "SELECT * FROM post p, categoria c WHERE p.post_cat_id = c.cat_id ORDER BY post_id DESC ";
              $qry = mysqli_query($conexao, $sql);
              while ($linha = mysqli_fetch_array($qry)) {

        ?>
        <tbody>
          <tr>
            <td align="center"><?php echo $linha["post_id"] ?></td>
            <td align="left"><?php echo $linha["post_name"] ?></td>
             <td align="left"><?php echo $linha["cat_name"] ?></td>
            <td ><a class="btn btn-primary" href="index.php?link=3&id<?php echo $linha["post_id"]?>">Editar</a></td>
            <td ><a class="btn btn-danger" href="index.php?link=3&id<?php echo $linha["post_id"]?>">Deletar</a></td>
          </tr>
        </tbody>    
        <?php } ?>            
    </table>
</div>

 

Neste caso não está aparecendo nada. Já não sei mais o que fazer.

É algo simples. Porém, tá complicado solucionar.

 

===============================================

 

Segundo caso:

 

<?php
    
@$ordem  = isset($_GET["ordem"])  ? $_GET["ordem"]:"0";
@$campo  = isset($_GET["campo"])  ? $_GET["campo"]:"";
@$search = isset($_GET["search"]) ? $_GET["search"]:"";
  
?>


<!-- PESQUISAR -->
<style>
    .my-group .form-control{
    width:50%;
}
</style>
<form action="index.php" method="get" class="">
    <div class="input-group my-group"> 

            <input type="text" class="form-control" name="search" value="<?php //echo $search ?>" placeholder="Digite o nome do post...">
                    <select class="form-control" data-live-search="true" name="campo">
                        <option value="post_name">Postagem</option>
                       
                    </select> 
                    <span class="input-group-btn">
                       <input type="hidden" name="link" value="2"> 
                       <input class="btn btn-default" type="submit" value="Pesquisar" name="Submit">
                    </span>
    </div>                
        
</form>

<h4>Lista de Posts</h4>

<a href="index.php?link=4" class="btn btn-success">CADASTRAR POST</a>
<br><br>
<?php 

      

  

  if ($search =="") {
        $sql = "SELECT * FROM post p, categoria c WHERE p.post_cat_id = c.cat_id ORDER BY post_id DESC "; (se eu tirar essa parte em negrito, exibe tudo menos o cat_name que está na tabela categorias)
  } else {
        $sql = "SELECT * FROM post WHERE $campo LIKE '%$search%' ";
  } 
    
      
  $total = total($sql);

  if($total <= 0) {
     echo "Nenhum Registro Para Exibir";
  } else {
       echo "Há " . $total . " Posts cadastrados"; 
  } 

?>

<br><br>
<div class="table-responsive">
    <table class="table">
        <thead>
          <tr>
            <th width="6%">id</th>
            <th width="30%">Título</th>
            <th width="30%">Categoria</th>            
            <th align="center">Ação</th>
          </tr>
        </thead>
        <?php 
      
           $lpp    = 4; //linhas por páginas
           $inicio = $ordem * $lpp;
           $post   = selecionar($sql . " LIMIT $inicio, $lpp");

           foreach ($post as $posts) {  (linha 78 - CRUD) 
        

        ?>
        <tbody>
          <tr>
            <td align="center"><?php echo $posts["post_id"]; ?></td>
            <td align="left"><?php echo $posts["post_name"]; ?></td>
             <td align="left"><?php echo $posts["cat_name"]; ?></td>
            <td ><a class="btn btn-primary" href="index.php?link=3&id<?php echo $posts["post_id"];?>">Editar</a></td>
            <td ><a class="btn btn-danger" href="index.php?link=3&id<?php echo $posts["post_id"];?>">Deletar</a></td>
          </tr>
        </tbody>    
        <?php } ?>            
    </table>
</div>

 

Erro:

 

) Warning: Invalid argument supplied for foreach() in C:\wamp\www\agenciawp2\admin\lst\lst-post.php on line 78

 

A questão é como envolver a tabela categoria nesse loop. Quero listar os post e a categoria de cada post também.

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      651.8k
×
×
  • Create New...