Получить указанную c строку с заданным идентификатором из MySql, используя PHP - PullRequest
0 голосов
/ 19 апреля 2020

Редактировать: Получив некоторую помощь, я отредактировал некоторые части, и здесь файл formlarigor2. php и получил новое сообщение об ошибке: 1) mysqli_stmt_bind_result () ожидает, по крайней мере, 2 параметра, 1 задан .... 2) mysqli_fetch_array () ожидает, что параметр 1 будет mysqli_result, объект задан в C .. Я хочу расположить страницу, как указано. layout Вот почему я использовал 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 столбцов. Есть страница, которая показывает формы, ожидающие утверждения. В этой форме я показываю не все столбцы, а только несколько. Я делаю это, используя PHP код. Вот мой код.

Есть часть, которая говорит, что смотрите все отправленные формы и go к этим формам. Я могу видеть все представленные, однако я не мог видеть конкретную строку c. Например, в таблице отображаются formid, name и др. c, я хочу получить информацию о formid 2. Как я могу это сделать? `

table

Ответы [ 2 ]

1 голос
/ 19 апреля 2020

Я предполагаю, что "Go к форме" будет отображать дополнительную информацию о форме в другом макете страницы.

Таким образом, элемент в 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 внедрения.

1 голос
/ 19 апреля 2020

Используйте идентификатор формы в качестве параметра

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

Часть строки выборки обычно проходит некоторое время. L oop, чтобы получить несколько строк. но у вас есть только один

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...