[英]how to retrieve data of a particular row from the database
我從最近幾天開始徘徊,一旦我單擊主頁上的查看詳細信息按鈕,就無法完成如何從數據庫中檢索特定行的數據。 [s_no 是唯一的]
這是我的主頁; 查看.php
<?php
include('dbconnect.php');
$select=mysql_query("SELECT * FROM forms order by s_no desc");
$i=1;
while($userrow=mysql_fetch_array($select))
{
$s_no=$userrow['s_no'];
$title_pro=$userrow['title_pro'];
$institute=$userrow['institute'];
$email=$userrow['email'];
$contact=$userrow['contact'];
$date=$userrow['date'];
?>
<p align="center"><a href="submit_pro.php">View Paginated</a></p>
<div class="display">
<p> S.No : <span><?php echo $s_no; ?></span>
<p> Title of the proposal: <span><?php echo $title_pro; ?></span>
<a href="delete.php?id=<?php echo $s_no; ?>"
onclick="return confirm('Are you sure you wish to delete this
Record?');">
<span class="delete" title="Delete"> X </span></a>
</p>
<br />
<p> Institute: <span><?php echo $institute; ?></span>
<a href="table_print.php?id=<?php echo $s_no; ?>"><span class="edit"
title="Edit"> VIEW DETAIL</span></a>
</p>
<br />
<p> Email: <span><?php echo $email; ?></span>
</p>
<br />
<p> Contact name and address: <span><?php echo $contact; ?></span>
</p>
<br />
<p> SUBMITTED ON : <span><?php echo $date; ?></span>
</p>
<br />
</div>
<?php } ?>
這個主頁 (view.php) 工作正常。 現在。 一旦我單擊 view.php(主頁)上的查看詳細信息按鈕,它應該查看特定行的所有詳細信息。 下面是 table_print(detail page) 代碼,它不完整,我無法做到。
第二頁:table_print.php
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password ="";
$mysql_database = "iaoform_db";
// Create connection
$conn = new mysqli($mysql_hostname, $mysql_user, $mysql_password, $mysql_database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$id = $_GET['id']; //read id from get inputs
$sqli = "SELECT s_no, title_pro, type, cycle, type_pro, thesis, year,
proposer, institute,
email,present,contact,abstract,status_ongoing,status_file,
sch_request,no_night,no_night_impossible,just_request,mode_ob,
brief_descrip,plan,hfosc_b,hfosc_n,hfosc_g,hfosc_s,hesp_r,hesp_o,
tirspec_b,tirspec_n,tirspec_s,tirspec_c,tirspec_slits,obj_name,obj_ra,
obj_dec,obj_epoch,obj_mag,obj_size,scient_just,date,
status FROM forms WHERE s_no = ?"; //add a where clause with place
holder
$stmt = $conn->prepare($sqli);
$stmt->bind_param("i", $id); //bind input parameters
$stmt->execute();
$stmt->store_result();
/* Get the number of rows */
$num_of_rows = $stmt->num_rows;
/* Bind the result to $row variable */
$stmt->bind_result($row);
if($num_of_rows < 1){ //exit or send the result if number of rows is less than one
echo "Can't find any record!";
mysqli_close($conn);
exit();
} {
?>
<!---------------------------------------------------->
<?php
while ($stmt->fetch())
{
<table class="tg">
<tr>
<th class="tg-9hbo">S.No</th>
<th class="tg-yw4l" colspan="5"><?php echo $row["s_no"]; ?> </th>
</tr>
<tr>
<td class="tg-9hbo">Title of the proposal:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["title_pro"]; ?>
</td>
</tr>
<tr>
<td class="tg-9hbo">Type:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["type"]; ?> </td>
</tr>
|
|
|
|
|
<tr>
<td class="tg-9hbo">Submission date:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["date"]; ?> </td>
</tr>
</table>
/* free results */
$stmt->free_result();
}
mysqli_close($conn);
?>
完成此任務將不勝感激。 非常感謝提前...!!!
您的查詢中沒有 WHERE 子句來獲取特定行。 id 出現在$_GET
數組中。 並且需要使用帶有占位符的預准備語句來防止 sql 注入。 試試下面的代碼
<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password ="";
$mysql_database = "iaoform_db";
// Create connection
$conn = new mysqli($mysql_hostname, $mysql_user, $mysql_password, $mysql_database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$id = $_GET['id']; //read id from get inputs
$sqli = "SELECT s_no, title_pro, type, cycle, type_pro, thesis, year,
proposer, institute,
email,present,contact,abstract,status_ongoing,status_file,
sch_request,no_night,no_night_impossible,just_request,mode_ob,
brief_descrip,plan,hfosc_b,hfosc_n,hfosc_g,hfosc_s,hesp_r,hesp_o,
tirspec_b,tirspec_n,tirspec_s,tirspec_c,tirspec_slits,obj_name,obj_ra,
obj_dec,obj_epoch,obj_mag,obj_size,scient_just,date,
status FROM forms WHERE s_no = ?"; //add a where clause with place holder
$stmt = $conn->prepare($sqli);
$stmt->bind_param("i", $id); //bind input parameters
$stmt->execute();
$stmt->store_result();
/* Get the number of rows */
$num_of_rows = $stmt->num_rows;
/* Bind the result to $row variable */
$stmt->bind_result($row);
if($num_of_rows < 1){ //exit or send the result if number of rows is less than one
echo "Can't find any record!";
mysqli_close($conn);
exit();
} { ?>
<!---------------------------------------------------->
<?php
while ($stmt->fetch())
{ ?>
<table class="tg" id="myModal">
<tr>
<th class="tg-9hbo">S.No</th>
<th class="tg-yw4l" colspan="5"><?php echo $row["s_no"]; ?> </th>
</tr>
<tr>
<td class="tg-9hbo">Title of the proposal:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["title_pro"]; ?>
</td>
</tr>
<tr>
<td class="tg-9hbo">Type:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["type"]; ?> </td>
</tr>
<tr>
<td class="tg-9hbo">Number of cycles/nights:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["cycle"]; ?> </td>
</tr>
<tr>
<td class="tg-9hbo">Type of the proposal:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["type_pro"]; ?> </td>
</tr>
<tr>
<td class="tg-9hbo">Title of the thesis:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["thesis"]; ?> </td>
</tr>
<tr>
<td class="tg-9hbo">Expected year of thesis submission:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["year"]; ?> </td>
</tr>
<tr>
<td class="tg-amwm" colspan="6">List of Proposer:</td>
</tr>
<tr>
<td class="tg-9hbo" colspan="2">Proposer</td>
<td class="tg-9hbo">Institute</td>
<td class="tg-9hbo">Email</td>
<td class="tg-9hbo" colspan="2">Present</td>
</tr>
<tr>
<td class="tg-9hbo" colspan="2"><?php echo $row["proposer"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["institute"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["email"]; ?> </td>
<td class="tg-yw4l" colspan="2"><?php echo $row["present"]; ?> </td>
</tr>
<tr>
<td class="tg-9hbo">Contact name and address:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["contact"]; ?> </td>
</tr>
<tr>
<td class="tg-9hbo">Abstract:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["abstract"]; ?> </td>
</tr>
<tr>
<td class="tg-9hbo" colspan="2">Status of ongoing / Previous
proposal</td>
<td class="tg-9hbo" colspan="4">Attached file</td>
</tr>
<tr>
<td class="tg-9hbo" colspan="2"><?php echo $row["status_ongoing"]; ?>
</td>
<td class="tg-yw4l" colspan="4"><?php echo $row["status_file"]; ?>
</td>
</tr>
<tr>
<td class="tg-9hbo">Scheduling request:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["sch_request"]; ?>
</td>
</tr>
<tr>
<td class="tg-amwm" colspan="6">No. of nights requested</td>
</tr>
<tr>
<td class="tg-amwm" colspan="2">Preferred dates</td>
<td class="tg-amwm" colspan="4">Impossible date</td>
</tr>
<tr>
<td class="tg-9hbo" colspan="2"><?php echo $row["no_night"]; ?> </td>
<td class="tg-yw4l" colspan="4"><?php echo $row["no_night_impossible"];
?> </td>
</tr>
<tr>
<td class="tg-9hbo">Justification for scheduling request:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["just_request"]; ?>
</td>
</tr>
<tr>
<td class="tg-9hbo">Instrument:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["instru1"]; ?> </td>
</tr>
<tr>
<td class="tg-9hbo">Mode of Observation:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["mode_ob"]; ?> </td>
</tr>
<tr>
<td class="tg-9hbo">Brief description of observations:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["brief_descrip"]; ?>
</td>
</tr>
<tr>
<td class="tg-9hbo">Plans for data reduction and analysis:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["plan"]; ?> </td>
</tr>
<tr>
<td class="tg-amwm" colspan="6">HFOSC</td>
</tr>
<tr>
<td class="tg-9hbo" colspan="2">Broad Band Filters</td>
<td class="tg-9hbo">Narrow Band Filters</td>
<td class="tg-9hbo">Grisms</td>
<td class="tg-9hbo" colspan="2">Slits</td>
</tr>
<tr>
<td class="tg-9hbo" colspan="2"><?php echo $row["hfosc_b"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["hfosc_n"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["hfosc_g"]; ?> </td>
<td class="tg-yw4l" colspan="2"><?php echo $row["hfosc_s"]; ?> </td>
</tr>
<tr>
<td class="tg-amwm" colspan="6">HESP</td>
</tr>
<tr>
<td class="tg-amwm" colspan="2">Resolution</td>
<td class="tg-amwm" colspan="4">Observation mode</td>
</tr>
<tr>
<td class="tg-amwm" colspan="2"><?php echo $row["hesp_r"]; ?> </td>
<td class="tg-yw4l" colspan="4"><?php echo $row["hesp_o"]; ?> </td>
</tr>
<tr>
<td class="tg-amwm" colspan="6">TIRSPEC</td>
</tr>
<tr>
<td class="tg-9hbo">Broad Band Filters</td>
<td class="tg-9hbo">Narrow Band Filters</td>
<td class="tg-9hbo">Single Order Dispersers</td>
<td class="tg-9hbo">Cross Dispersers</td>
<td class="tg-9hbo" colspan="2">Slits</td>
</tr>
<tr>
<td class="tg-9hbo"><?php echo $row["tirspec_b"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["tirspec_n"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["tirspec_s"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["tirspec_c"]; ?> </td>
<td class="tg-yw4l" colspan="2"><?php echo $row["tirspec_slits"]; ?>
</td>
</tr>
<tr>
<td class="tg-amwm" colspan="6">List of objects: (essential)</td>
</tr>
<tr>
<td class="tg-9hbo">Name</td>
<td class="tg-9hbo">RA (hh mm ss)</td>
<td class="tg-9hbo">Dec (dd mm ss)</td>
<td class="tg-9hbo">Epoch</td>
<td class="tg-9hbo">V mag</td>
<td class="tg-9hbo">size</td>
</tr>
<tr>
<td class="tg-yw4l"><?php echo $row["obj_name"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["obj_ra"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["obj_dec"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["obj_epoch"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["obj_mag"]; ?> </td>
<td class="tg-yw4l"><?php echo $row["obj_size"]; ?> </td>
</tr>
<tr>
<td class="tg-9hbo">Scientific Justification:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["scient_just"]; ?>
</td>
</tr>
<tr>
<td class="tg-9hbo">Submission date:</td>
<td class="tg-yw4l" colspan="5"><?php echo $row["date"]; ?> </td>
</tr>
</table>
<?php
/* free results */
$stmt->free_result();
}
mysqli_close($conn);
?>
看來您已經將s_no
作為 URL 參數id
傳遞到第二頁。 所以第二頁需要取它(即id = $_GET['id']
),然后就可以在 SQL 查詢中使用它添加WHERE s_no = id
。
注意:在將任何字符串放入 SQL 之前,您需要引用任何字符串,否則您將存在 SQL 注入漏洞(即互聯網上的任何人都可以刪除您的數據庫)。 使用准備好的語句。
此外,如果s_no
是唯一的,則您不需要在第二頁上s_no
一段while
- 您可以獲取一行(如果存在)。
您正在打開 php 標簽但沒有關閉它,這就是您收到語法錯誤的原因
查詢語句肯定有問題,確保表名和列名正確
$sqli = "SELECT s_no, title_pro, type, cycle, type_pro, thesis, year,
proposer, institute,
email,present,contact,abstract,status_ongoing,status_file,
sch_request,no_night,no_night_impossible,just_request,mode_ob,
brief_descrip,plan,hfosc_b,hfosc_n,hfosc_g,hfosc_s,hesp_r,hesp_o,
tirspec_b,tirspec_n,tirspec_s,tirspec_c,tirspec_slits,obj_name,obj_ra,
obj_dec,obj_epoch,obj_mag,obj_size,scient_just,date,
status FROM forms WHERE s_no = ?";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.