Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.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
将文本值从下拉列表传输到相应的数据库ID中-sql插入和php_Php_Html_Mysql_Sql - Fatal编程技术网

将文本值从下拉列表传输到相应的数据库ID中-sql插入和php

将文本值从下拉列表传输到相应的数据库ID中-sql插入和php,php,html,mysql,sql,Php,Html,Mysql,Sql,我无法将下拉列表值:Artist,text转换为其各自的ID Artist_ID,num并将其插入事件表。场地ID也有同样的问题 <?php $artist = 'SELECT Artist_ID FROM artist WHERE :Artist = Artist_Name '; $venue =

我无法将下拉列表值:Artist,text转换为其各自的ID Artist_ID,num并将其插入事件表。场地ID也有同样的问题

<?php
        $artist = 
                'SELECT Artist_ID
                 FROM artist
                 WHERE :Artist = Artist_Name
                ';
        $venue = 
                'SELECT Venue_ID
                 FROM venue
                 WHERE :Venue = Venue_Name
                ';
        $stmt = $pdo->prepare(
               'INSERT INTO event(Event_Date, Artist_ID, Venue_ID, Price)
                VALUES (:Event_Date, $artist, $venue, :Price)');

        $stmt->bindparam('Artist_ID', $_POST[$artist], PDO::PARAM_STR); 
        $stmt->bindparam('Venue_ID', $_POST[$venue], PDO::PARAM_STR);
        $stmt->bindparam('Date', $_POST[':Date'], PDO::PARAM_STR);
        $stmt->bindparam('Price', $_POST[':Price'], PDO::PARAM_STR);
        $stmt->execute();
        $newId = $pdo->lastInsertId();
        exit;
?>
这是下拉列表的代码:

<select name='Artist' id=':Artist'>
<?php
     $stmt = $mysqli->prepare(
      'SELECT Artist_Name 
       FROM artist 
       ORDER BY Artist_Name');
       $stmt->execute();
       $stmt->bind_result($Artist);
       $stmt->store_result();
       while($stmt->fetch())
           echo("<option> {$Artist} </option>");
?>
</select>
艺术家表和场馆表具有文本值,这些文本值分配有主键ID,主键ID存储在带有艺术家日期和价格的活动表中


任何帮助都将不胜感激,谢谢。

尝试此操作,同时选择艺术家id,并将其作为如下值在下拉列表中传递:

<select name='Artist' id=':Artist'>
<?php
     $stmt = $mysqli->prepare(
      'SELECT Artist_Name, Artist_ID
       FROM artist 
       ORDER BY Artist_Name');
       $stmt->execute();
       $stmt->bind_result($Artist, $ID);
       $stmt->store_result();
       while($stmt->fetch())
           echo("<option value=\"$ID\"> {$Artist} </option>");
?>
</select>
我认为您还需要更新代码中的POST元素,但我不确定您在第一部分中使用的:Artist类型变量是什么。如果您像我在这里做的那样使用id作为值,那么发布的值将是他们选择的名称的id,您不需要查询它

<?php
    $artist = $_POST['Artist'];
    $venue = $_POST['venue'];

    $stmt = $pdo->prepare(
           'INSERT INTO event(Event_Date, Artist_ID, Venue_ID, Price)
            VALUES (:Event_Date, :Artist, :Venue, :Price)');

    $stmt->bindparam(':Artist', $artist, PDO::PARAM_STR); 
    $stmt->bindparam(':Venue', $venue, PDO::PARAM_STR);
    $stmt->bindparam(':Event_Date', $_POST['Date'], PDO::PARAM_STR);
    $stmt->bindparam(':Price', $_POST['Price'], PDO::PARAM_STR);
    $stmt->execute();
    $newId = $pdo->lastInsertId();
    exit;

?>

你能澄清哪里出了问题吗?您遇到了什么问题?使用选项标记的值属性:foobar。这似乎可行,谢谢,但现在将空数据发布到表中:/n有什么想法吗?您好,我刚刚更新了我的答案,以包括插入代码的更正-如果您的表单发布了“地点”、“日期”,根据显示的代码,除了“艺术家”之外,还有“价格”,这应该有效。当前的表单ID为:艺术家或:场地等,然后在添加代码后,我得到一个无效参数编号的异常。在添加了修改后的代码后,它还声明了艺术家和场地的一个未知索引。您是否尝试从您的post vars中去掉冒号?你有两个选择:1至少试着了解发生了什么事情,自己取得一些进展。或者,如果你希望其他人帮你写,那么就把你所有的代码都写出来如果我把冒号拿出来,它会写空数据,设法让它工作张贴id只需要让用户选择文本,例如Lady Gaga而不是艺术家id,例如3,并且仍然只张贴艺术家id我正在尝试理解它,它只是向我扔新的问题,我没有经验与php,所以不知道如何解决