2011-06-21 6 views
0

のクローンを作成するためにどのように私は私が私のログインを投稿しlogin.phpに、私は(名前のような)セッションの詳細などを保存index.phpのから私の問題 を説明します:mysql_result

$_SESSION['name'] = mysql_result($res,0,"name"); 

その後、私は戻って転送しています〜index.php。 ここで私がログインしているユーザーの名前を表示する:

echo $_SESSION['name'] 

ともDBからの全ての名前:

$result=mysql_query($query); 
for ($i=0; $i<mysql_num_rows($result); $i++) { 
    $row = mysql_fetch_assoc($result); 
    $name =$row['name']; 
    echo $name; 
} 

そしてここでは、問題が来る:私は、ログイン後、すべてのもの(両方のユーザーの名前とすべての名前)が正しく表示されます。しかし、私はページを更新するときecho $_SESSION['name']は、だから私は$ _SESSION [「名前」]

感謝に格納するとき、私はmysql_result($res,0,"name");のクローンを作成する必要があると思います$name代わりの

た1 == databseに姓を示しあなたは大いに

EDIT ログインするのはログイン名だけです。その人がログインすると、データベースからすべての人を見ることができます。

+0

結果を返すために実行している実際のクエリは何ですか? –

+0

ええ、単にオブジェクトの代わりに参照を渡すだけです。 – MoarCodePlz

+0

@MoarCodePlzどうすれば "クローン"できますか?代わりに参考文献 – myro

答えて

1

あなたがオブジェクトのクローンを作成するために探しているなら、あなたは、PHPのドキュメントから、次

$object2 = clone $object1; 

を試すことができ、いくつかのオブジェクトは、クローニングをサポートしていないようですので、これが事実であるならば、あなたは試みることができます(PHPのドキュメントにコメントから、再び)以下はディープコピーを行うには

protected function deepCopy($inputObject) { 
    return unserialize(serialize($inputObject)); 
} 

http://php.net/manual/en/language.oop5.cloning.php

ここで見つけることができるドキュメントページのコメントで作られたいくつかの他の良い点があります。

お問い合わせ

+0

あまりにも悪い私はphp5を使用していません。私の単純なケースに対する他の提案はありますか? – myro

+0

mysql_resultが文字列を返すのを見ると、後の呼び出しで実際に上書きすると思います。このケースに対処するためにそこにいくつかのロジックを入れて、上書きしないようにしてください。私はmysql_resultが文字列を返すだけであることに気付かなかった。これは、参照ではなく値で渡す必要があります。 – MoarCodePlz

+0

セッションに保存するときに一度呼びます。それから私は接続を閉じます。そして、私はindex.phpに転送され、再び接続を開き、DBからすべての名前を選択します。 – myro

0

私の意見では、セッションに他のすべての名前を格納しないほうがよいでしょう。ログインしたデータベースアプリケーションであるため、私は他の人がデータを使用して更新できると仮定します。つまり、何かを変更すると、セッション保存されたデータは更新時に廃止されます。

ログインしてオンの認証情報を設定してから、インデックスに戻ったときにログインしていることを確認し、その時点で名前を取得してください。そうすれば、フェッチのクローン作成について心配する必要はなく、最新の情報が得られます。

+1

それは彼が探しているものではありません。 – genesis

関連する問題