2017-12-05 16 views
0

ユーザーがデータベースシステムに注文を挿入するためのドロップダウンメニューを作成しようとしています。PHPはドロップダウンメニューを作成し、データベースに挿入します

私はドロップダウンメニューの作成に問題がありますが、私は何をすべきかという一般的な考えを得ています。私はこれに新しいので、私と一緒にしてください。 enter image description here

<?php 

$databaseName = 'pizza_db'; 
$databaseUser = 'root'; 
$databasePassword = 'root'; 
$databaseHost = '127.0.0.1'; 
$conn = new mysqli($databaseHost, $databaseUser, $databasePassword, $databaseName); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
echo "Connected sucessfully"; 
if(isset($_POST['submit'})){ 

$sql = "SELECT size FROM size"; 
$result = mysqli_query($sql); 
$opt = "<select name='size'>"; 
while($row = mysqli_fetch_assoc($result)) { 
    $opt .= "option value='{$row['size']}' >{$row['size']}></option>"; 
} 

$opt .="</select>"; 

if ($conn->query($sql)){ 
    $msg = "Data inserted successfully"; 
} else{ 
    $msg = "Error: " . $sql . "<br>" . $conn->error; 
} 
$conn->close(); 
} 
?> 


<!DOCTYPE html> 
<html> 
<head> 
    <title>Pizza</title> 
</head> 
<body> 
<form action="size.php" method="POST"> 
    <select name="size"> 

    </select> 
    <button type ="submit" name="submit"> Submit</button 
</form> 
</body> 
</html> 

は、私は私のhtmlコードが間違っているか不完全である知っている:それは場合に役立ちます は、ここに私のUMLです。複数のドロップダウンメニューが作成されるようにするにはどうすればいいですか?データベースにデータを送信するために、1つのスクリプトで複数の$ sql挿入ステートメントを使用するにはどうすればよいですか?どんな助けもありがとう。

答えて

0
  1. あなたはいくつかのタイプミスがあります。 13行目のif(isset($_POST['submit'})){if(isset($_POST['submit'])){である必要があります。 ループ中のオプションで、$opt .= "<option value='{$row['size']}' >{$row['size']}></option>";(「<」がありません)

  2. また、いくつかの冗長コードがあります。 mysqli_query()$conn->query()は同じです(see this SO tread)。単純にOOP対手続き構文。

あなたはその後

if ($conn->query($sql)){ 
    $msg = "Data inserted successfully"; 
} 
else{ 
    $msg = "Error: " . $sql . "<br>" . $conn->error; 
} 

を削除することができ、このようなものは、私がここで理解して、あなたが提出するすべて取得され、空のフォームを持っている、

<?php 

$databaseName = 'pizza_db'; 
$databaseUser = 'root'; 
$databasePassword = 'root'; 
$databaseHost = '127.0.0.1'; 
$conn = new mysqli($databaseHost, $databaseUser, $databasePassword, $databaseName); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
echo "Connected sucessfully"; 
if(isset($_POST['submit'])){ 

    $sql = "SELECT size FROM size"; 
    $result = mysqli_query($sql); 
    $opt = "<select name='size'>"; 
    while($row = mysqli_fetch_assoc($result)) { 
     $opt .= "<option value='{$row['size']}' >{$row['size']}></option>"; 
    } 

    $opt .="</select>"; 
    $conn->close(); 
} 
?> 

しかし十分なはずですサイズ。あなたはPHPはサイズを得るようにそれを持っていると思った場合は>フォームを生成>あなたはそれが好きかこれに似て行う必要がありますフォームを送信し、次のステップにリダイレクト(とPHPの一部からの場合$_POST['submit']条件を削除)

<!DOCTYPE html> 
<html> 
<head> 
    <title>Pizza</title> 
</head> 
<body> 
<form action="submit-chosen-size.php" method="POST"> 
    <label for="size">Select your size:</label> 
    <?php echo($obj); ?> 
    <button type ="submit" name="submit"> Submit</button 
</form> 
</body> 
</html> 

編集:このコードで試してください。これを上記のコードすることは非常に似ていますが、

<?php 
$databaseName = 'pizza_db'; 
$databaseUser = 'root'; 
$databasePassword = 'root'; 
$databaseHost = '127.0.0.1'; 
$conn = new mysqli($databaseHost, $databaseUser, $databasePassword, $databaseName); 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 
echo "Connected sucessfully"; 

$sql = "SELECT size FROM size"; 
$result = mysqli_query($sql); 
$opt = "<select name='size'>"; 
while($row = mysqli_fetch_assoc($result)) { 
    $opt .= "<option value='{$row['size']}' >{$row['size']}></option>"; 
    echo $row['size']; // you can remove this later 
} 
$opt .="</select>"; 
echo $obj; //you can remove this later 
$conn->close(); 
?> 

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Pizza</title> 
    </head> 
    <body> 
     <form action="submit-chosen-size.php" method="POST"> 
      <label for="size">Select your size:</label> 
      <?php echo(isset($obj) ? $obj : "Empty"); ?> 
      <button type ="submit" name="submit"> Submit</button 
     </form> 
    </body> 
</html> 
+0

は私が取得しようとしていますドロップダウンメニューは、小、中のようなピザのサイズを言うだろう、私はそれがほとんど行われている、ことをしようとしました、ありがとうござい問題を見つけることに役立ちますあなたがピザをオンラインで注文しているかのように大きく、私はコードを使ってデータベースから引き出すことができません。 –

+0

したがって、phpとhtmlの両方の部分を含むファイルにアクセスしていますか?どのようなエラーがありますか?選択を空にするか、何か他に? –

+0

私のデータベースからこのテーブルhttps://imgur.com/9OcROqyにアクセスしようとしていて、これをhttps://imgur.com/CfzY3csのようなドロップダウンメニューに変えようとすると、あなたが私のために修正したコードはこのhttps: /imgur/py1ZcVBそこにあると私は報告しているエラーがあるとは思わない、私はちょうどそれが意味をなさないなら私のデータベースからサイズテーブルとドロップダウンメニューにそれを必要とする? –