首页 > 解决方案 > 以表格形式显示取自 ENUM 的当前值

问题描述

我在mysql数据库中有一个“ENUM”类型的字段,该字段称为“career_status”,这些值被存储,Active,Retired,Dead

我创建了一个用于更新的表单,我想要并在表单中显示当前值。示例:如果现在它存储在表单中显示 Active,如果没有任何内容为空等..如何从字段中获取这些值?这是代码

<?php

require_once("connetti.php");

$actor_id = $_GET["id"];

$query = mysql_query("SELECT * FROM actor  WHERE actor_id=" .  (int)$actor_id) or die ("Error in query: " . mysql_error()); 
$row = mysql_fetch_array ($query);

$nome=$row['nome'];
$performer_aka=$row['performer_aka'];
$website=$row['website'];
$career_status=$row['career_status'];
$birthday=$row['birthday'];
$died=$row['died'];
$status=$row['status'];



?>

<div id="BioData" style="overflow: hidden;">

<center><h1><?php echo $nome;?> <span class="infoblock-pagetype">modifica dati</span></h1></center>

<form action="<?php echo $_SERVER['PHP_SELF'] . '?id=' . $actor_id; ?>" method="post">

<tr>
<td class="paramname">
<b>Career Status: </b> (<b><font color="red">selezionare il valore</font></b>)
</td>
<td class="paramvalue"> 
<select name="career_status" id="career_status"><?php echo $career_status;?>
<option value="1">Active</option>
<option value="2">Retired</option>
<option value="3">Dead</option>
<option value="0">      </option>
</select>
</td>
</tr>

<?php


if (isset($_POST['modifica']))
{
 //include "connetti.php";
	//$query = mysql_select_db("xxx", $db);
	if ($query)
		{

	$nome=$_POST['nome'];
	$performer_aka=$_POST['performer_aka'];
	$website=$_POST['website'];
	$career_status=$_POST['career_status'];
	$birthday=$_POST['birthday'];
	$died=$_POST['died'];
	$status=$_POST['status'];
	
    $query=mysql_query("UPDATE actor SET 
	nome='".$_POST['nome']."', 
	performer_aka='".$_POST['performer_aka']."',
	website='".$_POST['website']."',
	career_status='".$_POST['career_status']."',
	birthday='".$_POST['birthday']."',
	died='".$_POST['died']."',
	status='".$_POST['status']."'
	WHERE actor_id=". $actor_id);



			if($query) echo "<h2>Congratulazioni! Dati inseriti.</h2>";
				else echo "<h2>Attenzione! Dati non inseriti!</h2>";
			
	} else echo "<h2>Errore! Database non selezionato.</h2>";
	
	
}

?>

标签: phpenums

解决方案


如果我理解正确,您希望指出career_status当前为记录选择了哪个选项,那么以下内容可能会有所帮助

<select name='career_status'>           
    <?php
        /* possible options for career status */
        $status=array(
            0=>'',
            1=>'Active',
            2=>'Retired',
            3=>'Dead'
        );

        for( $i=0; $i < count( $status ); $i++ ){
            /* is this item selected? */
            $selected = $i==$career_status ? ' selected' : '';
            printf('
                <option value="%d"%s>%s', 
                $i, 
                $selected, 
                $status[ $i ]
            );
        }

    ?>
</select>

推荐阅读