PHPとSQLite3で、サイト構築してますが、最初の部分で引っかかりました。


ローカルでデーターを作成、サーバーにUPした後の、
PHPで読み込んで表示部分のサンプルソースを『優しく』
書いてくれませんか?

テーブルの内容
[0]id[1]name[2]add[3]url

101 佐藤 東京 google.com
102 鈴木 大阪 yahoo.co.jp
103 吉田 仙台 goo.ne.jp

ファイル名
$file_name = "file_name";

テーブル名
$table_name = "file_name";


配列$resultに格納してくださいますか。

エラーの処理(指定のIDが無い)も書いてくれたらうれしいです。
コメントが沢山書いてあると、またまた嬉しいです。

また、こちら初心者なのでサンプルを書いてくれた方の、
おススメのPHP+SQLITEサイトがあったら教えてくださいますか。

よろしくお願いします。

質問者のPHPのスキルは、for文とか、while文になると難しいと感じる程度。
SQLは初挑戦です。(本日SQLite入門という書籍がとどきました。)

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/03/28 22:08:29
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Bombastus No.2

回答回数409ベストアンサー獲得回数52

ポイント35pt

こんな感じでご理解頂けますか?

<?
$file_name  = "file_name;       //SQLite DBファイル名
$table_name = "file_name";      //テーブル名
$result = array();              //レコードを格納する配列

$sql = "SELECT * FROM {$table_name} WHERE 1;";  //実行するSQL

//DBオープン+エラー処理
$hd = sqlite_open($file_name, 0666, $err);
if (! $hd) {
    die("can not connect {$DBFile} - {$err}");
    exit(1);
}

//SQL実行+エラー処理
$rs = sqlite_query($hd, $sql, SQLITE_BOTH);
if (! $rs) {
    die("SQL error {$sql}");
}

//結果の取り出し+表示コンテンツ作成
$outstr = '';
while ($row = sqlite_fetch_array($rs)) {
    $result['id'] = $row['id'];
    $result['name'] = $row['name'];
    $result['add'] = $row['add'];
    $result['url'] = $row['url'];
}

sqlite_close($hd);  //DBクローズ
?>
id:kei_kikurin

お返事ありがとうございます。

書き込んでいただいたソースを基本にして、

PupSQLiteを使ってDBのインポートも行ったのですが、

なんどやってもうまくできませんでした。

それなので、PHPのマニュアル見ながらサンプルソースを作り、

tksqliteでインポートしました。


下記コメントに作成したサンプルがあります。

エラー処理などは、まだ書いてませんが、

おかしい点などありましたら、

ご回答いただけたらありがたいです。

わかりやすく書いていただきありがとうございました。

追伸:

先ほどWEBの環境がSQLITE2だったので、全てやり直しでした。

良いチャンスなので書いていただいたソースで試しました。

なんの不都合も無く、簡単、あっさりと動きました(笑)

ほんとうにありがとうございました。

2010/03/24 17:00:06

その他の回答2件)

id:ko8820 No.1

回答回数1221ベストアンサー獲得回数69

id:kei_kikurin

お返事ありがとうございます。

サイトを参考にして、下記コメントのようなサンプルができあがりました。

エラー処理などはまだ作ってませんが、

おかしい点などありましたら、ご回答いただけたらありがたいです。

おせわになりました。

2010/03/24 13:57:56
id:Bombastus No.2

回答回数409ベストアンサー獲得回数52ここでベストアンサー

ポイント35pt

こんな感じでご理解頂けますか?

<?
$file_name  = "file_name;       //SQLite DBファイル名
$table_name = "file_name";      //テーブル名
$result = array();              //レコードを格納する配列

$sql = "SELECT * FROM {$table_name} WHERE 1;";  //実行するSQL

//DBオープン+エラー処理
$hd = sqlite_open($file_name, 0666, $err);
if (! $hd) {
    die("can not connect {$DBFile} - {$err}");
    exit(1);
}

//SQL実行+エラー処理
$rs = sqlite_query($hd, $sql, SQLITE_BOTH);
if (! $rs) {
    die("SQL error {$sql}");
}

//結果の取り出し+表示コンテンツ作成
$outstr = '';
while ($row = sqlite_fetch_array($rs)) {
    $result['id'] = $row['id'];
    $result['name'] = $row['name'];
    $result['add'] = $row['add'];
    $result['url'] = $row['url'];
}

sqlite_close($hd);  //DBクローズ
?>
id:kei_kikurin

お返事ありがとうございます。

書き込んでいただいたソースを基本にして、

PupSQLiteを使ってDBのインポートも行ったのですが、

なんどやってもうまくできませんでした。

それなので、PHPのマニュアル見ながらサンプルソースを作り、

tksqliteでインポートしました。


下記コメントに作成したサンプルがあります。

エラー処理などは、まだ書いてませんが、

おかしい点などありましたら、

ご回答いただけたらありがたいです。

わかりやすく書いていただきありがとうございました。

追伸:

先ほどWEBの環境がSQLITE2だったので、全てやり直しでした。

良いチャンスなので書いていただいたソースで試しました。

なんの不都合も無く、簡単、あっさりと動きました(笑)

ほんとうにありがとうございました。

2010/03/24 17:00:06
id:showyou No.3

回答回数96ベストアンサー獲得回数10

ポイント10pt

全く答になってないと思いますが、まずはfor文やwhile文が動く例を実際に自分で作って動かしてみることをおすすめします。

id:kei_kikurin

全く答えになってないとのことですが、

答えではなくアドバイスと受け止めました。

PHPマニュアルといろんなサイトを参考に、

今回初めて、for文foreach文を書いてみました。

なにかおかしい点などありましたら、

ご解答として書いていただけるとありがたいです。

アドバイスありがとうございました。

2010/03/24 14:03:07
  • id:kei_kikurin
    <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>
    <?php
    $db = new SQLite3('db.db');
    //$db->exec('CREATE TABLE tb (id,name,address,url)');
    //$db->exec("INSERT INTO tb (id,name,address,url) VALUES (1,'日本太郎','123-456-7890','yahoo.co.jp')");
    //$db->exec("INSERT INTO tb (id,name,address,url) VALUES (2,'東京花子','0987-6543-21','goo.ne.jp')");

    $result = $db->query('SELECT * FROM tb WHERE id = 1);

    //var_dump($result->fetchArray(SQLITE3_ASSOC));
    //var_dump($result->fetchArray(SQLITE3_NUM));

    $re = $result->fetchArray(SQLITE3_NUM);
    $count =count($re);
    for($i = 0 ; $i < $count; $i++){
    echo $re[$i];
    echo "<br />";
    }

    foreach($re as $key => $value){
    echo $value;
    echo "<br />";
    }

    $db->close();

    ?>

    </body></html>

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません