0

我有 3 列的 mysql 表'persons',

Name   Salary  Profession

我正在使用 php get 方法发送 3 个带有值的参数,

 $name = raj|lokesh|amar
 $salary = 10000|20000|30000
 $job = telecom|marine|shipyard

我必须将它们插入“人员”表中,

Name     Salaray  Profession

raj      10000     telecom
lokesh   20000     marine
amar     30000     shipyard

谁能告诉我我该怎么做?

4

5 回答 5

2

您可以使用explode函数将字符串转换为数组。您当然可以在您的情况下使用它,使用我的小演示:

$name = "raj|lokesh|amar";
$salary = "10000|20000|30000";
$job = "telecom|marine|shipyard";

您只需设置变量。现在把它们变成exploded数组:

$name = explode("|", $name);
$salary = explode("|", $salary);
$job = explode("|", $job);

您基本上想要获取字符之间的所有单词|并将每个单词转换为一个数组项,因此每个单词都有自己的索引。

现在,$name[0](第一个数组索引),

echo $name[0]; // echoes 'raj'
echo $name[1]; // echoes lokesh'
echo $job[3]; // echoes 'shipyard';

现在您必须遍历这些数组并将其插入到查询中:

for ($i = 0; $i < count($name); $i++) {
    echo $name[$i];
}

所以最终的解决方案将如下所示:

for ($i = 0; $i < count($name); $i++) {
    $query = $pdoObject->prepare("INSERT INTO table (name, salary, profession) VALUES (:name, :salary, :jobs)");
    $query->execute(array(
        ":name" => $name[$i], 
        ":salary" => $salary[$i], 
        ":jobs" => $jobs[$i]
    );
}
于 2013-10-05T10:28:51.167 回答
0
//ASSIGN THE VARIABLES TO INSERT
    $name= '';
    $salary='';
    $job='';
//INSERT DATA INTO DATABASE
    $Input = mysql_query('INSERT INTO persons (name, salary, profession) VALUES ($name, $salary, $job)');
//SEARCH FOR PERSONS
    $output= mysql_query('SELECT * FROM persons ORDER BY id ASC');
    $personsCount = mysql_num_rows($output); //count output amount
//LOOP PERSONS OUTPUT
    if($personsCount > 0){
        while($row=mysql_fetch_array($output)){
                $id = $row['id'];
            $name = $row['name'];
            $salary = $row['salary'];
            $job = $row['job'];

    $personsList .=  $name.'&nbsp;'.$salary.'&nbsp;'.$job.'';
    }
}

echo $personsList;
于 2013-10-05T11:13:07.237 回答
0

像这样

INSERT INTO `persons`(`Name`, `Salaray`, `Profession`) values('raj', '10000','telecom'),('lokesh', '20000','marine'),('amar', '30000','30000')
于 2013-10-05T10:20:09.097 回答
0

这不是直接答案,因为您没有向我们展示任何代码。尝试这样的事情。

<?php
$name = "raj|lokesh|amar";
$salary = "10000|20000|30000";
$job = "telecom|marine|shipyard";

$name = explode("|",$name);
$salary=explode("|",$salary);
$job=explode("|",$job);

for($i=0;$i<count($name);$i++)
{
    $q = mysql_query("INSERT INTO `yourtable` VALUES ('$name[$i]','$salary[$i]','$job[$i]')");

}
于 2013-10-05T10:17:35.553 回答
0

尝试使用

$names = explode("|", $name);
$salaries = explode("|", $salary);
$professions = explode("|", $profession);

然后循环遍历数组($names、$salaries、$professions)以将值插入数据库中。 http://php.net/manual/fr/function.explode.php

于 2013-10-05T10:17:53.413 回答