以前に表題の件を質問したのですが、質問の要領を得なかったため詳細を再度。
以下のコードだと、エラーが出るまでに時間がかかって、"Internal Server Error"と表示されます。なぜか phpmyadmin もエラー表示が出るようになりました。どなたかご教授をよろしくお願いいたします。
<?php // データベース情報 $sv = 'localhost'; // サーバー名 $db = 'db_name'; // データベース名 $uid = 'user'; // ユーザー名 $pwd = 'pass'; // パスワード // データベースに接続します try { $db = new PDO('mysql:host='.$sv.'; dbname='.$db, $uid, $pwd); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->exec('SET NAMES utf8'); } catch(PDOException $e) { die('Connection failed: '.$e->getMessage()); } // データを取得します $sth = $db->prepare('SELECT t1.HosoSu , t2.4 ,t2.2,t2.10,t4.count,t3.amount FROM t1 INNER JOIN t2 ON t1.JANCode = t2.3 INNER JOIN t3 ON t1.No = t3.Code INNER JOIN t4 ON t1.JANCode = t4.barcode;'); $sth->execute(); ?> <table> <?php // 商品テーブルと商品分類テーブルから取得したデータを1行ずつ反映します while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { echo '<tr>'; echo '<td>'.$row['2'].'</td>'; echo '<td>'.$row['4'].'</td>'; echo '<td>'.$row['count'].'</td>'; echo '<td>'.$row['amount'].'</td>'; echo '</tr>'; } ?> </table>
各テーブルのCREATE TABLE文は以下の通りです。
t1には5万レコードくらいで、t2~t4にはそれぞれ1000レコード未満のデータがあります。
CREATE TABLE t1 ( `id` varchar(100), `JANCode` varchar(100), `GS1Code` varchar(100), `No` varchar(100), `ShohinMei` varchar(100), `HosoKeitai` varchar(100), `HosoSu` varchar(100), `HosoSuTani` varchar(100), `SeizoKaisya` varchar(100), `HanbaiKaisya varchar(100) ) CREATE TABLE t2 ( `1` varchar(100), `2` varchar(100), `3` varchar(100), `4` varchar(100), `5` varchar(100), `6` varchar(100), `7` varchar(100), `8` varchar(100), `9` varchar(100), `10` varchar(100), `11` varchar(100), ) CREATE TABLE t3 ( `id` varchar(100), `shohinName` varchar(100), `amount` varchar(100), `unit` varchar(100), `teika` varchar(100), `genka` varchar(100), `kingaku` varchar(100), `saekikingaku` varchar(100), `saekiritu` varchar(100), `kosehi` varchar(100), `kosehiritsu` varchar(100), `Code` varchar(100), `shohinCode` varchar(100), ) CREATE TABLE t4 ( `Code` varchar(100), `Name` varchar(100), `count` varchar(100), `standard` varchar(100), `unit` varchar(100), `barcode` varchar(100), `time` varchar(100) )
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/02 04:32