PHP CRUD с MySQL на два файла - PullRequest
0 голосов
/ 19 мая 2019

Я очень новый с php и базой данных ...

У меня есть файл, где отображается комментарий, contact.php , здесь , чтобы показать его и мой Css, потому что codepen есть только для JS, Форма комментария не для отображения, код для комментария для вызова classprove.php он есть в PHP и это здесь , люди помогают мне, для создания этого кода ...

Чем есть файл kommenter_verwalter.php , где я буду отображать вывод моих комментариев на Табель.

Итак, у меня есть два файла для моих комментариев, classprove.php для управления моими комментариями и kommenter_verwalter.php , где я буду отображать их.

Я попытаюсь с помощью этого кода создать файл для удаления с помощью кнопки рядом с каждой строкой, чтобы, если я хочу удалить эту строку, я нажимал кнопку удаления.

Редактировать новый мой код

Теперь для поиска моего кода без подключитесь к моему classprove.php файлу.

Код от kommenter_verwalter.php ,

<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);



class ClassProveContakt2 
{


          private $dbHost = 'localhost'; # Host der Datenbank
          private $dbName = 'meine';      # Name der Datenbank
          private $dbUser = 'root';      # Name phpmyadmin
          private $dbPass = 'pass';      # Passwort


          private $name;
          private $email;
          private $message;
          private $datetime;
          private $ip;
          private $db;
          private $connection; 
          private $id;
          private $sql; 
          private $statement;
          private $success;     




          function CommentToDatabase()
          {
              // Establish connection with MYSQL Server
            try
            {
              $db = new PDO("mysql:host=localhost;dbname=meine", "root", "pass");
            }
             catch (PDOException $pe)
            {
               echo "<br>Cannot connect to database: " . $pe->getMessage();
                return false;
            }

            if(isset($_POST["delete"])) {
             try {


                   $connection = new PDO($id, $name, $email, $message, $datetime, $ip);

                   $id = $_POST["id"];

                   $sql = "DELETE FROM mela WHERE id = :id";

                   $statement = $connection->prepare($sql);
                   $statement->bindValue(':id', $id);
                   $statement->execute();

                   $success = "User successfully deleted";
                  }catch(PDOException $error) {
                        echo $sql . "<br>" . $error->getMessage();
                   }

             } 
           }
           function tabelle() 
           {
              $db = $this ->CommentToDatabase();

              if ($db) 
              {  

                 echo "<table id='user' class='table table-bordered'>

                    <tr>
                      <th>id</th>
                      <th>name</th>
                      <th>email</th>
                      <th>message</th>
                      <th>datetime</th>
                      <th>ip</th>
                       <th>Delete User</th>
                      </tr>";

                     foreach ($db as $row){

                        echo <<<EOT
                           <tr>
                              <td>{$row['id']}</td>
                              <td>{$row['name']}</td>
                              <td>{$row['email']}</td>
                              <td>{$row['message']}</td>
                              <td>{$row['datetime']}</td>
                              <td>{$row['ip']}</td>
                              <td><button type "submit" name="delete" value="{$row['id']}">löschen</button> 
                            </tr>

EOT;
                     }

                    echo "</table>";   


                 }

           }
}

$News = new ClassProveContakt2;
$News -> CommentToDatabase();
$News -> tabelle();
?>

При записи sudo tail -n0 -f /var/log/apache2/error.log /var/log/mysql/error.log

Теперь придет не ошибка, но ничего не отобразится ...

Я заметил, что у меня нет,

$ _ POST [ "Удалить"]

и

$ _ POST [ "ID"];

Я собираю свою форму только с (имя, адрес электронной почты и сообщение), id нужно с phpmyadmin для сборки. , Эти части кода есть в интернете, чтобы найти ...

Может пожалуйста, кто-нибудь подскажет, как можно изменить эти части кода.

Как показать моей Табеллы на phpmyadmin,

Я хочу, чтобы Файл kommenter_verwalter.php (там, который здесь дают), вывод Отображает только комментарии (имя, адрес электронной почты, сообщение, ..) на Таблица с кнопкой , , удалить , как этот снимок экрана, чтобы показать ..., и файл classprove.php , чтобы остаться в качестве администратора для Комментарий.

Может кто-нибудь помочь мне с этой проблемой, спасибо!

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Потому что люди на stackoverflow , которые не позволяют моему другому Вопросу ответить, они скрывают его ..... Название из него "Как использовать CRUD на SQL", и поскольку он очень похож на эти, я отвечу здесь ....

Теперь можно отобразить файл kommenter_verwalter.php без подключения к моему classprove.php Файл.

У меня есть некоторые ошибки, поэтому я не могу отобразить его ....

Как теперь мой kommenter_verwalter.php ,

class ClassProveContakt2 
{  

      private $conn;



   function __construct() {

      $dbHost = 'localhost'; # Host der Datenbank
      $dbName = 'meine';      # Name der Datenbank
      $dbUser = 'root';      # Name der Datenbank
      $dbPass = 'pass';      # Passwort

      // declare the object conn, which conect to the Datebase .

          $this->conn = new mysqli($dbHost,$dbUser,$dbPass,$dbName);  
    }
     // mit these function delete the Comment .

    function deleteComment($id){

      /* build a Variable to delete the Comment ,on **id=?** , give **?**  
       because i will the Comment to delete on hand (with the Bottom "delete")
       give not Value to **id**  , the **?** . */

      $sql = "DELETE FROM mela WHERE id=?";

       // prepare and bind the connection to Database .

       $statement= $this->conn->prepare($sql);
       $statement -> bind_param('i',$id);
       $statement->execute();
    }  
    function printAdminTable() {

        //connect to the Table , name "mela" and the Rows which are in it .  

         $sql = "SELECT id, name, email, message, datetime,ip FROM mela ORDER BY datetime DESC";

       // prepare and bind the connection to the Table . 

       $statement= $this->conn->prepare($sql);
       $statement->execute();

       $result = $statement-> get_result();

         //On *if* Statement asked if all is ok on the connection with sql
        // when yes ,build the Table .

       if ( $result ) {
            echo "
        <form action=\"prove_comment.php\" method=\"POST\">\n
        <table id='user' class='table table-bordered' border= '1px solid';>
                <tr>
                 <th>ID</th>
                  <th>Name</th>
                  <th>E-mail</th>
                  <th>Message</th>
                  <th>Datetime</th>
                  <th>IP</th>
                   <th>Delete</th>
                  </tr>";

              while($row = $result->fetch_assoc()){

                echo <<<EOT
                  <tr>
                      <td>{$row['id']}</td>
                      <td>{$row['name']}</td>
                      <td>{$row['email']}</td>
                      <td>{$row['message']}</td>    
                      <td>{$row['datetime']}</td>
                      <td>{$row['ip']}</td>
                      <td><button type="submit" name="delete" value="{$row['id']}">löschen</button>
                  </tr>

EOT;
              }
             echo '</table></form>';  
            // when not connection on sql .
            } else {
          echo '<p class="error">Hm. $arrRows enthält nichts oder false. '
            .'Entweder ist die Datenbank noch leer oder da ist was falsch.</p>';
     }            
    }
        // connection to sql closse .
     function __destruct(){
       $this->conn->close();    
     }
    }   // Build the call to the method .
    $News = new ClassProveContakt2();
       /* Because befor have add 'delete' on my POST Method                         
        (Linne 77 ,  "<td><button type="....) , with the **if** Statement asked if
        it is , when yes , delete it . */     
    if (isset($_POST['delete'])){
    $News -> deleteComment($_POST['delete']);
    }
    $News -> printAdminTable();

Screehot, как показать сейчас мой файл kommenter_verwalter.php , , как показать его

0 голосов
/ 20 мая 2019

Указанная выше ошибка означает, что в ' и " есть ошибки, вы их неправильно разместили, поэтому complier не может parse этой части вашего кода. Измените эту строку, как показано ниже, это должно работать:

 echo "<form action='classprove.php' method='post'>
              <tr>
               <td> '".$row["id"]."'</td>
                <td>'". $row["name"]."'</td>
                <td>'". $row["email"]."'</td>
               <td> '".$row["datetime"]."'</td>
              <td> '".$row["ip"]."'</td>
             </tr>
              </form>"; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...