繁体   English   中英

使用 PHP 从 MySql 获取具有给定 ID 的特定行

[英]Get specific row with given ID from MySql using PHP

编辑:在收到一些帮助后,我编辑了一些部分,这里是 formlarigor2.php 文件,我收到新错误说 1)mysqli_stmt_bind_result() 至少需要 2 个参数,给定 1.... 2)mysqli_fetch_array() 需要参数 1 mysqli_result,C 中给出的 object .. 我想像给定的那样布局页面。 布局 这就是我使用 td> 代码的原因。有什么帮助吗? :`

<?php

    $conn = mysqli_connect("localhost","root","","son_fbe");
            if (mysqli_connect_error()) {

            echo "Failed to connect to MySQL: " . mysqli_connect_error();
                 exit();

        }


    $formid = isset($_GET['formid ']) ? $_GET['formid '] : ''; 
    if ($stmt = mysqli_prepare($conn, "SELECT * FROM derssaydirma WHERE formid = ?")) {

            mysqli_stmt_bind_param($stmt, "s", $formid );
            mysqli_stmt_execute($stmt);
            mysqli_stmt_bind_result($stmt);

    }



?>


 <!DOCTYPE html> 
     <html lang="en"> 
         <head> <title></title> </head>
        <body>  <table   align="center" bordercolor="#CCCCCC" border="1" >
      <?php

   $i=0;
   while($row = mysqli_fetch_array($stmt)) {
   if($i%2==0)
  $classname="even";
   else
  $classname="odd";
  ?>

 <tr class="<?php if(isset($classname)) echo $classname;?>">
  <td width="235">Form ID</td>
 <td width="299"><?php echo $row["formid"]; ?></td>
  </tr>

<tr class="<?php if(isset($classname)) echo $classname;?>">
<td>O_AdiSoyadi</td>
<td><?php echo $row["O_AdiSoyadi"]; ?></td>
</tr>

 <tr class="<?php if(isset($classname)) echo $classname;?>">
 <td>OgrenciNo</td>
<td><?php echo $row["OgrenciNo"]; ?></td>
</tr>
<tr class="<?php if(isset($classname)) echo $classname;?>">
 <td>Program_BaslanilanDonem</td>
<td><?php echo $row["Program_BaslanilanDonem"]; ?></td>
 </tr>
  //There are about 20 more like this code block( <tr></tr> <?php
 $i++;
 }
 ?>
</table>


`  

我有一个包含超过 25 列的表。 有一个页面显示 forms 等待批准。 在那种形式中,我不会显示所有列,而是只显示一些列。 我使用 PHP 代码来做到这一点。 这是我的代码。

有一部分说看到所有提交的 forms 和 go 到 forms。 我可以看到所有提交的,但是我看不到具体的行。 比如表格显示formid、name等,我想获取formid的2的信息,我该怎么做呢? `

桌子

使用表单 id 作为参数

<td width="174"  class="centertext"><a href="formlarigor2.php?formid=<?php echo $row["formid"]; ?>"> Go to the form</a></td> 

在 formlarigor2.php 中,您可以将其放在 php 的开头。

$formid = isset($_GET['formid ']) ? $_GET['formid '] : ''; 
if ($stmt = mysqli_prepare($conn, "SELECT * FROM derssaydirma WHERE formid = ?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $formid );

    /* execute query */
    mysqli_stmt_execute($stmt);

    mysqli_stmt_bind_result($stmt, $col1, $col2,$col3,$col4,$col5,$col6);
    while (mysqli_stmt_fetch($stmt)) {
      printf("%s %s\n", $col1, $col2);
    }
}

获取行部分通常在一个while循环中获取多行。 但你只有一个

我猜“转到表单”将在不同的页面布局中显示有关表单的更多信息。

所以 html 中的元素应该链接到另一个 php 页面,该页面详细显示了该表单。 该链接应采用所选表单的id

<td width="174" class="centertext"><a href="formlarigor2.php/?formId=<?php echo $row["formid"]; ?>"> Go to the form</a></td>

链接的 php 页面将有如下查询:

$formId = $_GET['formId'];
$stmt = $mysqli->prepare("SELECT * FROM derssaydirma where id = ?");
$stmt->bind_param("i", $formId);
$stmt->execute();
$result = $stmt->get_result();

使用 $result 可以进行详细布局。

注意使用准备好的语句来避免 SQL 注入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM