简体   繁体   English

如何从数据库中检索特定行的数据

[英]how to retrieve data of a particular row from the database

Im wandering from last few days and unable to complete how to retrieve data of a particular row from the database once i click on the view detail button from the main page.我从最近几天开始徘徊,一旦我单击主页上的查看详细信息按钮,就无法完成如何从数据库中检索特定行的数据。 [s_no is unique] [s_no 是唯一的]

Here is my main page;这是我的主页; view.php查看.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 } ?>

This main page (view.php) works fine.这个主页 (view.php) 工作正常。 Now.现在。 once i click on the view detail button on the view.php(main page) it should view the all detail of the particular row.一旦我单击 view.php(主页)上的查看详细信息按钮,它应该查看特定行的所有详细信息。 Below is the table_print(detail page) code which is incomplete that i could not do it .下面是 table_print(detail page) 代码,它不完整,我无法做到。

Second page: table_print.php第二页: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);
   ?>

Its will be very grateful to complete this.完成此任务将不胜感激。 Thank a lot in advance ...!!!非常感谢提前...!!!

There is no WHERE clause in your query to fetch specific row.您的查询中没有 WHERE 子句来获取特定行。 The id comes in $_GET array. id 出现在$_GET数组中。 And using prepared statement with placeholder is needed to prevent sql injection.并且需要使用带有占位符的预准备语句来防止 sql 注入。 Try following code试试下面的代码

    <?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);
     ?>

It seems you are already passing s_no as a URL parameter id to the second page.看来您已经将s_no作为 URL 参数id传递到第二页。 So the second page needs to pick it up (ie id = $_GET['id'] ), then you can use it in SQL query to add WHERE s_no = id .所以第二页需要取它(即id = $_GET['id'] ),然后就可以在 SQL 查询中使用它添加WHERE s_no = id

Note: you need to quote any string before you put it in SQL otherwise you will have a SQL injection vulnerability (ie anybody on the internet can delete your database).注意:在将任何字符串放入 SQL 之前,您需要引用任何字符串,否则您将存在 SQL 注入漏洞(即互联网上的任何人都可以删除您的数据库)。 Use prepared statements .使用准备好的语句

Moreover, if s_no is unique, you do not need a while on the second page - you can fetch a single row (if it exists).此外,如果s_no是唯一的,则您不需要在第二页上s_no一段while - 您可以获取一行(如果存在)。

you are opening php tag but not closing it thats why you are getting syntax error您正在打开 php 标签但没有关闭它,这就是您收到语法错误的原因

There must be some problem with query statement, make sure that table name and column names are right查询语句肯定有问题,确保表名和列名正确

     $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