Webseite, Funktioniert -> Lokal, auf blaced aber nicht beim eigenen Webspace?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Webseite, Funktioniert -> Lokal, auf blaced aber nicht beim eigenen Webspace?

    Hallo Liebe Community,

    Vorab, ich habe schon mehrere Seiten erstellt auch mit Datenbank Anbindungen.

    Folgendes Problemchen ich habe eine Seite mit Tabellen im Bootstrap Style (CRUD)
    Lokal funktioniert die Seite einwandfrei, sowie auf dem FreeHoster bplaced.net, nur auf meinem Webspace wird die Seite ohne den Tabellen angezeigt?

    DBConnect Daten habe ich Zwei xy-mal überprüft, sowie den Bezug im Script * from .... sowie die Tabellen in der DB.
    Habe auch extra auf die Schreibweisen geachtet, aber ich komme nicht an Ziel :'(

    Auf beiden läuft MySQL, PHP 8.0....

    Zu den Seiten...

    blaced wo es Funktioniert : Link

    Mein Webspace (Testseite) wo es Funktionieren soll : Link

    Ich würde mich freuen wenn mir jemand helfen könnte

    Danke schonmal
    Grüssle
    Sky-Kay
    i use VSC Wampserver64 HeidiSQL

  • #2
    Mit diesen Infos kann man so gut wie nichts anfangen. Ohne das entsprechende Script zu kennen, wird dir niemand helfen können. Und: hast du das Error-Reporting im Script hochgedreht? Also die Zeilen am Anfang:
    PHP Code:
    <?php
    error_reporting
    (E_ALL);
    ini_set('display_errors'true);

    Comment


    • #3
      scatello, danke erstmal ^^ manchmal sieht man den Wald vor lauter Bäume nicht. Hab mal....

      Code:
      <?php
         error_reporting(E_ALL);
         ini_set('display_errors', true);
         session_start();
      ?>​
      eingefügt. und siehe da ein paar Fehler.

      ..EDIT..

      aber ich verstehe nicht warum es auf dem einen Space und Lokal Funktioniert, und auf dem anderen Space nicht????
      Last edited by Sky-Kay; 22-10-2023, 18:11.

      Comment


      • #4
        Originally posted by Sky-Kay View Post
        aber ich verstehe nicht warum
        Ich auch nicht, zumindest solange, bis du uns die Fehlermeldungen und den Quellcode zeigst. Hellseher haben wir hier nämlich nicht.

        Comment


        • #5
          Moin, musste gestern los und habe denn Quellcode vergessen einzustellen
          aber da isser

          Code:
          <?php
             error_reporting(E_ALL);
             ini_set('display_errors', true);
             session_start();
          ?>
          <?php
             include_once $_SERVER["DOCUMENT_ROOT"].'/App/autoloader.php';
          ?>
          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Test-Tab-2-CRUD</title>
          
              <!-- Bootstrap 5 CSS -->
              <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
          
              <!-- font-awesome -->
              <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
          
          </head>
          <body class="bg-primary">
              <!-- Navbar -->
            <nav class="navbar navbar-expand-lg navbar-dark bg-secondary">
              <div class="container">
                <a class="navbar-brand" href="index.php">Navbar</a>
                <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
                  <span class="navbar-toggler-icon"></span>
                </button>
                <div class="collapse navbar-collapse" id="navbarNav">
                  <ul class="navbar-nav">
                    <li class="nav-item">
                      <a class="nav-link" aria-current="page" href="site_user.php">User</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="site_product.php">Products</a>
                    </li>
                    <li class="nav-item">
                      <a class="nav-link" href="site_beides.php">Beides</a>
                    </li>
                  </ul>
                </div>
              </div>
            </nav>
            <div class="container">
          
          
          ​
          Fehlermeldungen Online

          Code:
          [B]Warning[/B]: include_once(/var/www/vhosts/de-kay.de/test.de-kay.de/App/autoloader.php): Failed to open stream: No such file or directory in [B]/var/www/vhosts/de-kay.de/test.de-kay.de/phpcrud/head.php[/B] on line [B]7[/B]
          
          [B]Warning[/B]: include_once(): Failed opening '/var/www/vhosts/de-kay.de/test.de-kay.de/App/autoloader.php' for inclusion (include_path='.:/opt/plesk/php/8.0/share/pear') in [B]/var/www/vhosts/de-kay.de/test.de-kay.de/phpcrud/head.php[/B] on line [B]7[/B]​
          Last edited by Sky-Kay; 23-10-2023, 08:52.

          Comment


          • #6
            Och Menno!!!! Was soll man damit jetzt anfangen? Immer noch keine Fehlermeldung und kein Quellcode, der in der Fehlermeldung genannt wird.

            Comment


            • #7
              Originally posted by Sky-Kay View Post
              Moin, musste gestern los und habe denn Quellcode vergessen einzustellen
              aber da isser

              Code:
              <?php
              error_reporting(E_ALL);
              ini_set('display_errors', true);
              session_start();
              ?>
              <?php
              include_once $_SERVER["DOCUMENT_ROOT"].'/App/autoloader.php';
              ?>
              <!DOCTYPE html>
              <html lang="en">
              <head>
              <meta charset="UTF-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Test-Tab-2-CRUD</title>
              
              <!-- Bootstrap 5 CSS -->
              <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
              
              <!-- font-awesome -->
              <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
              
              </head>
              <body class="bg-primary">
              <!-- Navbar -->
              <nav class="navbar navbar-expand-lg navbar-dark bg-secondary">
              <div class="container">
              <a class="navbar-brand" href="index.php">Navbar</a>
              <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
              <span class="navbar-toggler-icon"></span>
              </button>
              <div class="collapse navbar-collapse" id="navbarNav">
              <ul class="navbar-nav">
              <li class="nav-item">
              <a class="nav-link" aria-current="page" href="site_user.php">User</a>
              </li>
              <li class="nav-item">
              <a class="nav-link" href="site_product.php">Products</a>
              </li>
              <li class="nav-item">
              <a class="nav-link" href="site_beides.php">Beides</a>
              </li>
              </ul>
              </div>
              </div>
              </nav>
              <div class="container">
              
              
              ​
              Fehlermeldungen Online

              Code:
              [B]Warning[/B]: include_once(/var/www/vhosts/de-kay.de/test.de-kay.de/App/autoloader.php): Failed to open stream: No such file or directory in [B]/var/www/vhosts/de-kay.de/test.de-kay.de/phpcrud/head.php[/B] on line [B]7[/B]
              
              [B]Warning[/B]: include_once(): Failed opening '/var/www/vhosts/de-kay.de/test.de-kay.de/App/autoloader.php' for inclusion (include_path='.:/opt/plesk/php/8.0/share/pear') in [B]/var/www/vhosts/de-kay.de/test.de-kay.de/phpcrud/head.php[/B] on line [B]7[/B]​
              Verstehe ich nicht? Oben ist doch der Quellcode von der head.php wo der Fehler sein soll, darunter ist die Fehlermeldung?

              Was ich noch anbieten kann ist, das komplette script (mehrere Seite) als WinRAR zum Download --> klick hier

              Oder ich Poste jede Seite mit den Skripts einzeln.. dauert aber ein bisschen

              Ich weiß nicht welche Anforderungen gesetzt sind um ein Bild Hochzuladen? hier mal ein Link zum Bild --> http://test.de-kay.de/phpcrud/test.de-kay.de.jpg
              Last edited by Sky-Kay; 23-10-2023, 16:35.

              Comment


              • #8
                Failed to open stream: No such file or directory
                Das sagt doch alles aus, die Datei App/autoloader.php wird nicht gefunden. Datei wirklich vorhanden? Groß/Keinschreibung korrekt?

                Comment


                • #9
                  Aber genau das ist doch das Problem, das es kein Tippfehler wegen Groß/Kleinschreibung sein kann

                  Lokal Funktioniert alles, dann hab ich alles auf meinen Webspace Uploadet, Datenbank und Tabellen schon angelegt (db_connect verbindungen unterschiedlich). Und dann hab ich die Fehlermeldungen gesehen.
                  Script mehrmals durchgeschaut, auch mit Haltepunkte und Debug.

                  Dann hab ich alles auf bplaced Upgeloadet, selbes procedere, mit DB und Tabellen angelegt.
                  Und da wird alles Fehlerfrei angezeigt, ich kann Daten erfassen, Updaten, Löschen.

                  Wenn das Selbe Script auf dem einen Webhoster läuft und auf dem anderen nicht dann weiß ich nicht weiter

                  Comment


                  • #10
                    Das Problem liegt ja hier:

                    PHP Code:
                    include_once $_SERVER["DOCUMENT_ROOT"].'/App/autoloader.php'
                    Wenn es das Verzeichnis App und die Datei autoloader.php gibt, Groß/Kleinschreibung richtig ist, dann kann es ja nur noch an $_SERVER["DOCUMENT_ROOT"] liegen. Erstelle mal dieses kleine Script:
                    PHP Code:
                    <?php
                       phpinfo
                    ();
                    ?>
                    und kopiere es auf den Server ins gleiche Verzeichnis. Dann rufst du es im Browser auf und vergleichst alle Pfade, die du in der Ausgabe findest.

                    Comment


                    • #11
                      ich komme dem Ziel näher ^^ nur hänge ich bei fast jeden klick....

                      PHP Code:
                      Fatal errorUncaught PDOExceptionSQLSTATE[22007]: Invalid datetime format1366 Incorrect integer value'Hallo' for column `mydb`.`users`.`first_nameat row 1 in /var/www/vhosts/de-kay.de/test.de-kay.de/phpcrud/App/classes/user_mvc_class/Model.class.php:34 Stack trace#0 /var/www/vhosts/de-kay.de/test.de-kay.de/phpcrud/App/classes/user_mvc_class/Model.class.php(34): PDOStatement->execute() #1 /var/www/vhosts/de-kay.de/test.de-kay.de/phpcrud/App/classes/user_mvc_class/Control.class.php(11): App\classes\user_mvc_class\Model->save() #2 /var/www/vhosts/de-kay.de/test.de-kay.de/phpcrud/site_user.php(11): App\classes\user_mvc_class\Control->__construct() #3 {main} thrown in /var/www/vhosts/de-kay.de/test.de-kay.de/phpcrud/App/classes/user_mvc_class/Model.class.php on line 34​ 

                      Comment


                      • #12
                        Da scheinen deine Datenbank-Tabellen ja nicht zu passen. Die DB erwartet an einer Stelle ein datetime, bekommt aber ein 1366 was definitiv kein datetime, sondern z.B. ein integer ist. An anderer Stelle erwartet sie einen solchen integer Wert, bekommt aber ein "Hallo", was tatsächlich ja ein CHAR / VARCHAR wäre.

                        Deine Datenbanktabellen passen nicht zu deinem Datenmodell.

                        Comment


                        • #13
                          Hallo zusammen und ein Gesundes neues Jahr, ich melde mich mal nach Gesundheitlichen Problemen zurück.



                          Originally posted by reddighamburg View Post
                          Da scheinen deine Datenbank-Tabellen ja nicht zu passen. Die DB erwartet an einer Stelle ein datetime, bekommt aber ein 1366 was definitiv kein datetime, sondern z.B. ein integer ist. An anderer Stelle erwartet sie einen solchen integer Wert, bekommt aber ein "Hallo", was tatsächlich ja ein CHAR / VARCHAR wäre.

                          Deine Datenbanktabellen passen nicht zu deinem Datenmodell.
                          reddighamburg , da haste recht gehabt mit den Datenbank-Tabellen *ichvolldussel* ich hatte...

                          Code:
                          id int
                          first_name int 50
                          last_name int 50
                          Ist jetzt geändert ich habe den code bei users ein wenig ausgebaut, und es passt auch soweit alles.

                          Nur beim Suchen und der Ausgabe/Anzeigen der suche hänge ich fest ich habe auch schon ein paar Debbuging echos eingefügt, um den Fehler zu finden.

                          Beispiel:

                          Ich suche nach Müller, dann soll auch nur alles mit Müller angezeigt werden. Aber zurzeit wird alles aus der Tabelle users angezeigt.
                          Eintragen, Bearbeiten, Editieren und Löschen Funktioniert alles einwandfrei.


                          Hier mal der Suchen code
                          Code:
                              protected function search() {
                                  if (isset($_POST['search']) && !empty(trim($_POST['search']))) {
                                      $searchTerm = "%" . $_POST['search'] . "%";
                          
                                      // SQL-Statement vorbereiten
                                      $this->list_sql = "SELECT * FROM users
                                      WHERE `first_name` LIKE :search
                                      OR `last_name` LIKE :search
                                      OR `corridor` LIKE :search
                                      OR `room` LIKE :search
                                      OR `bed` LIKE :search";
                          
                                      // Debug-Ausgaben für SQL-Statement und Suchbegriff
                                      echo "SQL-Statement: " . $this->list_sql . "<br>";
                                      echo "Suchbegriff: " . $searchTerm . "<br>";
                          
                                      $stmt = $this->conn()->prepare($this->list_sql);
                                      $stmt->bindParam(':search', $searchTerm, PDO::PARAM_STR);
                          
                                      if (!$stmt->execute()) {
                                          echo "Fehler bei der Ausführung der Abfrage: " . print_r($stmt->errorInfo(), true);
                                          return;
                                      }
                          
                                      // Ergebnisse abrufen und zu $this->rows zuweisen
                                      $this->rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
                          
                                      // Debug-Ausgabe für die zurückgegebenen Ergebnisse
                                      echo "Anzahl der zurückgegebenen Ergebnisse: " . count($this->rows) . "<br>";
                                      echo "Ausgegebene Daten: <pre>" . print_r($this->rows, true) . "</pre>";
                          
                                      if (count($this->rows) > 0) {
                                          $this->info = count($this->rows) . " Ergebnisse gefunden!";
                                      } else {
                                          $this->info = "Keine Ergebnisse gefunden!";
                                      }
                                  } else {
                                      $this->info = "Suchbegriff nicht angegeben!";
                                  }
                              }​
                          Und hier der abschnitt von der ausgabe

                          Code:
                                          <div class="card-body">
                                              <table class="table table-striped ">
                                                  <thead class="bg-secondary text-light">
                                                  <tr>
                                                      <th scope="col">Uhrzeit / Datum</th>
                                                      <th scope="col">Vorname</th>
                                                      <th scope="col">Nachname</th>
                                                      <th scope="col">Flur</th>
                                                      <th scope="col">Zimmer</th>
                                                      <th scope="col">Bett</th>
                                                      <th scope="col">Belegt</th>
                                                      <th scope="col" class=" d-flex justify-content-end pe-3">Aktionen</th>
                                                  </tr>
                                                  </thead>
                                                  <?php foreach ($this->rows as $row) : ?>
                                                      <tr class="t-row">
                                                  <?php
                                                      // Convert the stored date and time to the desired format
                                                      $dateTimeObject = new DateTime($row['datetime']); // Convert the string datetime to a DateTime object
                                                      $formattedDate = $dateTimeObject->format('d.m.Y'); // Format the date as 25.12.2023
                                                      $formattedTime = $dateTimeObject->format('H:i'); // Format the time as 18:19 // + sec. :s // 18:19:20
                                                  ?>
                                                      <td><?= $formattedTime ?> Uhr <?= $formattedDate ?></td>
                                                      <td><?=htmlspecialchars($row['first_name'])?></td>
                                                      <td><?=htmlspecialchars($row['last_name'])?></td>
                                                      <td><?= sprintf('%02d', htmlspecialchars($row['corridor'])) ?></td> <!-- Führende Null für Flur -->
                                                      <td><?= sprintf('%02d', htmlspecialchars($row['room'])) ?></td> <!-- Führende Null für Zimmer -->
                                                      <td><?= sprintf('%02d', htmlspecialchars($row['bed'])) ?></td> <!-- Führende Null für Bett -->
                                                      <td>
                                                      <?php if ($row['proven'] == 1): ?>
                                                          <input type="checkbox" class="btn-check" id="checkbox<?= $row['id'] ?>" checked disabled>
                                                          <label class="btn btn-outline-danger btn-sm" for="checkbox<?= $row['id'] ?>">Belegt</label>
                                                      <?php else: ?>
                                                          <input type="checkbox" class="btn-check" id="checkbox<?= $row['id'] ?>" disabled>
                                                          <label class="btn btn-outline-success btn-sm" for="checkbox<?= $row['id'] ?>">Frei</label>
                                                      <?php endif; ?>
                                                     </td>
                                                     <td class="d-flex justify-content-end align-items-center" style="height: 50px;">
                                                          <form method="POST" >
                                                              <input type="hidden" name="id" value="<?=$row['id']?>" >
                                                              <button type="submit" class="btn btn-info text-white btn-sm mt-3" value="edit" name="buttonUser">Bearbeiten</button>
                                                              <button type="submit" class="btn btn-danger ml-2 btn-sm mt-3" value="delete" name="buttonUser">Löschen</button>
                                                          </form>
                                                      </td>
                                                  </tr>
                                                  <?php endforeach ?>
                                              </table>
                                          </div>​
                          Ich weis nicht mehr weiter habt ihr eine idee?

                          Danke Grüssle
                          Sky-Kay
                          Last edited by Sky-Kay; 06-01-2024, 14:33.

                          Comment


                          • #14
                            Frohes neues!

                            Ich sehe spontan keinen Fehler, der ins Auge springt.

                            Bist du dir sicher, dass "search" das richtige Formularfeld ist, in den der Suchbegriff eingegeben wird?
                            Was passiert, wenn du zum testen einfach mal ganz platt auf $_GET umstellst, und den Suchbegriff von Hand an die URL dran hängst?

                            Du hast ja an zwei Stellen Debug-Ausgaben mit drin.
                            Passen die zur Erwartung?

                            Also insbesondere das
                            PHP Code:
                            echo "Suchbegriff: " $searchTerm "<br>"
                            aber auch das:
                            PHP Code:
                            echo "Anzahl der zurückgegebenen Ergebnisse: " count($this->rows) . "<br>";
                            echo 
                            "Ausgegebene Daten: <pre>" print_r($this->rowstrue) . "</pre>";​ 
                            Wenn das da oben schon schief läuft, dann ist vermutlich schon bei der Suche selbst ein Fehler.

                            Wenn dort noch alles stimmt, aber dann weiter unten trotzdem die ganze liste ausgegeben wird, dann funkt dazwischen noch irgendwas quer...
                            Bist du dir sicher, dass zwischen dem Abfrage-Abschnitt und dem Ausgabe-Abschnitt nicht irgendwo $this->rows überschrieben wird (weil du ggf. zwischendurch noch eine andere Abfrage ausführst)

                            Comment


                            • #15
                              Es ist das suchen feld, und bei den echos wird das angezeigt was ich suche. Hier mal die kompletten Codes

                              Modell.class.php // ist das CRUD
                              Code:
                              <?php
                              namespace mydb\App\classes\user_mvc_class;
                              use mydb\App\classes\abstractClasses\AbstractCrud;
                              use PDO;
                              use PDOException;
                              class Model extends AbstractCrud {
                                  //private $conn;
                                  protected $rows;
                                  protected $datetime=null;
                                  protected $first_name=null;
                                  protected $last_name=null;
                                  protected $corridor=null;
                                  protected $room=null;
                                  protected $bed=null;
                                  protected $proven=null;
                                  protected $ID=null;
                                  protected $list_sql="select * from users";
                                  protected $param=[];
                                  protected $info = "";
                                  protected $save_update="save";
                                  protected $action="none";
                              
                                  //function __construct(){
                                    //  $this->conn(); //nicht notwendig, da die Verbindung über den Methodaufruf conn() erfolgt!
                                  //}
                              
                                  protected function get_rows(){
                                      $this->list_sql = "SELECT * FROM users ORDER BY datetime DESC"; // Fügt die ORDER BY Klausel hinzu
                                      $stmt = $this->conn()->prepare($this->list_sql);
                                      $stmt->execute($this->param);
                                      $this->rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
                                  }
                              
                                  protected function save(){
                                      // Überprüfen, ob die anderen Felder leer sind
                                      if($_POST['first_name']=="" || $_POST['last_name']=="" || $_POST['corridor']=="" || $_POST['room']=="" || $_POST['bed']=="") {
                                          $this->info = "Füllen Sie bitte alle Felder aus!";
                                          return;
                                      }  
                              
                                      // Überprüfen, ob ein Eintrag bereits vorhanden ist
                                      $checkSql = "SELECT * FROM users WHERE first_name = :first_name AND last_name = :last_name AND corridor = :corridor AND room = :room AND bed = :bed";
                                      $checkStmt = $this->conn()->prepare($checkSql);
                                      $checkStmt->execute([
                                          ':first_name' => $_POST['first_name'],
                                          ':last_name' => $_POST['last_name'],
                                          ':corridor' => $_POST['corridor'],
                                          ':room' => $_POST['room'],
                                          ':bed' => $_POST['bed']
                                      ]);
                              
                                      $provenValue = isset($_POST['proven']) ? 1 : 0;  // Wert von proven basierend auf Checkbox-Status
                              
                                      if ($checkStmt->rowCount() > 0) {
                                          // Wenn ein Eintrag gefunden wird, dann prüfen Sie, ob proven bereits aktiviert ist
                                          $existingEntry = $checkStmt->fetch(PDO::FETCH_ASSOC);
                              
                                          // Wenn proven nicht aktiviert ist, dann aktualisieren Sie es
                                          if ($existingEntry['proven'] != 1) {
                                              $updateSql = "UPDATE users SET proven = :proven, datetime = NOW() WHERE first_name = :first_name AND last_name = :last_name AND corridor = :corridor AND room = :room AND bed = :bed";
                                              $updateStmt = $this->conn()->prepare($updateSql);
                                              $updateStmt->execute([
                                                  ':proven' => $provenValue,
                                                  ':first_name' => $_POST['first_name'],
                                                  ':last_name' => $_POST['last_name'],
                                                  ':corridor' => $_POST['corridor'],
                                                  ':room' => $_POST['room'],
                                                  ':bed' => $_POST['bed']
                                              ]);
                              
                                              if ($updateStmt->rowCount() > 0) {
                                                  $this->info = "Eintrag aktualisiert!";
                                              } else {
                                                  $this->info = "Fehler beim Aktualisieren!";
                                              }
                                          } else {
                                              // Nur andere Felder aktualisieren, nicht proven
                                              $updateSql = "UPDATE users SET datetime = NOW() WHERE first_name = :first_name AND last_name = :last_name AND corridor = :corridor AND room = :room AND bed = :bed";
                                              $updateStmt = $this->conn()->prepare($updateSql);
                                              $updateStmt->execute([
                                                  ':first_name' => $_POST['first_name'],
                                                  ':last_name' => $_POST['last_name'],
                                                  ':corridor' => $_POST['corridor'],
                                                  ':room' => $_POST['room'],
                                                  ':bed' => $_POST['bed']
                                              ]);
                              
                                              if ($updateStmt->rowCount() > 0) {
                                                  $this->info = "Eintrag aktualisiert, proven wurde nicht geändert!";
                                              } else {
                                                  $this->info = "Fehler beim Aktualisieren!";
                                              }
                                          }
                                      } else {
                                          // Neuen Eintrag hinzufügen
                                          $sql = "INSERT INTO users (datetime, first_name, last_name, corridor, room, bed, proven) VALUES (NOW(), :first_name, :last_name, :corridor, :room, :bed, :proven)";
                                          $stmt = $this->conn()->prepare($sql);
                                          $stmt->execute([
                                              ':first_name' => $_POST['first_name'],
                                              ':last_name' => $_POST['last_name'],
                                              ':corridor' => $_POST['corridor'],
                                              ':room' => $_POST['room'],
                                              ':bed' => $_POST['bed'],
                                              ':proven' => $provenValue
                                          ]);
                              
                                          if($stmt->rowCount() > 0) {
                                              $this->info = "Datensatz wurde gespeichert!";
                                          } else {
                                              $this->info = "Kein Datensatz gespeichert!";
                                          }
                                      }
                                  }
                              
                              
                                  protected function edit() {
                                      $this->save_update = "update";
                                      if (isset($_POST['id'])) {
                                          $sql = "SELECT * FROM users WHERE ID=:id";
                                          $stmt = $this->conn()->prepare($sql);
                                          $stmt->execute(['id' => $_POST['id']]);
                                          $row = $stmt->fetch(PDO::FETCH_ASSOC);
                              
                                          if ($row) {
                                              $this->first_name = $row['first_name'];
                                              $this->last_name = $row['last_name'];
                                              $this->corridor = $row['corridor'];
                                              $this->room = $row['room'];
                                              $this->bed = $row['bed'];
                                              $this->proven = $row['proven'];
                                              $this->ID = $row['id'];
                                          } else {
                                              $this->info = "Datensatz nicht gefunden!";
                                          }
                                      } else {
                                          $this->info = "ID nicht gesetzt!";
                                      }
                                  }
                              
                                  protected function update(){
                                      if (!isset($_POST['id'])) {
                                          $this->info = "ID nicht gesetzt!";
                                          return;
                                      }
                              
                                      // Überprüfen, ob 'proven' im $_POST Array gesetzt ist
                                      $provenValue = isset($_POST['proven']) ? $_POST['proven'] : 0;
                              
                                      $sql = "UPDATE users SET datetime = NOW(), first_name = :first_name, last_name = :last_name, corridor = :corridor, room = :room, bed = :bed, proven = :proven WHERE ID = :id";
                                      $stmt = $this->conn()->prepare($sql);
                              
                                      $stmt->execute([
                                          'first_name' => $_POST['first_name'],
                                          'last_name' => $_POST['last_name'],
                                          'corridor' => $_POST['corridor'],
                                          'room' => $_POST['room'],
                                          'bed' => $_POST['bed'],
                                          'proven' => $provenValue,  // Verwenden Sie hier den überprüften Wert
                                          'id' => $_POST['id']
                                      ]);
                              
                                      if ($stmt->rowCount() > 0) {
                                          $this->info = $stmt->rowCount() . " Datensatz verändert!";
                                      } else {
                                          $this->info = "Kein Datensatz verändert/gespeichert!";
                                      }
                                  }
                              
                                  protected function delete(){
                                      $sql = "DELETE FROM users WHERE ID=:id";
                                      $stmt = $this->conn()->prepare($sql);
                                      $stmt->execute(['id'=>$_POST['id']]);
                                      if ($stmt->rowCount() > 0) $this->info = $stmt->rowCount() . " Datensatz gelöscht!";
                                      else $this->info = "Der Datensatz wurde nicht gelöscht!";
                                  }
                              
                              
                                  protected function search() {
                                      if (isset($_POST['search']) && !empty(trim($_POST['search']))) {
                                          $searchTerm = "%" . $_POST['search'] . "%";
                              
                                          // SQL-Statement vorbereiten
                                          $this->list_sql = "SELECT * FROM users
                                          WHERE `first_name` LIKE :search
                                          OR `last_name` LIKE :search
                                          OR `corridor` LIKE :search
                                          OR `room` LIKE :search
                                          OR `bed` LIKE :search";
                              
                                          // Debug-Ausgaben für SQL-Statement und Suchbegriff
                                          echo "SQL-Statement: " . $this->list_sql . "<br>";
                                          echo "Suchbegriff: " . $searchTerm . "<br>";
                              
                                          $stmt = $this->conn()->prepare($this->list_sql);
                                          $stmt->bindParam(':search', $searchTerm, PDO::PARAM_STR);
                              
                                          if (!$stmt->execute()) {
                                              echo "Fehler bei der Ausführung der Abfrage: " . print_r($stmt->errorInfo(), true);
                                              return;
                                          }
                              
                                          // Ergebnisse abrufen und zu $this->rows zuweisen
                                          $this->rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
                              
                                          // Debug-Ausgabe für die zurückgegebenen Ergebnisse
                                          echo "Anzahl der zurückgegebenen Ergebnisse: " . count($this->rows) . "<br>";
                                          echo "Ausgegebene Daten: <pre>" . print_r($this->rows, true) . "</pre>";
                              
                                          if (count($this->rows) > 0) {
                                              $this->info = count($this->rows) . " Ergebnisse gefunden!";
                                          } else {
                                              $this->info = "Keine Ergebnisse gefunden!";
                                          }
                                      } else {
                                          $this->info = "Suchbegriff nicht angegeben!";
                                      }
                                  }
                              }​

                              Comment

                              Working...
                              X