Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php脚本返回包含单词的每一行_Php_Mysql_Arrays_Search - Fatal编程技术网

php脚本返回包含单词的每一行

php脚本返回包含单词的每一行,php,mysql,arrays,search,Php,Mysql,Arrays,Search,此php脚本返回mySQL数据库中的每一行: <?php $host = "host_name"; $db = "database_name"; $user = "user_name"; $pass = "password"; $connection = mysql_connect($host, $user, $pass); //Check to see if we can connect to the server if(!$connection) { die("Data

此php脚本返回mySQL数据库中的每一行:

<?php

$host = "host_name";
$db = "database_name"; 
$user = "user_name";
$pass = "password";

$connection = mysql_connect($host, $user, $pass);

//Check to see if we can connect to the server
if(!$connection)
{
    die("Database server connection failed.");  
}
else
{
    //Attempt to select the database
    $dbconnect = mysql_select_db($db, $connection);

    //Check to see if we could select the database
    if(!$dbconnect)
    {
        die("Unable to connect to the specified database!");
    }
    else
    {
        $query = "SELECT * FROM farmer";
        $resultset = mysql_query($query, $connection);

        $records = array();

        //Loop through all our records and add them to our array
        while($r = mysql_fetch_assoc($resultset))
        {
            $records[] = $r;        
        }

        //Output the data as JSON
        echo json_encode($records);
    }


}

此脚本运行良好,但返回每一行

假设我的数据库包含农民的名字和他们的产品类型。第一栏是“id”,第二栏是“farmer_name”,第三栏是“农产品”。农产品是这样输入的:豆类、玉米、生菜、草莓、西红柿

我要做的是更改上面的脚本,使其只返回包含种植玉米的农民的姓名以及他们种植的所有产品类型的行。因此,我不仅需要名称,还需要所有产品的列表,只要农民种植玉米


基于数据库的结构,这可能吗?我尝试了几次使用Pineder/haystack,但都是空手而归。我对php知之甚少。

这就像使用WHERE一样简单

$query = "SELECT * FROM farmer WHERE produce = 'corn'";
请注意,
mysql\u
函数的价格被降低了

SELECT `farmer_name`, `produce` FROM `farmer` WHERE `produce` LIKE '%corn%'

这将返回在product字段中任何位置都可以找到玉米的行。

首先,如果您有能力设计表的结构,请不要这样做,因为它是非规范化的,只是为了澄清,product列是每行包含一个项目,还是包含所有农产品的字符串?后者会很糟糕!它是包含一个字符串。我唯一能想到的另一种结构化方法是为每个字符串添加一列。这是最佳做法吗?绝对不是。查看1NF、2NF、3NF和E.F.Codd。如果我为您编写它,我很乐意使用simple。但是,上面只返回[].oh yikes这意味着您将它们全部放在一列中。如果它们决定种植茄子,您不能添加行,但必须进行分析。数据库表不是这样设计的,似乎这是您的选择。根据您当前的结构,您的添加查询将是“UPDATE
farmer
SET
Product
=CONCAT”(
product
,”,茄子),其中
farmer\u name
=$farmerName”;