2012-10-20 29 views
3

我是新来的,我试图写一个脚本,它将查询数据库并返回所有用户名在下拉列表中,然后复制出所选的名称和那么当你注册一只狗给它们时,它会把名字复制到DB中, 所以业主可以有很多狗,但狗只能有一个拥有者... 我可以输入名字和品种,但不能从下拉列表中得到结果, 我确实尝试让java脚本将下拉选定的项目放到'owner into ...'脚本中的$ ownername所在的位置无法从下拉列表中选择一个结果

如果你能帮助我,你能给我一个消息吗与此我将链接你的文件下载

mysql_query("INSERT INTO `dog`(`id`, `dogname`, `breed`, `owner`) 
VALUES ('', '$reg_dogname', '$breed', '$row');") or die (mysql_error()); 
    $userid = mysql_insert_id(); 

}} 


$sql = mysql_query('SELECT `username` FROM `users`'); 
$ownername = array(); 
while ($row = mysql_fetch_array($sql)){ 
    $ownername[] = $row; 

<select id="dropdown" name="dropdown" onchange="selectDropdown()"> 
    <?php 
    foreach ($ownername as $ownername1) { 
    ?> 
    <option value="<?php echo $ownername1['username']?>"> 
    <?php echo $ownername1['username']?> 
    </option> 
    <?php 
    } 
    ?> 
    </select> 
+0

请在这里发表有问题的代码。我们通常不喜欢去外部网站查看,特别是不太可能下载需要解压缩并在本地阅读的档案。 –

+0

你可以请你分享一下'selectDropdown()'代码吗? –

+1

这有什么特别的一部分,你有麻烦吗? –

回答

0

这将是很难给你一个问题的具体答案,直到您发布的代码,但我认为这将起到很好的为您提供:业主

- 创建关系表,品种和狗:

Table: owners 
Fields: 
id_key: integer, auto number, primary key - table index 
owner: varchar, 16 character, unique index - account records (unique prevents duplicate account records) 
password: varchar, 32 character (assuming you are using md5 encryption, you will always get a 32 character result. Additional security concerns are beyond the scope of this question) 
any other account related fields (but not dogs, give them their own table) 

Table: breeds 
Fields: 
id_key: integer, auto number, primary key - table index 
breed: varchar, 16 character, unique - available dog breeds 

Table: dogs 
Fields: 
id_key: integer, auto number, primary key - table index 
dog: varchar, 16 character, index - dog owned by account 
breed: varchar, 32 character, index, foreign key= breeds.breed on delete=restrict on update=cascade (prevents duplicate breed entries during data entry) 
owner: varchar, 16 character, index, foreign key= owners.owner on delete=cascade on update=cascade (this constricts the dog owner to existing accounts) 

然后做一个形式是这样的:

<?php 
$formdata=array(
    owners => array(), 
    breeds => array() 
); 
require_once 'dbconnection.php'; 
echo '<form id="dog_input" name="dog_input" method="post">'; 
$result=mysql_query("SELECT `owner` FROM owners;"); 
while ($row = mysql_fetch_row($result)) { 
    array_push($formdata[owners], $row[0]); 
} 
$result=mysql_query("SELECT `breed` FROM breeds;"); 
while ($row = mysql_fetch_row($result)) { 
    array_push($formdata[breeds], $row[0]); 
} 
?> 
<FORM name="dog_input" method="post" action="dog_data.php"> 
    <ul> 
     <li> 
      <label for="owner">Dog Owner</label> 
      <SELECT name="owner" id="owner"> 
      <?php 
       foreach ($formdata[owners] as $i) { 
        echo '<OPTION>'.$i.'</OPTION>'; 
       > 
      ?> 
      </SELECT> 
     </li> 
     <li> 
      <label for="breed">Dog Breed</label> 
      <SELECT name="breed" id="breed"> 
      <?php 
       foreach ($formdata[breeds] as $i) { 
        echo '<OPTION>'.$i.'</OPTION>'; 
       > 
      ?> 
      </SELECT> 
     </li> 
     <li> 
      <label for="dog">Dog Name</label> 
      <INPUT type="text" name="dog" /> 
     </li> 
     <li><INPUT type="submit" value="Submit /></li> 
    </ul> 
</FORM> 

然后,你需要创建验证脚本,将检查你的结果,并输入安全的数据到数据库:

<?php 
    /* 
    * dog_data.php - checks data and inserts it into the database. 
    */ 
    require_once 'dbconnection.php'; 
    $owner = $_POST['owner']; 
    $breed = $_POST['breed']; 
    $dog = mysql_real_escape_string($_POST['owner']); 
    //perform any additional data validation here, use an if statement to check validation before insert query if you do so 
    mysql_query("INSERT INTO `dogs` (`id_key`, `owner`, `breed`, `dog`) 
       VALUES(DEFAULT, '".$owner."', '".$breed."', '".$dog."');"); 
    mysql_close($con); 
    header(" Location: http://www.example-redirection-page.com"); 
?> 
+0

我打破了我的例子,请给我一秒修复它。 – mopsyd

+0

现在应该被修复。 – mopsyd

相关问题