0

データを mysql データベースに保存しました。php で出力する前に、データを異なる配列ごとに分割する方法を知りたいですか?

<?php
  define('DB_HOST', 'localhost');
  define('DB_USER', 'myusername');
  define('DB_PASSWORD', 'mypassword');
  define('DB_DATABASE', 'mydbname');   

  $errmsg_arr = array();
  $errflag = false;
  $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

   if(!$link)
  {
    die('Failed to connect to server: ' . mysql_error());
  }
  $db = mysql_select_db(DB_DATABASE);

  if(!$db)
  {
    die("Unable to select database");
  }


  if($errflag)
  {
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
    echo implode('<br />',$errmsg_arr);
  }
  else
  {
    $qrytable1="SELECT id, mydata FROM mydb ";
    $result1=mysql_query($qrytable1) or die('Error:<br />' . $qry . '<br />' . mysql_error());

     while ($row = mysql_fetch_array($result1))
    {
      echo "<tr><td>".$row['mydata']."</td></tr>";
    }
  }
?>

私のPHPページでは、次のように表示されます。

<tr><td>my data 1</td></tr><tr><td>my data 2</td></tr><tr><td>my data 3</td></tr><tr><td>my data 4</td></tr>

それらを順番に配列に分割し、それぞれ異なる配列で次のように出力したいと思います。

mydata1

mydata2

mydata3

mydata4

PHPでデータを出力する前に、データを配列に分割するにはどうすればよいですか?

4

4 に答える 4

1

このようなものをお探しですか?

(例として考えますが、@BenMとして、PDOの使用を検討してください)

$sql = 'SELECT * FROM country';
$query = mysql_query($sql);
$countries = array();
while ($country = mysql_fetch_assoc($query)){ $countries[] = $country; }

これにより、使用できるようになります

foreach ($countries as $country) {
    echo $country['name'];
}
于 2013-04-11T15:11:11.480 に答える
1

配列内のデータを取得するよりも正しい場合は、データ間のスペースを削除したいので、これを試してください

while ($row = mysql_fetch_array($result1))
{
  echo "<tr><td>".$row['mydata']."</td></tr>";
  $myArr[] = $row['mydata']; 
}

foreach($myarr as $key=>$value)
{
   $myArr[$key] = str_replace(" ","",$value);
}

str_replaceはスペースを削除します。

于 2013-04-11T15:20:27.257 に答える
1

データはすでに配列内にあります。それがこの行の機能です:

 while ($row = mysql_fetch_array($result1))
{
  echo "<tr><td>".$row['mydata']."</td></tr>";
}

while ループの外で配列にアクセスする必要がある場合は、これを行うことができます..

$myArray = array();
    while ($row = mysql_fetch_array($result1)){
    echo "<tr><td>".$row['mydata']."</td></tr>";
    foreach($row as $key=>$val){
        $myArray[$key] = $val;
    }
}

実際に..クエリが複数の行を返すと仮定すると、それは多次元配列になります..

$myArray = array();
$i = 0;
    while ($row = mysql_fetch_array($result1)){
    echo "<tr><td>".$row['mydata']."</td></tr>";
    foreach($row as $key=>$val){
        $myArray[$i][$key] = $val;
        $i++;
    }
}
于 2013-04-11T15:14:31.293 に答える
0

これを使えば、

 $db->setQuery($query);
$rows = $db->loadObjectList();


$i=0;
foreach($rows as $row){
        //$row; 
        $image = json_decode($row->images);
// split code
     $str     = utf8_encode($row->introtext);
     $order   = array("<p>", "</p>", "\n", "\r");
     $replace = '';
    $introtext = str_replace($order, $replace, $str);

    $introtext_split = explode("|", $introtext);

     $data[0]->designation  =  preg_replace('#<br />?#', "\n", $introtext_split[0]);

     $data[0]->description  =  preg_replace('#<br />?#', "\n\n", $introtext_split[1]);

     $data[0]->small_description  =  preg_replace('#<br />?#', "\n\n", $introtext_split[2]);
}

任意のタグを使用したデータで、またはこのタグを次のセクションを使用して置き換えます:

$str     = utf8_encode($row->introtext);
 $order   = array("<p>", "</p>", "\n", "\r");

私はそれがあなたに役立つと思います。

于 2017-11-23T05:48:16.290 に答える