2017-08-04 17 views
-2

データベース

候補DB - KandidaterPHP SQL、取得2つのテーブルからデータを取得し、ない右出力

(`id`, `name`, `department_id`) VALUES 
(7, 'Kandidat 1', 0), 
(8, 'Kandidat 2', 0), 
(9, 'Kandidat 3', 0), 
(10, 'Clarissa F. Andersen', 5000), 
(11, 'Sandra Flammild', 5000), 
(12, 'Amina Nielsen', 5000), 
(13, 'Lise Lundin', 5000), 
(14, 'Katrine Skovsgaard', 5000), 
(15, 'Helle Lieesol Haugaard', 5000), 
(16, 'Alicia Macaulau', 5000), 
(17, 'Mark Mikel Thygesen', 5000), 
(18, 'Michelle Møller', 5000), 
(19, 'Nadia Chaker', 5000), 

週間スケジュールDB - Ugeplan

(`ID`, `K_ID`, `man_k`, `tir_k`, `ons_k`, `tor_k`, 
    `fre_k`, `man_g`, `tir_g`, `ons_g`, `tor_g`, `fre_g`, 
    `man_s`, `tir_s`, `ons_s`, `tor_s`, `fre_s`, `DM`, `DT`, 
    `DON`, `DTO`, `DF`, `uge`) 
VALUES (2, 7, '09:00:00', '00:00:00', '00:00:00', '12:00:00', 
     '00:00:00', '12:00:00', '00:00:00', '00:00:00', '16:00:00', 
     '00:00:00', '', 'Fri', 'Fri', '', 'Syg', '19-06-2017', 
     '20-06-2017', '21-06-2017', '', 'Syg', 25), 
     (3, 7, '09:00:00', '00:00:00', '00:00:00', '12:00:00', 
     '00:00:00', '12:00:00', '00:00:00', '00:00:00', '16:00:00',  
     '00:00:00', '', 'Fri', 'Fri', '', 'Syg', '19-06-2017', 
     '20-06-2017', '21-06-2017', '', '23-06-2017', 25) 

説明:

  • K_ID - 受験者ID
  • man_k - 月曜日
  • tir_k到着 - 火曜日
  • ons_k到着 - 水曜日
  • tor_k到着 - 木曜日
  • fre_k到着 - 金曜日
  • man_gに到着する - 月曜日残し
  • tir_g - 火曜日を残す
  • ons_g - 水曜日離れる
  • tor_グラム -
  • fre_gを残し木曜日 - 金曜日
  • man_s残して - 月曜日のステータス
  • tir_s - 火曜日のステータス
  • ons_s - 水曜日のステータス
  • tor_s - 木曜日のステータス
  • fre_s - 金曜日のステータス
  • DMを - 日付月曜日
  • DT - 日付火曜日
  • DON - 日付水曜日
  • DTO - 日木曜日
  • DF - 日金曜日
  • UGE - 週番号

コード

<?php 

if(isset($_GET['city'])){ 
    $by = $_GET['city']; 
    $dato = date('d/m/Y'); 

    $idag = date("D"); 
    $currentweek = date("W"); 
    //Setting the right mysql table variables 
    $komme = ''; 

    if($idag == Mon){$komme = "man_k"; $datoen = 'DM';} 
    else 
    if($idag == Tue){$komme = "tir_t"; $datoen = 'DT';} 
    else 
    if($idag == Wed){$komme = "ons_k"; $datoen = 'DON';} 
    else 
    if($idag == Thu){$komme = "tor_k"; $datoen = 'DTO';} 
    else 
    if($idag == Fri){$komme = "fre_k"; $datoen = 'DF';} 

    $connection = new mysqli('host', 'username', 'password', 'DB') 
    or die ('Cannot connect to db'); 
?> 

<div style="float: left; width: 200px; min-height: 120px; border: 1px solid black;"> 
<h3>Kandidater i dag</h3> 
<?php 
    //Getting list off candidates to the preselected department 
    $results = $connection->query("select * from kandidater where afdeling_id = $by"); 

    while ($rows = $results->fetch_assoc()) { 

     $id = $rows['id']; 
     $person = $rows['navn']; 
     //Checking if they are planned to arrive today 
     $sql = "select $komme from ugeplan where K_ID ='$id' and $datoen = '$dato'"; 
     $result = $connection->query($sql); 

     $row = $result->fetch_assoc(); 
     $vis = $row[$komme]; 
     if($vis == '00:00:00'){}else{ 
     echo $person . "<br/>"; 
    } 
} 
?> 
</div> 
<?php 
} 
?> 

システム

私は、これはコードのいくつかの悪い作品である知っていますしかし、私は後でそれをきれいにすることができます、私はちょうど私が間違っていることを把握する必要があります。

これは私が到着を登録し、職場で出発するためのウェブサイトを構築していることです。 すべての候補者はチェックイン/アウトなどができるはずです。これはすでに動作しており、テスト中です。

同じ画面で、割り当てられた指導者は、今日到着予定の人をすばやく見て、その人を見つめたり、電話をかけたいと考えています。 緊急事態が発生した場合でも、誰もがシステムを見て簡単に説明できることを確認できるようにしたいと考えています。

+2

あなたの問題の説明を忘れてしまった! _ "と正しく出力されない " _少し曖昧です... – Jeff

+0

まず、これらの記事を読むことをお勧めします:http://php.net/manual/en/security.database.sql-injection.php http://www.wikihow.com/Prevent-SQL-Injection-in-PHP –

+0

データベースに 'd/m/Y'という形式の日付を持つ列が実際にありますか?適切なMySQL DATE型の列ではありませんか? _良い意味ではありません_ – RiggsFolly

答えて

0

あなたはあなたのPHPの初めにこの行を変更する必要があります:あなたは週にあなたの$ダトと「DMY」フォーマットのための「D/M/Y」日付形式を持っていたので

$dato = date('d-m-Y'); 

スケジュールDB - Ugeplanテーブル。 とにかくDBの日付列を保持するためにvarcharの代わりにDATE形式を使用する必要があります