hitoshop14 @ ウィキ

よく使用する( foreach )文の説明

最終更新:

hitoshop

- view
管理者のみ編集可

よく使用する( foreach )文の説明

 

mysql操作関数

foreach.php
機能と返り値

mysql_fetch_array関数の第二引数に[MYSQL_ASSOC]を指定した場合と同じ

引数 mysql_query関数で返された結果セットID

<?php
/**
 * Created on 2008/11/11
 *
 * DB接続
 * Foreach文
 *
 */
 

require_once 'Smarty.class.php';
$o_Smarty = new Smarty();
$o_Smarty->template_dir = './templates/';
$o_Smarty->comkpile_dir = './templates_c';

try {
    $db = new PDO('mysql:dbname=testtable;host:localhost', 'root', '');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->query('set names utf8');
    $rs = $db->query('SELECT * FROM member');    
    $o_Smarty->assign('data', $rs->fetchAll());

} catch(PDOException $e) {
    print('エラーメッセージ' .  $e->getMessage());
}

$o_Smarty->display('foreach_book.tpl');


?>

 

foreach_book.tpl
機能と返り値 mysql_fetch_arrayの第二引数で[MYSQL_NUM]で指定した場合と同じ
引数 mysql_query関数で返された結果セットID

<html>
<head>

<title>Foreach文</title>

</head>
<body>
    <table border="1">
    <tr>
        <th>ID</th><th>menberID</th><th>mail</th><th>name</th>
    </tr>
    {foreach from=$data item="clm"}
    <tr bgcolor="{cycle values="FFffFF, FFff99"}">
        <td>{$clm.id}</td>
        <td>{$clm.memberID}</td>
        <td>{$clm.mail|escape}</td>
        <td>{$clm.name|escape}</td>
    </tr>
    {/foreach}
    </table>
</body>
</html>

 

mysql_num_fields関数
機能と返り値 結果セットに含まれるフィールド数を返す。主にフィールドをループ処理する場合に使用
引数

mysql_query関数で返された結果セットID

<?php
    $rst = query(sql文);

    $fldCnt = mysql_num_fields($rst);
    echo $fldCnt . 'のフィールド数があります';
?>

 

 

mysql_field_name関数
機能と返り値 結果セットから指定のフィールド名を取得
引数 第一引数に、mysql_queryで返された結果セットID。第二引数に、取得したいフィールド番号を指定

<?php
    $rst = query(sql文);

    $fldCnt = mysql_num_fileds($rst);
    echo $fldCnt . 'のフィールド数があります';

    for ($i = 0; $i < $fldCnt; $i++) {
        echo mysql_filed_name($rst, $i) . '<br />';
    }
?>

 

mysql_result関数
機能と返り値 結果セットから特定の行番号/列番号のデータを返す。ループ処理においてレコード番号やフィールド番号をインデックスとして扱いたい場合や、ランダムにデータを取り出したい場合に使用する
引数

第一引数に、mysql_query関数で返された結果セットID。第二引数にレコード番号。第三引数に、フィールド番号(省略可能)

<?php
    $rst = query(sql文);

    echo '1行1列目の値は、' . mysql_result($rst, 0, 0);
    echo '3行2列目の値は、' . mysql_result($rst, 2, 1);

?>

 

mysql_list_tables関数
機能と返り値 指定データベース内のテーブルの一覧を結果セットとして返す
引数 第一引数に、データベース名。第二引数にmysql_connect関数で返された接続ID(省略可能)

<?php
    $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);

    $rst = mysql_list_tables($DBNAME);

    while ($col = mysql_fetch_array($rst)) {
        echo $col[0] . '<br />';
    }
?>

 

mysql_list_fields関数
機能と返り値 指定テーブルのフィールド名の一覧を結果セットとして返す。結果セットにはレコードはなく、結果セットの各フィールド名が指定テーブルのフィールド名を表す
引数 第一引数にデータベース名、第二引数にテーブル名。第三引数にmysql_connect関数で返された接続ID(省略可能)

<?php
    $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);

    $rst = mysql_list_fields($DBNAME, 'testTable');

    $fldCnt = mysql_num_fields($rst);
    for ($i = 0; $i < $fldCnt; $i++) {
         echo mysql_fields_name($rst, $i);
    }
?>

 

mysql_errno / mysql_error関数
機能と返り値 発生したエラーについて、mysql_errno関数は「エラー番号」を返す。(エラーが発生しなければ[0]を返す)。mysql_errorは「エラーメッセージ」を返す
引数 mysql_connect関数で返された接続ID(省略可能)

<?php
    $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);

    //実在しないデータベースに意図的に選択
    $selectDB = mysql_select_db('nothingDB', $con);

    //エラー番号取得
    $errorNo = mysql_errno();

    if ($errorNo != 0) {
        echo $errorNO;
        echo mysql_error();
    }
?>

 

 

 

 

 

 

 



 

 

 

記事メニュー
人気記事ランキング
目安箱バナー