sql >> データベース >  >> RDS >> Mysql

count関数を使用して、ifステートメントに何が表示されるかを判別します

    1つのプロジェクトには多くのスライダーがあります。このためには、2つのテーブルプロジェクトと関係のあるプロジェクトスライダーが必要です。

    プロジェクトテーブル:

    CREATE TABLE `projects` (
    
       `id` int(11) NOT NULL AUTO_INCREMENT,
       `project_name` varchar(50) NOT NULL
    
    ) 
    

    プロジェクトスライダー:

    CREATE TABLE `projectsliders` (
    
       `id` int(11) NOT NULL AUTO_INCREMENT,
       `solution` varchar(50) NOT NULL,
       `image` text NOT NULL,
       `alt` text NOT NULL,
       `project_id` int(11),
       PRIMARY KEY (`id`)
    
    ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1
    

    1つのプロジェクトのprojectSlidersのフェッチ、マスターページ-projectSlider.php

    1つのプロジェクトのプロジェクトスライダーをフェッチする最良の方法は、メソッドを呼び出してプロジェクトIDを渡すことができるOOPを使用することです。メソッドは、このプロジェクトのプロジェクトスライダーを含む配列を返す必要がありますが、コードを改善しています。

    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    $servername = 'localhost';
    $username = 'root';
    $password = '';
    
    try {   
       $con = new PDO('mysql:host='.$servername.';dbname=mb', $username, 
       $password);
       $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
      //$page = mysql_real_escape_string($page);
      //SQL Call
      $sql_project = "SELECT * FROM projectsliders ps inner join projects p
       on  p.id = ps.project_id
       WHERE p.project_name = '. $project_page .'";
    
      if ($project_stmt = $con->prepare($sql_project)) {
    
          $project_stmt->execute();
    
          $count = project_stmt->rowCount();
    
          if( $count  != 0 ){
    
             $project_rows = $project_stmt->fetchAll(PDO::FETCH_ASSOC);
    
             foreach ($project_rows as $project_row) {
    
                $project_solution = $project_row['solution'];
                $project_img = $project_row['image'];
                $project_alt = $project_row['alt'];
                $project_img = '<img class="home-comment-profile-pic" src=" '. 
                $project_img .'" alt="' . $project_alt .'">';
    
                echo '<section id="solProj">';
                echo '<div class="projSlide">';
                echo $project_img;
                echo '</div>';
                echo '</div>';
    
             }
    
           }else{
             echo 'No projects found.';
           }
         }
      }   
      catch(PDOException $e) {
          echo "Connection failed: " . $e->getMessage();
      }
    

    個々のページ:

    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    $project_page = "enclosures";
    include_once("projectSlider.php"); 
    

    これがコーディングを楽しんでいただけるようになることを願っています。




    1. 警告:mysql_connect():ローカルMySQLサーバーに接続できません

    2. MYSQL日時は最も近い時間に丸められます

    3. mySQLのストアドプロシージャにパラメータとして列名を渡す

    4. php/mysqlのSQLインジェクションを識別するための静的分析ツールはありますか