Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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 在MySQL数据库的一个字段中存储回显单词的过程是什么_Php_Html_Mysql - Fatal编程技术网

Php 在MySQL数据库的一个字段中存储回显单词的过程是什么

Php 在MySQL数据库的一个字段中存储回显单词的过程是什么,php,html,mysql,Php,Html,Mysql,在MySQL数据库的一个字段中存储回显单词的过程是什么。比如说在这种情况下, 取决于以下单词的条件 *Conformity Tradition Benevolence Universalism Self-Direction Stimulation Hedonism Achievement Power Security* 将显示在屏幕上,但如何存储在数据库中。所以我想将结果存储在一个字段中。说要看我的选择只有从众、传统、仁爱、普

在MySQL数据库的一个字段中存储回显单词的过程是什么。比如说在这种情况下,

取决于以下单词的条件

   *Conformity
   Tradition
   Benevolence
   Universalism
   Self-Direction
   Stimulation
   Hedonism
   Achievement    
   Power
   Security*
将显示在屏幕上,但如何存储在数据库中。所以我想将结果存储在一个字段中。说要看我的选择只有从众、传统、仁爱、普遍主义来了,所以我想把它储存起来

  ===========
  | Result  |
  ===========
  Conformity
  Tradition
  Benevolence
  Universalism
这是根据stackoverflow用户的建议,我更改了代码,如下所示,但没有在屏幕上或数据库中显示任何内容

<?php include 'database.php'; ?>
<?php
// create a variable
$first_name=$_POST['first_name'];
$last_name=$_POST['last_name'];
$department=$_POST['department'];
$email=$_POST['email'];
$location=$_POST['location'];
$sex=$_POST['sex'];


function checkResults($rules, &$finalResult) {
    foreach($rules as $word => $rule) {
        $valid = true;
        foreach($rule as $answer) {
            $fieldname = 'answer'.$answer;
            $valid = $valid && (isset($_POST[$fieldname]) && ($_POST[$fieldname]) == 'yes');
        }
        if ($valid) {
            $finalResult .= (empty($finalResult) ? '' : '|') . $word;
            echo $word . '<br />';
        }
    }
}

$rules = array(
    'Conformity'     => array(7,16,28,36),
    'Tradition'      => array(9,20,25,38),
    'Benevolence'    => array(12,18,27,33),
    'Universlism'    => array(3,8,19,23,29,40),
    'Self Direction' => array(1,11,22,34),
    'Stimulation'    => array(6,15,30),
    'Hedonism'       => array(10,26,37),
    'Achievement'    => array(4,13,24,32),
    'Power'          => array(2,17,29),
    'Security'       => array(5,14,21,31,35),
);

$finalResult = '';
checkResults($rules, $finalResult);

echo "\$finalResult=$finalResult<br />";

mysqli_query($db,"INSERT INTO employee(first_name,last_name,department,email,location,sex,answer1,answer2,answer3,answer4,answer5,answer6,answer7,answer8,answer9,answer10,answer11,answer12,answer13,answer14,answer15,answer16,answer17,answer18,answer19,answer20,answer21,answer22,answer23,answer24,answer25,answer26,answer27,answer28,answer29,answer30,answer31,answer32,answer33,answer34,answer35,answer36,answer37,answer38,answer39,answer40,finalResult)
VALUES('$first_name','$last_name','$department','$email','$location','$sex','$answer1','$answer2','$answer3','$answer4','$answer5','$answer6','$answer7','$answer8','$answer9','$answer10','$answer11','$answer12','$answer13','$answer14','$answer15','$answer16','$answer17','$answer18', '$answer19','$answer20','$answer21','$answer22','$answer23','$answer24','$answer25','$answer26','$answer27','$answer28','$answer29','$answer30','$answer31','$answer32','$answer33','$answer34','$answer35','$answer36','$answer37','$answer38','$answer39','$answer40','$finalResult')");

if(mysqli_affected_rows($db) > 0){
    echo "<p>Thank you for your survey!</p>";
    echo "<p>You have the following value and ethics</p>";
    echo "<a href=\"index.php\">Please share your Public Timeline status by CLICKING here</a>";

   $myArray = unserialize($row['finalResult'];

   foreach($myArray as $word){
      echo $word . <br>;
   }
} else {
   echo "Data NOT Added<br />";
   echo mysqli_error ($db);
}   

//  $fromDatabase = $row['finalResult'];
$words = explode('|', $fromDatabase);
echo '<br />From database: <br />';
foreach($words as $n => $word) {
    echo $word . '<br />';
}


您可以创建一个包含所有结果的新表。而不是在“employee”表中有有限的列

您的新表将类似于:

CREATE TABLE `result`
`result_id` INT(11),
`employee_id` INT(<int-length-of-employee-id>),
`result` VARCHAR(<max-length-of-a-result>)
FOREIGN KEY (`result_id`) REFERENCES `employee`(`employee_id`) ON DELETE CASCADE;
CREATE TABLE`result`
`结果_id`INT(11),
`雇员id`INT(),
`结果`VARCHAR()
外键(`result\u id`)在删除级联上引用`employee`(`employee\u id`);

您可以创建一个包含所有结果的新表。而不是在“employee”表中有有限的列

您的新表将类似于:

CREATE TABLE `result`
`result_id` INT(11),
`employee_id` INT(<int-length-of-employee-id>),
`result` VARCHAR(<max-length-of-a-result>)
FOREIGN KEY (`result_id`) REFERENCES `employee`(`employee_id`) ON DELETE CASCADE;
CREATE TABLE`result`
`结果_id`INT(11),
`雇员id`INT(),
`结果`VARCHAR()
外键(`result\u id`)在删除级联上引用`employee`(`employee\u id`);

您可以创建一个单词数组,序列化该数组,然后将序列化的数组插入数据库中

例如:

$arrayOfWords = array('Tradition','Benevolence','Universalism'); //the array

$serialized = serialize($arrayOfWords); // this is a string now: a:3:{i:0;s:9:"Tradition";i:1;s:11:"Benevolence";i:2;s:12:"Universalism";}
然后,当您从db输出时,您可以取消字段序列化,并将阵列取回:

$myArray = unserialize($row['fieldName'];

foreach($myArray as $word){
   echo $word;
}

您可以创建一个字数组,序列化该数组,并在数据库中插入序列化的数组

例如:

$arrayOfWords = array('Tradition','Benevolence','Universalism'); //the array

$serialized = serialize($arrayOfWords); // this is a string now: a:3:{i:0;s:9:"Tradition";i:1;s:11:"Benevolence";i:2;s:12:"Universalism";}
然后,当您从db输出时,您可以取消字段序列化,并将阵列取回:

$myArray = unserialize($row['fieldName'];

foreach($myArray as $word){
   echo $word;
}

我为你把这一切都弄明白了。
代码经过测试,包括数据库访问。表格中的值已模拟(在代码中注明)

HTML表单 笔记
  • 代码包含两个部分(插入和选择)
    它们属于会话中的不同步骤:选择创建表单和显示数据的位置,插入从表单中获取用户数据并插入数据库的位置
  • 表单中的所有“answer99”字段都由函数checkResults()处理。这个函数。。。
    • 接受规则(在数组$rules中)以决定哪些“单词”是有效的
    • 连接找到的给出$finalResult的单词
    • 为所有“answer99”字段动态创建用于插入查询的名称($names)和值($values)。
      $names和$values变量随后由其他数据库字段和值完成。“answer99”字段的数量由语句define('numanswers',40)定义
  • 当“选择零件”选择最后一条插入的记录时,“插入零件”将完全执行,并且仅在插入后显示finalResult字段
  • 上面显示了用于测试插入部分的相应HTML表单

    • 我为你把这一切都弄糊涂了。
      代码经过测试,包括数据库访问。表格中的值已模拟(在代码中注明)

      HTML表单 笔记
      • 代码包含两个部分(插入和选择)
        它们属于会话中的不同步骤:选择创建表单和显示数据的位置,插入从表单中获取用户数据并插入数据库的位置
      • 表单中的所有“answer99”字段都由函数checkResults()处理。这个函数。。。
        • 接受规则(在数组$rules中)以决定哪些“单词”是有效的
        • 连接找到的给出$finalResult的单词
        • 为所有“answer99”字段动态创建用于插入查询的名称($names)和值($values)。
          $names和$values变量随后由其他数据库字段和值完成。“answer99”字段的数量由语句define('numanswers',40)定义
      • 当“选择零件”选择最后一条插入的记录时,“插入零件”将完全执行,并且仅在插入后显示finalResult字段
      • 上面显示了用于测试插入部分的相应HTML表单

      在存储之前,您可以将由管道(|)字符分隔的单词连接起来。再次读取时,$words=explode(“|”,$fromdb);我想知道是否可以将第一个回显单词存储在变量(比如FinalResult)中,然后将下一个回显单词附加到FinalResult上。最后,我可以将FinalResult存储在数据库中。是的,有几种方法:可以将单词添加到数组中,然后序列化()或内爆()以创建字符串。从数据库中读取时,可以分别使用unserialize()或infrade()再次创建数组。或者,你可以通过一个自己的函数将这些单词连接起来,就像下面我的答案一样。我更新了我的答案,把它们都弄糊涂了。您将看到,我已经简化了“是”的所有测试。注意:我没有测试数据库访问。没有,没有得到答案,我仔细检查了数据库连接。在存储之前,您可以连接由管道(|)字符分隔的单词。再次读取时,$words=explode(“|”,$fromdb);我想知道是否可以将第一个回显单词存储在变量(比如FinalResult)中,然后将下一个回显单词附加到FinalResult上。最后,我可以将FinalResult存储在数据库中。是的,有几种方法:可以将单词添加到数组中,然后序列化()或内爆()以创建字符串。从数据库中读取时,可以分别使用unserialize()或infrade()再次创建数组。或者,你可以通过一个自己的函数将这些单词连接起来,就像下面我的答案一样。我更新了我的答案,把它们都弄糊涂了。你会看到我已经简化了一个