2012-12-05 53 views
0

我一直在試圖弄清楚這個問題,但它不起作用。我可以從數據庫中檢索所有數據,但是我想從用戶在表單中輸入的html表單中檢索jobname,並且用戶也在表單中輸入位置,並將這些文本與jobname和location字段進行比較數據庫上的一張表。我知道這聽起來有點混亂,但這裏是我的代碼,什麼也不做:從html表格中提取數據並將其與數據庫中的字段進行比較php

<html> 
<body> 
<?php 
ob_start(); 
$host=""; // Host name 
$username= ""; // Mysql username 
$password=""; // Mysql password 
$db_name=""; // Database name 
$tbl_name=""; // Table name 

// Connect to server and select databse. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

// Define $myusername and $mypassword 
$job=$_POST['jobName']; 
$mylocation=$_POST['location']; 

// To protect MySQL injection (more detail about MySQL injection) 
$job = stripslashes($job); 
$mylocation = stripslashes($mylocation); 
$job = mysql_real_escape_string($job); 
$mylocation = mysql_real_escape_string($mylocation); 

$sql="SELECT * FROM ".$tbl_name." WHERE jobName='".$job."' and  location='".$mylocation."';"; 

$result=mysql_query($sql); 

$num=mysql_numrows($result); 

mysql_close(); 
?> 
<table border="0" cellspacing="2" cellpadding="2"> 
<tr> 
<td><font face="Arial, Helvetica, sans-serif">jobName</font></td> 
<td><font face="Arial, Helvetica, sans-serif">jobType</font></td> 
<td><font face="Arial, Helvetica, sans-serif">Location</font></td> 
<td><font face="Arial, Helvetica, sans-serif">Description</font></td> 
<td><font face="Arial, Helvetica, sans-serif">Contact</font></td> 
</tr> 

<?php 
$i=0; 
while ($i < $num) { 

$job=mysql_result($result,$i,"jobName"); 
$type=mysql_result($result,$i,"jobType"); 
$myLocation=mysql_result($result,$i,"location"); 
$desc=mysql_result($result,$i,"description"); 
$cont=mysql_result($result,$i,"contact"); 
?> 

<tr> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $job; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $type; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $myLocation; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $desc; ?></font></td> 
<td><font face="Arial, Helvetica, sans-serif"><?php echo $cont; ?></font></td> 
</tr> 

<?php 
$i++; 
} 
ob_end_flush(); 
?> 
</body> 
</html> 

我只需要一個很好的教程來幫助我,雖然沒有我研究到現在幫了我,也許如果我能得到一個例子代碼表示類似的問題,或者幫助解釋我在這段代碼中出錯的地方。我很感激。

+0

你面臨什麼錯誤..? –

+1

順便說一句,你有一個語法錯誤:mysql_numrows它應該是mysql_num_rows – Sam

+0

嘗試只是'while($ num){'不需要'$ i' –

回答

0

你需要一個HTML表單或者其他指向這個頁面的頁面。 應該是這個樣子

<form method="post" action="file-above.php" (leave action attribute empty if it's in the same file)> 
<input type="text" name="jobName" /> 
<input type="text" name="location" /> 
</form> 

上面的代碼只是向你展示的事情應該如何工作的,它是不完整的。

+1

似乎是一個很好的建議;還需要一個提交按鈕;) – Andrew

+0

非常感謝你的回覆。我有另一個頁面上的這段代碼,我有這種形式,用戶可以輸入文本,當用戶按下提交時,我發佈的這個代碼處理它,但它仍然不起作用,當我按提交時,它顯示一個空白頁儘管我有數據庫上的數據 – learnerNo1

+0

嘗試print_r($ _ post);僅用於調試目的。並從數據庫得到print_r結果......並查看缺少的內容? – hakazvaka

相關問題