无法让PHP将信息发布到数据库

时间:2013-03-23 02:27:25

标签: php mysql

我写了一个脚本将信息发布到我的数据库中,因为我无法发布信息并需要帮助指出我缺少的信息。

我的php帖子看起来像这样:

$query = "SELECT * from departments";
$res = mysql_query($query);
echo '<div id="department" >';
echo '<form action="depedit.php" method="post">';
echo '<input type="text" placeholder="Search departments">';
echo '<br>';
echo '</form>';
echo '</div>';
echo '<div id="depadd">'; 
echo '<form>';
echo '<table width="0" border="0">';
echo '<tr>';
echo '<td>Name:</td>';
echo '</tr>';
echo '<tr>';
echo '<td>';
echo "<select name='depid'>";
while ($row = mysql_fetch_array($res)) {
    echo "<option value='".$row['id']."'>".$row['depname']."</option>";
}
echo "</select>";
echo '</td>';
echo '  </tr>';
echo '<tr>';
echo '<td>&nbsp;</td>';
echo '</tr>';
echo '  <tr>';
echo '<td><label class="limit">Select Limit for active courses in Learning Locker:</label></td>';
echo '  </tr>';
echo '  <tr>';
echo '<td>';
echo "<select name='courselimit'>";
echo "<option value='1'>1</option>";
echo "<option value='2'>2</option>";
echo "<option value='3'>3</option>";
echo "<option value='4'>4</option>";
echo "<option value='5'>5</option>";
echo "<option value='0'>Unlimited</option>";
echo "</select>";
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td>&nbsp;</td>';
echo '</tr>';
echo '<tr>';
echo '<td><input type="radio" id="1" name="senabled" value="1"/><label for="c1" class="required">Required<br>(Study Shredder Feature Enabled)</br></label></td>';
echo '<td><input type="radio" id="0" name="senabled" value="0"/><label for="c1" class="optional">Optional</label></td>';
echo '</tr>';
echo '<tr>';
echo '<td><input type="hidden" name="orgid" value="'.$adminorgid.'"></td>';
echo '</tr>';
echo '<tr>';
echo '<td><input type="hidden" name="createdby" value="'.$userid.'"></td>';
echo '</tr>';  
echo '<tr>';
echo '<td><input type="hidden" name="timecreated" value="'.time(now).'"></td>';
echo '</tr>';
echo '<tr>';
echo '<td>&nbsp;</td>';
echo '</tr>';
echo '  <tr>';
echo '    <td><button type="submit" class="btn">Submit</button></td>';
echo '  </tr>';
echo '</table>';
echo "</form>";
echo '</div>';

depedit.php看起来像这样:

 $adddep = "INSERT INTO organization_dep (orgid,depid,courselimit,senabled,createdby,timecreated) VALUES ('".$_POST["orgid"].",".$_POST["depid"].",".$_POST["courselimit"].",".$_POST["senabled"].",".$_POST["createdby"].",".$_POST["timecreated"]."')";
    $res = mysql_query($adddep);

    if ($res === TRUE) {
        echo "Department added successfully";
    } else{
        printf("Could not create department");
    }

正确的信息似乎正在传递,因为网址会在其中显示以下信息:

/index.php?depid=6&courselimit=3&senabled=1&orgid=9&createdby=1129&timecreated=1364005206

任何对此的帮助都会非常感激,因为我确信这些东西很简单,我只是在看。

3 个答案:

答案 0 :(得分:1)

您想从$ _POST

中获取值
('".$_POST["orgid"].",".$_POST["depid"].",".$_POST["courselimit"].",".$_POST["senabled"].",".$_POST["createdby"].",".$_POST["timecreated"]."')";

但是你说它是通过URL传递的,这看起来你需要使用$ _GET来获取值

---还有一个小提示你可以使用echo来打印多条线路。只要你关闭它,最后

e.g

echo " <html>
<body>
</body>
</html>
";

答案 1 :(得分:0)

我认为在这个工作开始之前,你有很多事情要做好:

  1. 只有第一个表单(似乎是搜索部门)具有方法和操作属性
  2. 由于第二个表单没有action属性,因此它不会提交给depedit.php,而是提交给具有该表单的同一页面。
  3. 由于第二个表单没有方法属性,因此默认为GET,并且您正在尝试在PHP中读取POST变量。如果它没有使用GET,您将不会在结果URL中看到这些参数。
  4. 在SQL插入语句中,每个文本值必须包含单引号,但在int值周围。现在你在第一个值之前有一个单引号,在最后一个之前有一个没有意义。

答案 2 :(得分:0)

首先:此部分不会被发布为“depedit.php”,因为没有提交

echo '<form action="depedit.php" method="post">'; echo '<input type="text" placeholder="Search departments">'; echo '<br>'; echo '</form>';

第二:这永远不会被发布到depedit.php,因为你的<form>没有指定“depedit.php”的动作

echo '<form>';
echo '<table width="0" border="0">';
echo '<tr>';
//other codes
echo "</form>";

也许您的意思是删除第一个echo '</form>'(line 7)和第二个<form>(line 10)