2012-12-23 35 views
0

首先:我是新來的MYSQL/PHP :)。我正在研究一個簡單的腳本來學習php/mysql,但我遇到了一些問題。我真的很抱歉,如果其中一些已經在這個網站上提出,但我搜索他們,但他們不結合我的意圖,所以請不要只是-1這篇文章!以html格式插入數據(以及更多..)

我有一些表的數據庫。其中一個表名爲'leerlingen',我想將數據添加到該表中。我來自荷蘭,「leerlingen」的意思是「學生」。所以,我想添加一個學生到桌子上。該表有4件事:leerling_id,leerling_naam,leerling_nummer和klas_id。最後一個很奇怪,對吧?不,因爲我有另一張只有一列的表格:klas_id。這是爲了以後,但。 「Klas」的意思是'group'(是的,我正在學習你們荷蘭人的哈哈:D),而且我有幾個團體。但是,您可以通過其他表單添加新組。

讓我們開始經營:我創建了一個HTML表單:

<!-- start form --> 

    <form action="insert_leerling.php" method="post"> 
<input type="text" name="leerling_naam" class="inp-form"> 
<input type="text" name="leerling_nummer" class="inp-form"> 

<?php 

$con = mysql_connect("localhost","root","root"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("sms", $con); 

$query = "SELECT * FROM klas ORDER BY klas_id"; 
$result = mysql_query($query); 

echo "<select class='inp-form' id='klas_id'>\n"; 

while ($row = mysql_fetch_assoc($result)) { 
    if (1 == 1) { 
    echo '<option name="'.htmlspecialchars($row['klas_id']).'">'.htmlspecialchars($row['klas_id']).'</option>'; 
    } 
} 

echo "</select>"; 

?> 
      <input type="submit" value="Voeg toe" class="form-submit" /> 

    </form> 

<!-- end form --> 

因此,有三樣東西插入:leerling_naam(指學生姓名),leerling_nummer(指學號=手機號碼)和klas_id。我從小php腳本獲取klas_id,所以用戶可以看到一個包含所有klas(組)的html下拉菜單。當我運行的形式,發送你這段代碼(另一頁):

<?php 
    $con = mysql_connect("localhost","root","root"); 
    if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("sms", $con); 

$leerling_naam = $_POST['leerling_naam']; 
$leerling_nummer = $_POST['leerling_nummer']; 
$klas_id = $_POST['klas_id']; 

$sql_insert = mysql_query(" 
          INSERT INTO leerlingen 
          (leerling_naam, leerling_nummer, klas_id) 
          VALUES 
          ('$leerling_naam', '$leerling_nummer', '$klas_id') 
         "); 

?> 

現在,這裏的問題..

  1. 的「klas_id」沒有插入表,它只是布蘭科。
  2. 我希望第一列(leerling_id,這是來自mysql表的正常標識)在整個時間爲+1,我沒有使用這段代碼。當我添加新的數據時,leerling_id是+1,但是當我刪除第一行(假設我踢了一個學生)時,數據並沒有約會自己(哈哈,單詞'updates')

如果你已經讀過這裏的所有方式:做得好。我的英語不太好(如果你發現一些嚴重的語法錯誤,你可以告訴我:))。我也明白,這是很難遵循,對不起。

謝謝!

+0

請少寫點,只是讓你的問題知道。我相信這個問題不需要這麼多的敘述。 – samayo

+0

雖然很羅嗦,但我認爲這些問題很有名。 – Lock

+0

@ TCPN - 好的,我會繼續努力。 @鎖定 - 認爲它更困難,抱歉。 – Jellevdschoot

回答

2
echo "<select class='inp-form' id='klas_id'>\n"; 

應改爲

echo "<select name='klas_id' class='inp-form' id='klas_id'>\n"; 

你沒有給你的選擇表單元素的名稱。 Id和Name在這種情況下不可互換。

在回答第二個問題時,爲什麼要讓數據完全順序?沒有簡單的方法可以使數據庫記錄總是連續的,特別是如果這是該行的主鍵。

而不是從數據庫中刪除記錄,我建議這是「軟記錄刪除」的好例子,也就是說,在數據類型爲ENUM('Y','N')的數據類型的表中添加一個名爲「active」的新列。如果您想刪除它們,只需將該字段標記爲'N',並且在查詢學生時,只在活動列中查找帶有'Y'的記錄。

如果你想在你的查詢中給你的學生留下一個連續的號碼,看一下rownumber:@rownum:[email protected]+1,儘管這個號碼絕對沒有直接鏈接到數據庫中的id

+0

謝謝!我會按照我的方式告訴我的問題,對於長文本抱歉..無論如何,謝謝你,聖誕快樂! – Jellevdschoot