2013-03-23 53 views
0

我寫了一個腳本將信息發佈到我的數據庫中,因爲我無法發佈信息並需要幫助指出我失蹤的內容。無法讓PHP發佈信息到數據庫

我的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"); 
    } 

正確的信息似乎是其獲得通過的URL中則會顯示以下信息:

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

任何幫助,這將不勝感激,因爲我敢肯定它的東西很簡單,我只是在看。

+5

哦~~我的上帝,我從來沒有人濫用'echo'前爲多, – samayo 2013-03-23 02:29:39

+0

從未*見過有人^ – samayo 2013-03-23 02:42:42

+0

@PHPNooB有你看到基本上所有的wordpress插件?嚴重的是,這種編碼風格使得很難弄清楚爲什麼你的html會變得很有趣......你可能想重做它,而沒有像這樣的所有回聲:https://gist.github。 com/SeanJA/42ff21537e44d2a3943a – SeanJA 2013-03-23 02:56:14

回答

1

你想從值$ _ POST

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

,但你說這是通過URL傳遞,這看起來像你需要使用$ _GET來獲取值

- - 和一個小提示,你可以使用回聲來打印它工作的多條線。只要你關閉它,到底

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

感謝您提供關於multi我會毫不猶豫地用它來清理代碼。我仍然對這一點和學習還很陌生。 – Ansipants 2013-03-23 02:54:08

+0

沒問題,曾經有過,很快就習慣了吧 – 2013-03-23 02:55:15

0

我認爲你有一堆東西在此之前有權得到的將是工作:

  1. 只有第一種形式,這似乎是搜索部門,有方法和行動屬性
  2. 由於第二個表單沒有action屬性,它不是提交給depedit.php,而是提交給具有該表單的頁面。
  3. 由於第二個表單沒有方法屬性,所以它默認爲GET,並且您試圖讀取PHP中的POST變量。如果它不使用GET,則在結果URL中將看不到這些參數。
  4. 在您的SQL插入語句中,您必須圍繞每個單獨的引號文本值,但而不是圍繞int值。現在你在第一個值之前有一個單引號,而在最後一個之前沒有任何意義。
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)

+0

沒有動作和方法的表單顯然是用GET方法提交的。 :)。但我與你同在。我不會那樣.. – Daniel 2013-03-23 02:42:54

+0

知道這是愚蠢的。缺乏睡眠,第二個<形式本應該是我添加了後續動作的形式。只要我移動它,我至少會有錯誤,無法添加部門。重新安排錯誤代碼,所以它給了我實際的錯誤。我會及時向大家發佈。非常感謝。 – Ansipants 2013-03-23 02:43:07

+0

感謝@丹尼爾,我編輯我的答案,以適應什麼意思 – TravellingGeek 2013-03-23 02:49:03