2017-05-02 8 views
1

実際に私はユーザーが提案してそのテーブルにデータを挿入する名前でテーブルを作成しようとしています。私は2つのphpファイルましフォームデータを別のページとデータベースの両方に渡すにはどうすればよいですか?

:ここCreateTable.phpEnterData.php

CreateTable.phpの私のコードです:ここでは

<?php 

    $conn = new mysqli("localhost","root","","mywebsite"); 

    if (isset($_POST['tbButton'])) { 
     $qry = "Create Table ".$_POST['tableName']."(firstname varchar(25),lastname varchar(25));"; 
     $res = mysqli_query($conn,$qry); 
     if ($res) { 
      echo "Table Created!"; 
     } 
     else{ 
      die("query failed!"); 
     } 
    } 

?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>Create Table</title> 
</head> 
<body> 
    <form action="EnterData.php" method="post"> 
     <p><input type="text" name="tableName" placeholder="Enter Table Name..."></p> 
     <p><input type="submit" name="tbButton"></p> 
    </form> 
</body> 
</html> 

の私のコードですEnterData.php

<?php 
    $tbname = $_POST['tableName']; 
    $conn = new mysqli("localhost","root","","mywebsite"); 

    if (isset($_POST['dataButton'])) { 

     $qry = "Insert into ".$tbname."(firstname,lastname) values('".$_POST['firstname']."','".$_POST['lastname']."');"; 
     $res = mysqli_query($conn,$qry); 
     if ($res) { 
      echo "Data Inserted!"; 
     } 
     else{ 
      die("query failed!"); 
     } 
    } 

?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>Create Table</title> 
</head> 
<body> 
    <form action="" method="post"> 
     <p><input type="text" name="firstname" placeholder="Enter First Name..."></p> 
     <p><input type="text" name="lastname" placeholder="Enter Last Name..."></p> 
     <p><input type="submit" name="dataButton"></p> 
    </form> 
</body> 
</html> 

問題は、私はaction="EnterData.php"表を作成するときに、データベースに作成しますが、フォームの値が'EnterData'ファイルに渡さないということです。 と書いたときにaction="CreateTable.php"テーブルが作成されましたが、値は 'EnterData''には渡されません。 EnterDataファイルとデータベースにも値を渡したいと思います。


stackoverflowの上のこの私の最初の試みは、なぜあなたは、ユーザーが最初の場所でデータベース内のテーブルを作成してみましょうだろう、私は非常にうまく

+0

理由をユーザ定義のテーブル名を必要ですか?目的は何ですか? 。そのユーザーがテーブルの束を作成することを迷惑メールできるように気をつけてください。 – JYoThI

+0

私の親愛なる友人! 私は知っている、プロのコーディングユーザーでこの種のアクセス権を持ってはいけません。 私はちょうどバックエンドの開発を練習しています。**私はデータベースと別のページにフォームの値を同時に渡すことができます** もしそうなら、どうすればいいですか? –

答えて

0

GETメソッドを通して、あなたのテーブル名を渡すことができ

CreateTable.php

<?php 

$conn = new mysqli("localhost","root","","mywebsite"); 
$tableName = $_POST['tableName']; 

if (isset($_POST['tbButton'])) { 
    $qry = "Create Table ".$tableName ."(firstname varchar(25),lastname varchar(25));"; 
    $res = mysqli_query($conn,$qry); 
    if ($res) { 
     header("Location: EnterData.php?tableName=".$tableName); 
    } 
    else{ 
     die("query failed!"); 
    } 
} 

?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>Create Table</title> 
</head> 
<body> 
    <form action="CreateTable.php" method="post"> 
    <p><input type="text" name="tableName" placeholder="Enter Table Name..."></p> 
    <p><input type="submit" name="tbButton"></p> 
    </form> 
</body> 
</html> 

EnterData.php

<?php 
    $tbname = $_GET['tableName']; 
    $conn = new mysqli("localhost","root","","mywebsite"); 

    if (isset($_POST['dataButton'])) { 

    $qry = "Insert into ".$tbname."(firstname,lastname) values('".$_POST['firstname']."','".$_POST['lastname']."');"; 
    $res = mysqli_query($conn,$qry); 
    if ($res) { 
     echo "Data Inserted!"; 
    } 
    else{ 
     die("query failed!"); 
    } 
    } 

?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>Create Table</title> 
</head> 
<body> 
    <form action="EnterData.php?tableName=<?php echo $tbname;?>" method="post"> 
    <p><input type="text" name="firstname" placeholder="Enter First Name..."></p> 
    <p><input type="text" name="lastname" placeholder="Enter Last Name..."></p> 
    <p><input type="submit" name="dataButton"></p> 
    </form> 
    </body> 
</html> 
+0

おかげで兄弟! それは私のために働いた。 解決策を得るときはいつも気分がいいです。 –

0

私の質問を説明願っています(root権限付き!)?

あなたの質問は...両方のPHPファイルがEnterData.phpに提出されます(つまり、EnterData.phpのblank action attributeがブラウザによって正しく解釈される場合)、あなたのCreateTable.phpには$_POST['tableName']が何であるか分かりません。

私はそれが何をしようとしているのかわかりませんが、phpファイルは魔法のように互いの変数を知ることはありません - 実際にはincludeのファイルに変数セットを共有する必要があります変数を$_REQUESTに渡すか、AJAXを使用して処理します。

GETPOSTwhenever possibleに大文字を使用することを個人的にお勧めします。

+0

あなたは私の質問に答えようとしてくれて嬉しいです。 例を挙げようとすれば私にとっては有益でしょう。 –

+0

私はちょうどそれがデータベースと別のページの両方に同時にフォーム値を渡すことができるのか不思議ですね?? –

+0

@ManzarGulzar、はい、できます。あなたにとって最も簡単な方法はおそらく...あなたがA.phpとB.phpを持っているとしましょう。 A.phpには 'action =" B.php "'という形式のものがあり、B.phpにはデータベースの挿入文があります。 $ _REQUEST ['name']構文を使って、B.php内のA.phpのフォームから値にアクセスできます。ここで、 "name"はA.phpのフォームからの入力の名前属性です。正直言って、私はあなたが何を問題にしているのかよく分かりません。 – Pyromonk

関連する問題