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

使用PHP从MySql获取具有给定ID的特定行,php,mysql,sql,Php,Mysql,Sql,编辑:在收到一些帮助后,我编辑了一些部分,这里是formlarigor2.php文件,我得到了一个新的错误:1)mysqli_stmt_bind_result()至少需要2个参数,1个给定。。。。2) mysqli_fetch_array()希望参数1是mysqli_result,对象用C表示。。我想像给定的那样布局页面。这就是我使用td>代码的原因。。有什么帮助吗` <?php $conn = mysqli_connect("localhost","root","","son_

编辑:在收到一些帮助后,我编辑了一些部分,这里是formlarigor2.php文件,我得到了一个新的错误:1)mysqli_stmt_bind_result()至少需要2个参数,1个给定。。。。2) mysqli_fetch_array()希望参数1是mysqli_result,对象用C表示。。我想像给定的那样布局页面。这就是我使用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>


`  


使用表单id作为参数

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

获取行部分通常位于while循环中,以获取多行。但是您只有一个

使用表单id作为参数

<td width="174"  class="centertext"><a href="formlarigor2.php?formid=<?php echo $row["formid"]; ?>"> Go to the form</a></td> 
获取行部分通常位于while循环中,以获取多行。但是您只有一个

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

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

链接的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注入。

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

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

链接的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注入。

我应该将$formid=$\u GET['formid']具体放在哪里;在文件中?至少在使用$formid=isset($\u GET['formid'])之前,应该像检查任何其他参数一样检查它$_获取['formid']:'';因此,它始终处于已定义状态,如果为空,请重新输入起始页。我添加了用于检索tbale的一行的代码,并使用以显示名称为例。我收到了这两个错误;1) 未定义变量:mysqli 2)致命错误:未捕获错误:调用null中的成员函数prepare(),因为我忽略了您使用的是过程样式,而不是面向对象的。试试这个,我应该把$formid=$\u GET['formid']放在什么地方;在文件中?至少在使用$formid=isset($\u GET['formid'])之前,应该像检查任何其他参数一样检查它$_获取['formid']:'';因此,它始终处于已定义状态,如果为空,请重新输入起始页。我添加了用于检索tbale的一行的代码,并使用以显示名称为例。我收到了这两个错误;1) 未定义变量:mysqli 2)致命错误:未捕获错误:调用null中的成员函数prepare(),因为我忽略了您使用的是过程样式,而不是面向对象的。试试这个,我添加了formlarigor2.php文件,它将用户引导到不同的表单,其中包含关于表单的更多信息。你能查一下吗?。另外,我应该写什么来代替问号?$stmt->bind_param(“s”,$formId);这是什么意思。它的目的是什么?问号是准备好的语句的参数占位符$stmt->bind_参数(“s”,$formId)将用$formId值替换问号。很抱歉,“s”代表字符串,也许id是一个int,所以它应该是“i”(istead of“s”)。预处理语句是避免sql注入的唯一方法。我从这里了解到,你是说我应该把formid值,比如2,而不是问号,对吗?因为桌子上会有更多提交的表格,所以我需要把每一份都拿出来。在这种情况下,我应该用什么来代替问号呢。对不起,我的语法不好。保留问号就行了。这样做是正确的。在google中用php中的mysqli搜索准备好的语句。您会理解的。我添加了formlarigor2.php文件,它将用户引导到不同的表单,其中包含关于表单的更多信息。你能查一下吗?。另外,我应该写什么来代替问号?$stmt->bind_param(“s”,$formId);这是什么意思。它的目的是什么?问号是准备好的语句的参数占位符$stmt->bind_参数(“s”,$formId)将用$formId值替换问号。很抱歉,“s”代表字符串,也许id是一个int,所以它应该是“i”(istead of“s”)。预处理语句是避免sql注入的唯一方法。我从这里了解到,你是说我应该把formid值,比如2,而不是问号,对吗?因为桌子上会有更多提交的表格,所以我需要把每一份都拿出来。在这种情况下,我应该用什么来代替问号呢。对不起,我的语法不好。保留问号就行了。这样做是正确的。在google中用php中的mysqli搜索准备好的语句。你会明白的。