私は最近、Javascriptでコードを短縮するように配列システムを教えられました。
var fields = ['username', 'password', 'password_confirm', 'type', 'firstname', 'lastname', 'bdate_month', 'bdate_day', 'bdate_year', 'email', 'country', 'state', 'city', 'payment_email'];
var length = fields.length;
for (var i=0; i<length; i++) {
if ($('#' + fields[i]).val() == "") {
$('#' + fields[i] + '_error').show();
$('#' + fields[i] + '_error').fadeOut(4000, function() {});
$('#' + fields[i]).focus();
return false;
}
}
これは、送信フォームの内容を検証する一連の条件を作成するために生成したコードです。
ここで、PHPでこれと同じ原則を使用して、MySQLデータベースからログインしたユーザーのデータを照会する一連の関数を生成したいと思います。
私はPHPの初心者であり、次のコードは単なるナンセンスなジブリッシュの集まりである可能性があることを認識しています。しかし、多分あなたは私がここで成し遂げようとしていることのアイデアを得ることができます。
include("connect.php");
$fields = ('id', 'username', 'password', 'password_confirm', 'type', 'firstname', 'lastname', 'bdate_month', 'bdate_day', 'bdate_year', 'email', 'country', 'state', 'city', 'payment_email');
$username = mysql_real_escape_string($_SESSION['username']);
for ($i=0; $i<15; $i++) {
function $fields($i)() {
$username = mysql_real_escape_string($_SESSION['username']);
$sql="SELECT * FROM users WHERE username='$username'";
$resultado=mysql_query("$sql");
$row=mysql_fetch_array($resultado);
if($row!=NULL)
{
echo ($row['$fields($i)']);
} else {
echo (" No ".$fields($i)." inserted!");
}
}
}
===========================================編集:
私ははるかに簡単で簡単な方法を考え出しました。
function in_user($key) {
$username = mysql_real_escape_string($_SESSION['username']);
$sql="SELECT * FROM users WHERE username='$username'";
$resultado=mysql_query("$sql");
$row=mysql_fetch_array($resultado);
if($row!=NULL){
echo ($row[$key]);
} else {
echo ("No {$key}!");
}
}
変更する必要があるのは参照するフィールドだけなので、引数付き関数の方がはるかに簡単で単純だと思います。
<?php in_user('email');?>
出力しますstored.email@database.com