Php 我有一个逻辑错误,$album\u id始终是albums\u表中的最后一个值

Php 我有一个逻辑错误,$album\u id始终是albums\u表中的最后一个值,php,prepared-statement,html-select,Php,Prepared Statement,Html Select,Select语句 <?php $q = $db->prepare( 'SELECT album_id, album_name FROM table_albums ORDER BY album_name' ); $q->bindParam( ':album_id', $album_id ); $q->bindParam( ':album_name', $album_name ); $q->execute(); 添加域 曲目名称

Select语句

<?php
$q = $db->prepare( 'SELECT album_id, album_name 
                FROM table_albums ORDER BY album_name' );
$q->bindParam( ':album_id',   $album_id );
$q->bindParam( ':album_name', $album_name );
$q->execute();

添加域
曲目名称:

在您指向的行上,您确实在那里分配了
$album\u id
,但不在循环中使用它。因此,当然,循环将完成,最后一个赋值将反映最后一条记录


如果需要对其执行其他操作,则需要将其放置在数组中,或者在手头有数据的情况下进行处理。

在指向的行上,可以在那里分配
$album\u id
,但不要在循环中使用它。因此,当然,循环将完成,最后一个赋值将反映最后一条记录


如果需要对其执行其他操作,则需要将其放置在数组中,或者在手头有数据的情况下进行处理。

对于问题所在,您是正确的

<?php echo $row->album_name; $album_id = $row->album_id;?>
将正确的变量绑定到
:album\u id

$stmt->bindParam( ':album_id', $_POST['$album_id']);

问题出在哪里,你是对的

<?php echo $row->album_name; $album_id = $row->album_id;?>
将正确的变量绑定到
:album\u id

$stmt->bindParam( ':album_id', $_POST['$album_id']);

您还需要在此处进行更改,添加
echo

<input type="text" name="tracks_name" value="<?php echo $tracks_name; ?>"><br>

您也需要在此处更改,添加
echo

<input type="text" name="tracks_name" value="<?php echo $tracks_name; ?>"><br>

曲目名称:

曲目名称:

$\u POST只有一个元素it it.array(size=1)'tracks_name'=>string'vvvv'(length=3)@dgs,因为您需要将
更改为@Rishi回答的
。$\u POST只有一个元素it.array(size=1)'tracks_name'=>string'vvvv'(length=3)@dgs,因为您需要将您的
更改为@Rishi回答的
$stmt->bindParam( ':album_id', $_POST['$album_id']);
<input type="text" name="tracks_name" value="<?php echo $tracks_name; ?>"><br>
  <select  name="album_id" id="album_id">
  <option value="">Select</option>
<form method="post">
   Tracks Name:<br>
   <input type="text" name="tracks_name" value="<?php $tracks_name ?>"><br>
   <select  name="album_id" id="album_id">
      <option value"" >Select</option>
      <?php while ( $row = $q->fetch() ) { ?>
         <option value="<?php echo $row->album_id;?>">
            <?php echo $row->album_name; $album_id = $row->album_id;?>
         </option>
      <?php } ?>

   </select>
   <input type="submit" value="Submit now"/>
</form>


<?php include '../includes/logout.php';
// Only process the form if $_POST isn't empty
if ( ! empty( $_POST ) ) {
   var_dump( $_POST ) ;
   $stmt = $db->prepare( "INSERT INTO table_tracks ( tracks_name,  tracks_id,         album_id ) 
                      VALUE                    (:tracks_name, :tracks_id,   :album_id)" );
   $stmt->bindParam( ':tracks_id',   $tracks_id );
   $stmt->bindParam( ':tracks_name', $tracks_name );
   $stmt->bindParam( ':album_id',    $album_id );

   // insert one row
   $album_id = $_POST["album_id"];
   $tracks_name = $_POST["tracks_name"];
   $stmt->execute();
}
?>