質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1513閲覧

PHPによるMySQLの呼び出しについて

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/04/27 14:59

index.php

<?php require 'function.php'; ?> //ここから <main role="main"> <div id="content"> <h2><?php blog('title'); ?></h2> <time datetime="<?php blog('date'); ?>"><?php blog('date'); ?> <<</time> <span><?php blog('genre'); ?></span> <p><?php blog('content'); ?></p> </div> </main> //ここまで

function.php

<?php function blog($a){ $pdo = new PDO('mysql:dbname=datevase;host=example.com','user','password'); $st = $pdo->query('SELECT * FROM datevase'); $row = $st->fetch(); echo $row[$a]; }

index.phpに書いた「ここから」「ここまで」の部分をテーブルの数だけ繰り返し
記事一覧のようなものを作りたいのですが、どのようにすればいいでしょうか?

また、blog('date');(日付)を読み込んだ後2017-04-27から2017.04.27にしたいのですが、どのようにすればよいでしょうか?

ご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

PHPやSQLの基本的な知識が不足しているようです。まずネットの無料チュートリアルサイトや、市販の入門書を一通り学習することをおすすめします。やみくもに走って毎日ケガするのは精神的に辛いですし、効率もよくありません。

その課程で「こう書いてあるが仕組みがどうしてもわからない」といった疑問が生じた場合、teratail を活用してください。

おすすめの入門書をあげておきます。

投稿2017/04/27 20:17

編集2017/04/27 20:35
miyahan

総合スコア3095

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

色々なレベルでツッコミどころが満載でしたので、他の回答でもあるとおり、本などでの学習も実践と並行してください。
プログラミングは"実践→学習→実践→学習→……"の繰り返しだと思うので、実践を先にしても学習を先にしても良いとは思いますが、実践オンリーだと確実にバッドノウハウを身に着けてしまいます。

以下解答例。動作確認していないので、バグってるかも?

php

1<?php 2$blogEntries = getBlogEntries(); 3 4// 関数名は実体をよく示すものにすること 5// また、元の作りだと何度もDBとの通信が走り、また不要なものも取得するので効率が悪い 6function getBlogEntries(){ 7 static $pdo = new PDO('mysql:dbname=datebase;host=example.com','user','password'); 8 // datavase -> database 誤字。 9 // pdoオブジェクトを使いまわすためにここでは、static キーワードを追加したが、 10 // できればDB通信部分をクラス化してメンバ変数にして使いまわすか、 11 // pdoオブジェクトを関数呼出し側で生成してDBにアクセスする各関数に渡すのが良い 12 13 $st = $pdo->query('SELECT * FROM datebase'); // datavase -> database 誤字 14 $rows = $st->fetchAll(); // 全件取得に変更 15 return $rows; // echo -> return に変更 16 // PHP 側ではデータを取得するまでが仕事。表示するのは html やテンプレエンジンに任せる 17} 18?> 19<html> 20<body> 21<main role="main"><!-- main タグは1ページに一つだけが基本 --> 22<?php foreach ($blogEntries as $entry) { ?> 23<article> 24 <div id="content"> 25 <h2><?= $entry['title'] ?></h2> 26 <time datetime="<?= $entry['date'] ?>"><?= str_replace('-', '.', $entry['date']) ?></time> 27 <span><?= $entry['genre'] ?></span> 28 <p><?= $entry['content'] ?></p> 29 </div> 30</article> 31<?php } ?> 32</main> 33</body> 34</html>

投稿2017/04/28 06:44

morisoba

総合スコア90

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問