Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
$\u POST插入多对多错误的PHP语法?_Php_Mysql_Many To Many - Fatal编程技术网

$\u POST插入多对多错误的PHP语法?

$\u POST插入多对多错误的PHP语法?,php,mysql,many-to-many,Php,Mysql,Many To Many,编辑:忽略任何SQL注入或易受攻击的代码语句:D (学校项目)。 我希望在我的网页上创建一个插入表单,在这里我可以从表中选择一个艺术家,包括从表中选择一首歌曲,并将它们组合起来插入组合外键表 我已经成功地在我的网页上仅使用单个艺术家和歌曲下拉列表进行了选择和插入,但是希望将每个表中的两个ID组合起来,将它们组合到一个多对多的相对表中。但是当我按下提交按钮时,什么也没发生,我是一个初学者,不知道我是否错过了发布信息的任何重要环节 对于疑难解答我已经尝试了我的代码,并对其进行了测试。我知道如果我删除

编辑:忽略任何SQL注入或易受攻击的代码语句:D (学校项目)。

我希望在我的网页上创建一个插入表单,在这里我可以从表中选择一个艺术家,包括从表中选择一首歌曲,并将它们组合起来插入组合外键表

我已经成功地在我的网页上仅使用单个艺术家和歌曲下拉列表进行了选择和插入,但是希望将每个表中的两个ID组合起来,将它们组合到一个多对多的相对表中。但是当我按下提交按钮时,什么也没发生,我是一个初学者,不知道我是否错过了发布信息的任何重要环节

对于疑难解答我已经尝试了我的代码,并对其进行了测试。我知道如果我删除了代码,就不会有问题,因此问题仍然存在于我认为的语法上,正如第一个下拉菜单所示,与第二个下拉菜单和提交按钮一起出现,但问题在实际的处理和SQL查询部分,它永远不会进入数据库

问题:

正如你在下面看到的,我有一个文本歌曲名称,在左下角有一个下拉菜单,包括艺术家名称和一个提交按钮。但是我的问题仍然存在,因为从两个下拉列表中选择然后插入到组合表中不起作用,它实际上没有提交,我希望它发布到数据库中我能做什么。但有些事情是不可能的?我将感谢任何问题或帮助,这个社区是如此令人惊讶和美妙的运作

数据库 PHP

  <form method='POST'>
<?php

include('connect_mysql.php');
if(isset($_POST["mangetilmange"])) {
  $song_id = $_POST["song_id"];
  $artist_id = $_POST["artist_id"];


$sql ="INSERT INTO artist_has_song (song_id, artist_id) VALUES 
('$song_id', '$artist_id')";

if($conn->query($sql)) {
    echo "Completed";

} else {
    echo "Blablalbablablablablablablabl $sql
    ($conn->error.";
}
}
?>


将您的代码更改为:

 <form method='POST'>
 <?php

 include('connect_mysql.php');
 if(isset($_POST["mangetilmange"])) {
 $song_id = $_POST["song_id"];
 $artist_id = $_POST["artist_id"];


 $sql ="INSERT INTO artist_has_song (song_id, artist_id) VALUES 
 ('$song_id', '$artist_id')";

 if($conn->query($sql)) {
 echo "Completed";

 } else {
 echo "Blablalbablablablablablablabl"; 
 }
 }
 ?>

 Song Name
 <?php
 $sql = "SELECT * FROM song";
 $resultat = $conn->query($sql);

 echo "<select name='song_id'>";

 while ($rad = $resultat->fetch_assoc()) {
 $song_id = $rad["song_id"];
 $songname = $rad["songname"];

 echo "<option value='$song_id'>$songname</option>";
 }

 echo "</select>";
 ?>

 Artist Name

 <?php
 $sql = "SELECT * FROM artist";
 $resultat = $conn->query($sql);

 echo "<select name='artist_id'>";

 while ($rad = $resultat->fetch_assoc()) {
 $artist_id = $rad["artist_id"];
 $artistname = $rad["artistname"];

 echo "<option value='$artist_id'>$artistname</option>";
 }

 echo "</select>";
 ?>
 <input type="submit" name="mangetilmange" value ="Submit">
 </form>


将您的代码更改为:

 <form method='POST'>
 <?php

 include('connect_mysql.php');
 if(isset($_POST["mangetilmange"])) {
 $song_id = $_POST["song_id"];
 $artist_id = $_POST["artist_id"];


 $sql ="INSERT INTO artist_has_song (song_id, artist_id) VALUES 
 ('$song_id', '$artist_id')";

 if($conn->query($sql)) {
 echo "Completed";

 } else {
 echo "Blablalbablablablablablablabl"; 
 }
 }
 ?>

 Song Name
 <?php
 $sql = "SELECT * FROM song";
 $resultat = $conn->query($sql);

 echo "<select name='song_id'>";

 while ($rad = $resultat->fetch_assoc()) {
 $song_id = $rad["song_id"];
 $songname = $rad["songname"];

 echo "<option value='$song_id'>$songname</option>";
 }

 echo "</select>";
 ?>

 Artist Name

 <?php
 $sql = "SELECT * FROM artist";
 $resultat = $conn->query($sql);

 echo "<select name='artist_id'>";

 while ($rad = $resultat->fetch_assoc()) {
 $artist_id = $rad["artist_id"];
 $artistname = $rad["artistname"];

 echo "<option value='$artist_id'>$artistname</option>";
 }

 echo "</select>";
 ?>
 <input type="submit" name="mangetilmange" value ="Submit">
 </form>


sql注入警报!使用参数绑定@delboy1978uk这是一个学校项目,我是一个新手,所以我还没有经历过保护我的代码的部分:谢谢你的提醒!学校的项目在互联网上散布了更多的代码模式示例,众所周知,这些代码模式容易受到SQL注入的攻击。。。这不是我想加入的学校。你花了比修复SQL注入错误更多的时间告诉我们不要担心SQL注入错误。这是没有理由的。是一行代码,当有人因为一个撇号.sql注入警报而破坏了你的应用程序时,它将为你节省数小时甚至数小时的无意义调试!使用参数绑定@delboy1978uk这是一个学校项目,我是一个新手,所以我还没有经历过保护我的代码的部分:谢谢你的提醒!学校的项目在互联网上散布了更多的代码模式示例,众所周知,这些代码模式容易受到SQL注入的攻击。。。这不是我想加入的学校。你花了比修复SQL注入错误更多的时间告诉我们不要担心SQL注入错误。这是没有理由的。是一行代码,当有人因为一个撇号而破坏了你的应用程序时,它将为你节省数小时甚至数小时的无意义调试。非常感谢Sam!结果很好:)!欢迎Mads,你的问题在最后一行,还有一些其他语法错误非常感谢Sam!结果很好:)!欢迎Mads,您的问题出现在最后一行,还有一些其他语法错误
 <form method='POST'>
 <?php

 include('connect_mysql.php');
 if(isset($_POST["mangetilmange"])) {
 $song_id = $_POST["song_id"];
 $artist_id = $_POST["artist_id"];


 $sql ="INSERT INTO artist_has_song (song_id, artist_id) VALUES 
 ('$song_id', '$artist_id')";

 if($conn->query($sql)) {
 echo "Completed";

 } else {
 echo "Blablalbablablablablablablabl"; 
 }
 }
 ?>

 Song Name
 <?php
 $sql = "SELECT * FROM song";
 $resultat = $conn->query($sql);

 echo "<select name='song_id'>";

 while ($rad = $resultat->fetch_assoc()) {
 $song_id = $rad["song_id"];
 $songname = $rad["songname"];

 echo "<option value='$song_id'>$songname</option>";
 }

 echo "</select>";
 ?>

 Artist Name

 <?php
 $sql = "SELECT * FROM artist";
 $resultat = $conn->query($sql);

 echo "<select name='artist_id'>";

 while ($rad = $resultat->fetch_assoc()) {
 $artist_id = $rad["artist_id"];
 $artistname = $rad["artistname"];

 echo "<option value='$artist_id'>$artistname</option>";
 }

 echo "</select>";
 ?>
 <input type="submit" name="mangetilmange" value ="Submit">
 </form>