データベース内の情報を使用して新しいPHPセッションを開始したいのですが、どうすればよいか分かりません。助けて?ありがとう。例えばデータベースからセッションに情報を取得するにはどうすればよいですか?
、私はRowCと、TableBのを持っているDatabaseAを持っています。 RowCのファーストネームをPHPセッションに保存したい。それ、どうやったら出来るの?
データベース内の情報を使用して新しいPHPセッションを開始したいのですが、どうすればよいか分かりません。助けて?ありがとう。例えばデータベースからセッションに情報を取得するにはどうすればよいですか?
、私はRowCと、TableBのを持っているDatabaseAを持っています。 RowCのファーストネームをPHPセッションに保存したい。それ、どうやったら出来るの?
で両方の操作上のチュートリアルの多くがありますが、データベース
しかし、どのようにしてデータベースから情報を取得しますか?手動で行を入力する必要はありませんが、これは避けようとしています – user1227430
データベースから情報を取得する方法は、PHPの基礎を学ぶことです。何かありますか? –
私は方法を知っていますが、いつでも上または下の行を選択します – user1227430
擬似コード:
$fn = "";
SELECT RowC FROM TABLE B;
while($row = mysql_fetch_array($result_of_query) {
$fn = $row['firstname'];
}
session_start();
$_SESSION['firstname'] = $fn;
読むthisはPHPでデータベース(MySQLの)での作業を理解します。
なぜ$ fnは空白ですか? – user1227430
これは初期化と呼ばれます。その意図する値は後で 'while'ループの中で設定されます。 – check123
私はあなたのクエリを制限するために、ユーザーの入力を求めていることを前提としています。あなたはユーザー情報を提出するポストを使用する場合は、このような何かをするだろう...もちろん
session_start();
$userdata = mysql_real_escape_string($_POST['userdata']);
$result = mysql_query("select RowC from TableB where somedata='$userdata'") or die(mysql_error());
$result = mysql_fetch_row($result);
$result = $result[0];
$_SESSION['firstname'] = $result;
あなたにもデータベースに接続する必要があり、いくつかのユニークなコラムで「someDataが」を置き換えます。 session_start()
にも電話してください。
それは動作しますが、そのような変数の再利用は怖いです –
私はあなたがこのような小さな制御されたクエリをパラメータ化する必要はありません実現していますが、学習段階にあるので、あなたはPDOおよびパラメータ化querysに見て、将来の頭痛を回避するための正しい方法を学ぶ必要があります。 TABLE_NAME FROM
は<?php
$host = "localhost";
$dbname = "mydb";
$user = "username";
$pass = "password";
//this is where you set the value you use in your where clause to determine
//what name to get back - I assume you'll use $_GET or $_POST or else to populate this
$name = "bob";
try {
$dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
} catch(PDOException $e) {
echo "Problem connecting to DB, try again; if it presists contact admin.";
exit();
}
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sth_select = $dbh->prepare("SELECT row FROM table WHERE firstname = :name");
$sth_select->setFetchMode(PDO::FETCH_ASSOC);
$sth_select->execute(array('firstname' => $name));
while ($row = $sth_select->fetch()) {
$firstname = $row['firstname'];
}
session_start();
$_SESSION['firstname'] = $firstname;
?>
SELECT FIRST_NAME WHERE field_name
= $値
あなただけの最初の行したい場合:DESCのLIMIT BY ORDERを1
最後の行:ASCのLIMIT BY ORDER 1
WHERE節の内容によって、結果の数に依存します。
3人は同じ名前を持っており、それは、WHERE last_nameの=ボブだった場合。名前デイブ・ボブと 3人だけデイブをしたい場合は... ...
をロードします、あなたのクエリの最後にFIRST_NAME BY
GROUPを追加する必要が...一つだけを返します。私はちょうどこの例のためにその中を追加するWHEREの句を必要としないデイブ
EDIT。しかし、あなたが特定の名前(単一の名前を返して)を望むなら、それを行う唯一の方法です。
あなたは、HTTPセッションを意味ですか? –
私はこの種のセッションを意味します。 $ _SESSION ['firstname']; – user1227430