2011-03-04 41 views
0

我试图在数据库中插入特定的值(小刀和毯子),但根本没有插入到DB /表中。另外,我想在下面的表格中显示插入的值,但这并不奏效。它依赖于插入它显示在桌子上。我确定,因为我通过phpmyAdmin插入了一个值,并将其显示在表格中。请,我需要修复插入方面。将特定值插入数据库并将其显示在表格上?

插入代码/错误处理

<?php 
if (isset($_POST['Collect'])) { 
if(($_POST['Object'])!= "knife" && ($_POST['Object'])!= "blanket") 
{ 
    echo "This isn't among the room objects."; 
}else { 
// this makes sure that all the uses that sign up have their own names 
$sql = "SELECT id FROM objects WHERE object='".mysql_real_escape_string($_POST['Object'])."'"; 
$query = mysql_query($sql) or die(mysql_error()); 
$m_count = mysql_num_rows($query); 

if($m_count >= "1"){ 
    echo 'This object has already been taken.!'; 
    } else{ 
    $sql="INSERT INTO objects (object) 
VALUES 
('$_POST[Object]')"; 

echo "".$_POST['object']." ADDED"; 
} 
} 
} 

?> 

表,还要加上额外的PHP代码

<p> 
<form method="post"> 
</form> 
Pick Object: <input name="Object" type="text" /> 
<input class="auto-style1" name="Collect" type="submit" value="Collect" /> 
</p> 

<table width="50%" border="2" cellspacing="1" cellpadding="0"> 
     <tr align="center"> 
     <td colspan="3">Player&#39;s Object</td> 
     </tr> 
     <tr align="center"> 
     <td>ID</td> 
     <td>Object</td> 
     </tr> 
     <? 
$result = mysql_query("SELECT * FROM objects") or die(mysql_error()); 
// keeps getting the next row until there are no more to get 
    while($row = mysql_fetch_array($result)) { 
// Print out the contents of each row into a table?> 
     <tr> 
     <td><label for="<?php echo $row['id']; ?>"><?php 
    $name2=$row['id']; 
    echo "$name2"; ?> 
    </label></td> 
     <td><? echo $row['object'] ?></td> 
     </tr> 
     <?php }// while loop ?> 
    </table> 

</body> 

回答

-1

您的SQL语法是错误的。您应该更改:

INSERT INTO objects SET id = '', object = '".$_POST['Object']."' 

INSERT INTO objects (id, object) VALUES ('', '".$_POST['Object']."' 

如果你希望你的插件,以同时更换,可能是那里使用REPLACE而不是插入任何价值。

+1

“SET field = value”语句工作得很好,实际上... – Tsadiq 2011-03-04 15:51:02

+0

谢谢。我修正了这一点,但它仍然不起作用。请检查错误处理如果问题来自 – Kelvin 2011-03-04 15:56:42

0
if(($_POST['Object'])!= knife || ($_POST['Object'])!= blanket) 

THES值刀和毯子是字符串。所以,你可能需要使用他们周围引号将其定义为串,或PHP不会理解;)

+0

非常感谢你 – Kelvin 2011-03-04 15:58:59

0

如果对象的主键是ID,并将其设置为自动递增

$sql = "INSERT INTO objects SET id = '', object = '".$_POST['Object']."'"; 

尝试

$sql= "INSERT INTO objects(object) VALUES ('".$_POST['Object'].")'; 

,你也许应该将逃跑中有太多

0

您插入查询,也不正确。 (',')。$ _ POST ['Object']。“')”;

和该代码

if(($_POST['Object'])!= "knife" || ($_POST['Object'])!= "blanket") 
{ 
    echo "This isn't among the room objects."; 
} 

就一定会执行对象的值是刀或毯,因为可变可以有一个值。您必须使用

if(($_POST['Object'])!= "knife" && ($_POST['Object'])!= "blanket") 
    { 
     echo "This isn't among the room objects."; 
    } 
+0

它仍然不起作用 – Kelvin 2011-03-04 16:03:26

+0

@Kelvin:更新。 – Gaurav 2011-03-04 16:12:27

相关问题