【问题标题】:Echo out specific value from array PHP?从数组 PHP 中回显特定值?
【发布时间】:2015-01-16 23:26:32
【问题描述】:

我需要在 HTML 表单中插入特定的数组值。我从 mysql 表中查询、获取和数组。当我 print_r($array) 我得到以下输出。

问题:假设我想将值 Dæk Bag 回显到一个 html 表单问题,我该怎么做?

INFO:我的表格中有 40 个问题。

附言。该应用程序仅供自己使用,我知道使用 mySQLi 或 PDO 代替 mySQL -> 将尽快更改。

数组:

Array
(
    [0] => 1
    [id] => 1
    [1] => Dæk For
    [title_task_DK] => Dæk For
)
Array
(
    [0] => 2
    [id] => 2
    [1] => Dæk Bag
    [title_task_DK] => Dæk Bag
)
Array
(
    [0] => 3
    [id] => 3
    [1] => Dæk Alm.
    [title_task_DK] => Dæk Alm.
)
Array
(
    [0] => 4
    [id] => 4
    [1] => Dæk Indl.
    [title_task_DK] => Dæk Indl.
)
Array
(
    [0] => 5
    [id] => 5
    [1] => Slange/Lapning For
    [title_task_DK] => Slange/Lapning For
)

我的 PHP 代码:

<?php
$results = mysql_query("SELECT * FROM task_list");
    while($array = mysql_fetch_array($results)) {    
        print_r($array);
    }
?>

MySQL 表:

CREATE TABLE `task_list` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title_task_DK` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8;

【问题讨论】:

  • 您必须直接通过 MySQL 查询它 - 那您为什么还要使用数据库呢? :))
  • ... 该数组是从我的数据库中的表中查询的。我不完全理解你的意思@moonwave99。请解释得更详细或使用前任。谢谢。
  • 按照其他用户的建议,在查询子句中使用 WHERE
  • ...@moonwave99 我在表格中有 40 个问题,所以在每个问题上使用 WHERE 的 mysql_querying 似乎有很多不必要的代码。必须有更简单的方法来解决这个问题吗?
  • 好吧,如果您将所有数据都放在一个数组中,只需使用array_filter 即可获得所需的内容[网上有很多示例[.

标签: php mysql arrays


【解决方案1】:

尝试匹配键/值以从数组中获取预期结果

while($array = mysql_fetch_array($results)) {   
    if($array['id'] == 2) {
      echo $array['title_task_DK'];
    }
 }

【讨论】:

  • ...我知道你想做什么@Rakesh-Sharma,但是当我评论“programming-Student”的另一个答案时,我在表格中有 40 个问题,所以使用这种方法每一个问题似乎都是很多不必要的代码。必须有一种更简单的方法来解决这个问题。
【解决方案2】:

您需要执行以下操作。

    <?php
    $requiredName = 'Dæk Bag';
    $results = mysql_query("SELECT * FROM task_list");
        while($array = mysql_fetch_array($results)) {
           if ($array['title_task_DK'] == 'Dæk Bag') {
            print($array['title_task_DK']);//Use this for displaying purpose.
           }
        }
    ?>

说明: 您只需要该行中的一个元素(而不是整个数组)。

【讨论】:

  • 如果我测试您的建议 @Programming-Student ,print_r($array['title_task_DK']); 我会从所有数组中获得所有 title_task_DK。我只想要一个,在这个前。值Dæk Bag 请在问题中查看我的My mySQL 表:
  • ...我不能让你的代码工作@Programming-student。我知道你想做什么,但我在表格中有 40 个问题,所以在每个问题上使用你的建议将是很多不必要的代码。必须有一种更简单的方法来解决这个问题。
【解决方案3】:

您可以使用 MySQL 本身来做到这一点。

$results = mysql_query("SELECT * FROM task_list WHERE title_task_DK => 'Dæk Bag'");

此外,如果您只想要一行,请设置限制。

$results = mysql_query("SELECT * FROM task_list WHERE title_task_DK => 'Dæk Bag' LIMIT 1");

现有的 PHP 代码可以正常工作。

【讨论】:

  • 正如我对您之前回答 @programming-student 的评论,我在表格中有 40 个问题,因此在每个问题上使用这个建议似乎是很多不必要的代码。必须有更简单的方法来解决这个问题!
【解决方案4】:

下面的 PHP 代码解决了我的问题,并在我的 HTML 表单中回显出我需要的值 Dæk Bag

<?php
 $results = mysql_query("SELECT * FROM task_list");
 $value = array();
 while($array = mysql_fetch_array($results)) {    
  $value[] = $array['title_task_DK'];
}
  echo($value[1]);
?>

您是否需要在上述代码中使用 foreach 循环:我发现这 Stack Overflow link 很有帮助。

感谢大家的评论和回答。

附言。也就是说,请阅读:Why shouldn't I use mysql_* functions in PHP?

【讨论】:

    猜你喜欢
    • 2016-09-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    相关资源
    最近更新 更多