簡體   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