0

私は、3列のmysqlテーブル「persons」を持っています。

Name   Salary  Profession

php getメソッドを使用して、値を含む3つのパラメーターを送信しています。

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

それらを「persons」テーブルに挿入する必要があります。

Name     Salaray  Profession

raj      10000     telecom
lokesh   20000     marine
amar     30000     shipyard

どうすればこれを行うことができますか?

4

5 に答える 5

2

分解関数を使用して、文字列を配列に変換できます。私の小さなデモンストレーションを使用して、これをあなたのケースで確実に使用できます。

$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 に答える