2

PHPを始めたばかりです。WordPressデータベースから情報を取得することに取り組んでいます。

プラグインは、サインアップ フォームから DB にデータを書き込みます。

私が望むのは、このデータを独自の方法でフォーマットすることです。たとえば、テーブルを別のページに表示します。

私がすでに行ったことは、DBに接続してデータを出力することです。これでそれをしました:

<?php

    //connect to the database
    mysql_connect ("host","user","pasw") or die ('Cannot connect to MySQL: ' . mysql_error());
    mysql_select_db ("database") or die ('Cannot connect to the database: ' . mysql_error());

    //query
    $query = mysql_query("select id, data from wp_ninja_forms_subs") or die ('Query is invalid: ' . mysql_error());

    //write the results

    while ($row = mysql_fetch_array($query)) {
        echo $row['id'] . " " . $row['data'] . "
    ";

    // close the loop
    }

    ?>

問題は、結果が得られることですが、これは私にはあまり適していません:

14 a:4:{i:0;a:2:{s:8:"field_id";i:2;s:10:"user_value";s:8:"John Doe";}i:1;a:2:{s:8:"field_id";i:4;s:10:"user_value";s:11:"+3706555213";}i:2;a:2:{s:8:"field_id";i:12;s:10:"user_value";s:9:"Company 1";}i:3;a:2:{s:8:"field_id";i:8;s:10:"user_value";a:1:{i:0;s:13:" Finansiniai ";}}} 15 a:4:{i:0;a:2:{s:8:"field_id";i:2;s:10:"user_value";s:10:"Bill Gates";}i:1;a:2:{s:8:"field_id";i:4;s:10:"user_value";s:11:"+5654412213";}i:2;a:2:{s:8:"field_id";i:12;s:10:"user_value";s:9:"Company 2";}i:3;a:2:{s:8:"field_id";i:8;s:10:"user_value";a:1:{i:0;s:13:" ?vaizd˛io ";}}} 16 a:4:{i:0;a:2:{s:8:"field_id";i:2;s:10:"user_value";s:7:"Person3";}i:1;a:2:{s:8:"field_id";i:4;s:10:"user_value";s:7:"6463213";}i:2;a:2:{s:8:"field_id";i:12;s:10:"user_value";s:9:"Company 3";}i:3;a:2:{s:8:"field_id";i:8;s:10:"user_value";a:2:{i:0;s:10:" HTML/CSS ";i:1;s:12:" Photoshop ";}}} 17 a:4:{i:0;a:2:{s:8:"field_id";i:2;s:10:"user_value";s:11:"Pretty Girl";}i:1;a:2:{s:8:"field_id";i:4;s:10:"user_value";s:9:"643122131";}i:2;a:2:{s:8:"field_id";i:12;s:10:"user_value";s:4:"Zara";}i:3;a:2:{s:8:"field_id";i:8;s:10:"user_value";a:1:{i:0;s:13:" ?vaizd˛io ";}}} 

今、私が見たいのはテーブルです:

2013.10.25 Pretty Girl 643122131 ザラ・アイヴァイズジオ
2013.10.25 Person3 6463213 会社3 HTML/CSS , Photoshop
2013.10.25 Bill Gates +5654412213 Company 2 Įvaizdžio
2013.10.25 John Doe +3706555213 Company 1 Finansiniai

誰かがそれを達成する方法を教えてもらえますか? 私のデータ出力は配列だと思いますか、それとも間違っていますか?

はいの場合、誰かがその配列の一部をフォーマットする方法の例を教えてくれるので、残りを行うことができますか?

または、何をグーグルで探すべきかについてのヒントさえありますか?

ありがとう!

4

1 に答える 1

0

"\n"改行文字に使用:)

個々の値 ( a:4:{i:0....}) は「シリアル化」されています。serialize()これは、 PHP 関数に渡された 4 つの要素の配列でした。関数はテキスト表現を返しました (つまり、配列を「シリアル化」しました)。したがって、配列全体がデータベースの 1 つのセルに単純なテキストとして保存されます。

関数unserialize()は逆の処理を行います。つまり、「シリアル化された」(テキスト) 値を変換し、元の PHP オブジェクト (この場合は配列) を返します。

「リソース」が付加されていない限り、ほとんどすべての PHP オブジェクトをシリアライズできます。しかし、それについては別の質問がすでにあります: PHP のシリアライズ機能で失敗する原因は何ですか? 数値、文字列、配列、さらには単純なオブジェクトの配列をシリアル化する限り、何も心配する必要はありません。

非シリアル化時の最初のセル (14 番なし):

array (
  0 => 
  array (
    'field_id' => 2,
    'user_value' => 'John Doe',
  ),
  1 => 
  array (
    'field_id' => 4,
    'user_value' => '+3706555213',
  ),
  2 => 
  array (
    'field_id' => 12,
    'user_value' => 'Company 1',
  ),
  3 => 
  array (
    'field_id' => 8,
    'user_value' => 
    array (
      0 => ' Finansiniai ',
    ),
  ),
)

(使用: http://www.functions-online.com/unserialize.html ) これらを for ループなどで実行して、必要なレンダリングを取得します。それはあなた次第です。

于 2013-10-24T23:54:53.677 に答える