0

(php を使用して別の Web サイトから取得した) テーブルを取得しましたが、(テーブルを印刷するだけでなく) そのコンテンツをデータベースにインポートしたいと考えています。

これは、次のコードを使用した表からの出力 ( http://i.stack.imgur.com/NnbAo.png ) です。

<?php
$uitvoer = getTable();
echo "<table">;
foreach ($uitvoer as $row) {
    echo "<tr>";
    foreach ($row as $col) {
        echo "<td>" . $col . "</td>";
    }
echo "</tr>";
}
echo"</table>";
?>

そして、これを試しても、データベースには何も起こりません:

<?php
$con = mysqli_connect("mysql1.000webhost.com","a2902119_lowavol","pswd")
$uitvoer = getTable();
foreach ($uitvoer as $row) {
    foreach ($row as $col) {
        $query += "'" . $col . "', ";
    }
$sql="INSERT INTO test (cel1, cel2, cel3, cel4, cel5, cel6, cel7, cel8, cel9) VALUES ($query)";
mysqli_query($con, $sql);
}
?>

PHPについての知識はほとんどありません。私を助けてくれてありがとう!

4

4 に答える 4

1

クエリは次のようになります。

INSERT INTO test (....) VALUES (val, val, val, )

これは明らかに構文エラーです...代わりにフィールドを配列に追加してみてください:

foreach ($uitvoer as $row) {
    $fields = array();
    foreach ($row as $col) {
        $fields[] = $col; // TODO: add escaping!
    }
// now you can build the values list with implode
$values = implode(', ', $fields);
$sql="INSERT INTO test (...) VALUES ($values)";

詳細については、ドキュメントimplode()を参照してください。

于 2013-09-19T08:34:10.123 に答える
1

PHP の連結演算子は (.) であり、(+) ではありません。

  <?php
    $con = mysqli_connect("mysql1.000webhost.com","a2902119_lowavol","pswd")
    $uitvoer = getTable();
    foreach ($uitvoer as $row) {
       $query = array();
       $insert = "";
       $insert_values = "";
       foreach ($row as $col) {
           $query[] = $col;
       }
       $insert_values = implode("','", $query) ;
       $insert = "'".$insert_values."'";
       $sql = "INSERT INTO test (cel1, cel2, cel3, cel4, cel5, cel6, cel7, cel8, cel9) VALUES ($insert)";
       mysqli_query($con, $sql);
  }
?>
于 2013-09-19T08:48:15.920 に答える