2016-07-10 4 views
0

私はPHPのsetcookie()を使用したいと思いますし、問題があります。実際には私はデータベースからいくつかの行を取り出し、最初にそれらをクッキーに保存してから取り出したいと思っています。私は複数の行と、例えば4列のデータベースにテーブルを持っていると考えてください。これどうやってするの。これは私の現在のコードです。すべてのアイデアはデータベースの行をクッキーに保存してからそれらを取得します

<html> 
 
    <body> 
 
    <?php 
 
error_reporting(0); 
 

 
include("config.php"); 
 

 
$quer= "SELECT*FROM ".$db_table." "; 
 

 

 
$query=mysqli_query($connect,$quer) 
 
or die(mysqli_error()); 
 
?> 
 

 
<?php while($row = mysqli_fetch_array($query)): 
 
setcookie("$cookiename", $row, 2 * 24 * 60 * 60 * 1000); 
 
//i do not know how can i retrieve columns now 
 
?> 
 

 
<?php endwhile;?> 
 

 
</body> 
 
</html>

+0

あなたはクッキーに文字列を "保存"できます。あなたが本当にそれを必要とするならば、その目的のためにlocalstoreを使用してください。 – Jeff

+0

とは別に、すべてのヘッダーが送信された後にクッキーを保存することはできません。 – Jeff

+0

お返事ありがとうございます。もう少し説明してください。簡単なコードを作ってください。 – Malekian

答えて

0

ありがとうここでは例です:

$cookie_name="cook"; 
setcookie($cookie_name, $row['key'],2 * 24 * 60 * 60 * 1000), "/"); 

は、より多くのためにこれをチェックしてください:あなたのケースのmysqli_fetch_array()関数でsetcookie

+0

お返事ありがとうございました。あなたのコードに「キー」とは何か – Malekian

+0

配列が{"name": "satty"、 "work"、 "stack"}の場合、名前と作業はそれぞれ値がsattyとスタックのキーです – Satty

1

は多次元配列を返します。つまり、$ row変数を参照する必要があります。例:

$row[0][0] // 1st row, 1st column 
$row[2][4] // 3rd row, 5th column 

また、あなたは、単一の文字列などで配列$行をパックすることができますクッキーに行全体を保存する必要がありますあなたが本当に/たい場合http://php.net/manual/en/mysqli-result.fetch-array.php

+0

お返事ありがとうございます。もう少し説明してください。コードにクッキーコードを追加します。だから私はそれを使用する方法を知っている – Malekian

0

を見て、assotiative配列としてデータをフェッチすることができますJSONのように:

//modified example from @Satty 
$cookie_name="cook"; 
setcookie($cookie_name, json_encode($row),2 * 24 * 60 * 60 * 1000), "/"); 

//to read the cookie: 
if(isset($_COOKIE[$cookie_name])) 
    $row_from_cookie = json_decode($_COOKIE[$cookie_name]); 

あなたはそれが、セパレータ(例えばとして使用することができますので、それはあなたのデータには存在しないことを確認することができ、特定のcaracterがある場合。 ";")implodeexplodeを使用して、配列全体を単一の文字列にまとめることもできます。

しかし、いくつかの列が任意の文字を含むことができるタイプのものであれば、データに期待していない文字がいつでも存在する可能性があるため、そうはしません(たとえば、誰も名前にセミコロンを持っていないと思うかもしれませんが、入力フィールドに誰かがセミコロンを入力している可能性があります)。

+0

あなたが私がすべての私の広告(私は不動産のウェブサイトを設計しています)のように "お気に入りに追加"オプションを追加したいので、 "お気に入りに追加"をクリックすると、お気に入りのページに投稿が送信され、彼は自分が望む時間にそれを見直すことができます。他のウィジェット=私はあなたの変数をクッキーに保存する必要はありません – Malekian

+0

私のコードでwhileループにコードを追加して列をフェッチすることができれば、もっと詳細なコードを説明してください。私はそれをする方法を知らないので。ありがとうございます。 – Malekian

+0

IMHOお気に入りに追加された広告のIDを保存する方が意味があります。ユーザーがサイトを再訪すると、その間にテキストや広告の内容が変更されている可能性があるため、Cookieに保存されている内容ではなく、データベースのデータに基づいてコンテンツが生成されます。 –

関連する問題