Вставить конкретные значения в БД и отобразить его в таблице? - PullRequest
0 голосов
/ 04 марта 2011

Я пытаюсь вставить определенные значения (нож и одеяло) в базу данных, но не вставляю в БД / таблицу вообще.Кроме того, я хочу отобразить вставленные значения в таблице ниже, и это тоже не работает.Это зависит от вставки для отображения на столе.Я уверен, потому что я вставил значение через 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";
}
} 
} 

?>

TABLE PLUS EXTRA PHP CODE

<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>

Ответы [ 4 ]

0 голосов
/ 04 марта 2011

Вы вставили неверный запрос.

$ sql = "INSERT INTO значения объектов (id, object) ('', '". $ _ 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 голосов
/ 04 марта 2011
if(($_POST['Object'])!= knife || ($_POST['Object'])!= blanket)

Эти нож и одеяло являются струнными. Поэтому вам может понадобиться использовать кавычки вокруг них, чтобы определить их как строку, иначе php не поймет;)

0 голосов
/ 04 марта 2011

Если первичным ключом Objects является id, и для него установлено автоматическое увеличение

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

попробуй

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

и вы, вероятно, тоже должны туда убежать

0 голосов
/ 04 марта 2011

Ваш синтаксис SQL неверен. Вы должны изменить:

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

до

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

Если вы хотите, чтобы ваши вставки также заменяли любое значение, которое может быть там, используйте REPLACE, а не INSERT.

...