現状を説明いたします。
task
|id|title|owner|staff|complete_flag|memo|del_flag|
|:--|:--:|--:|
|1|abcd|2|1|0|aaaa|0|
|2|abcd|5|1|0|aaaa|0|
|3|abcd|3|1|0|aaaa|0|
|4|abcd|3|1|0|aaaa|0|
|5|abcd|4|1|0|aaaa|0|
|6|abcd|4|1|0|aaaa|0|
|7|abcd|1|1|0|aaaa|0|
|8|abcd|2|1|0|aaaa|0|
|9|abcd|3|1|0|aaaa|0|
m_user
|id|user_id|name|pass|admin_flag|del_flag|
|:--|:--:|--:|
|1|aaaa|山中|1|0|aaaa|0|
|2|bbbb|田村|1|0|aaaa|0|
|3|cccc|中村|1|0|aaaa|0|
|4|dddd|高橋|1|0|aaaa|0|
|5|xxxx|山田|1|0|aaaa|0|
|6|gggg|牛山|1|0|aaaa|0|
|7|ffff|河村|1|0|aaaa|0|
実際のデータベースでは上記のようになっていまして、
taskのownerとstaffの値がm_userのidになっています。
自分のコードは下記となっています。
php
1$sql = "SELECT count(*) FROM task"; 2$stmt = $pdo->prepare($sql); $stmt->execute(); 3$row = $stmt->fetchColumn(); 4if($row > 0){ 5 // SELECT結果がある場合の処理 6$sql = "SELECT task.id, task.title, task.compelte_flag, m_user.name 7 FROM task 8 LEFT JOIN m_user ON task.owner AND task.staff = m_user.id 9 ORDER BY task.id;"; 10 $stmt = $pdo->prepare($sql); $stmt->execute(); 11 while($result = $stmt->fetch(PDO::FETCH_ASSOC)){ 12 13?> 14 <tr> 15 <td><?php echo $result['id']."\n";?></td> 16 <td><?php echo $result['title']."\n";?></td> 17 <td><?php echo $result['owner']."\n";?></td> 18 <td><?php echo $result['staff']."\n";?></td> 19 <td><?php echo $result['complete_flag']."\n";?></td> 20 </tr> 21 22 <?php 23} 24}else{ 25 // SELECT結果がない場合の処理 26 echo "データがありません。"; 27} 28?>
出したい情報はid, title, owner, staff, complete_flagの五つです。
このコードですと、エラーが出ています。
Fatal error: Call to a member function execute() on a non-object in /home/blotag/www/ryu/table2/table.php on line 42
42行目が
$stmt = $pdo->prepare($sql); $stmt->execute();
こちらになります。
やりたいこと
セレクトでデータを出すときにownerとstaffのデータはm_userのidを見て、m_userのnameの値を出したいです。
まったく初心者なので、わかりやすくお願いいたします。
ご回答お待ちしております。
宜しくお願いいたします。
回答7件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。