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

如果我是对的,除了在数组中获取数据之外,您还想删除数据之间的空间,试试这个

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

你在寻找这样的东西吗?

(将其视为示例,但作为@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>";
}

如果您需要在 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 回答