簡體   English   中英

如何從數據庫中檢索特定行的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM