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

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

  • #16
    template.php // die Ausgabe/Anzeige
    Code:
    <!--div class="container-fluid  w-75"-->
            <div class="jumbotron">
                <div class="card mt-5">
                    <div class="card-header text-light bg-info">
                        <h4>Users</h4>
                    </div>
                    <div class="card-body ">
                        <form method="POST">
                            <div class="row ">
                            <div class="input-group input-group-sm mb-3">
                                <span id="inputGroup-sizing-sm" ></span>
                                <input type="varchar" class="form-control" name="first_name" placeholder="Vorname" value="<?=$this->first_name?>" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-sm" required>
                            </div>
                            <div class="input-group input-group-sm mb-3">
                                <span id="inputGroup-sizing-sm"></span>
                                <input type="varchar" class="form-control" name="last_name" placeholder="Nachname" value="<?=$this->last_name?>" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-sm">
                            </div>
                            <div class="input-group input-group-sm mb-3">
                                <span id="inputGroup-sizing-sm"></span>
                                <input type="smallint" minlength="2" maxlength="3" class="form-control" name="corridor" placeholder="Flur" value="<?=$this->corridor?>" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-sm" required maxlength="3">
                            </div>
                            <div class="input-group input-group-sm mb-3">
                                <span id="inputGroup-sizing-sm"></span>
                                <input type="smallint" minlength="2" maxlength="2" pattern="^[0-9]{2}$" class="form-control" name="room" placeholder="Zimmer" value="<?=$this->room?>" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-sm" required>
                            </div>
                            <div class="input-group input-group-sm mb-3">
                                <span id="inputGroup-sizing-sm"></span>
                                <input type="smallint" minlength="2" maxlength="2" pattern="^[0-9]{2}$" class="form-control" name="bed" placeholder="Bett" value="<?=$this->bed?>" aria-label="Sizing example input" aria-describedby="inputGroup-sizing-sm" required>
                                <input type="checkbox" class="btn-check" id="proven" name="proven" value="1">
                                <label class="btn btn-outline-danger" for="proven">Belegt</label>
                            </div><br>
                            <div class="col-2 overflow-hidden ">
                                <button type="submit" class="btn-sm btn-info ml-4 text-white" value="<?=$this->save_update?>" name="buttonUser"><?=$this->save_update?></button>
                                </div>
                                <input type="hidden" name="id" value="<?=$this->ID?>"  >
                            </div>
                        </form>    
                    </div>
                </div>    
                <!--INFO-->
                <h5 class="text-white"><?=$this->info?></h5>
                <div class="card mt-2">
                    <div class="card-header">
                        <form method="post">
                            <div class="input-group">
                                <input type="text" class="form-control btn-sm mt-3" name="search" placeholder="Suchen">
                                <div class="input-group-btn">
                                <button class="btn btn-info mt-3" type="submit" name="buttonUser" value="search">
                                    <i class="fa fa-search text-white"></i>
                                </button>
                                </div>
                            </div>
                        </form>
                    </div>  
                    <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>    
                </div>      
            </div>
        <!--/div-->  
        <!--script type="module" src="/App/classes/user_mvc_class/template.js"></script-->​

    Comment


    • #17
      Auf deinem Webspace steht am Anfang ein ? im HTML-Code, woher das aber kommt, kann ich dir nicht sagen. Firefox schreibt mir das in die Konsole:

      Diese Seite befindet sich im Kompatibilitätsmodus (Quirks). Das Seitenlayout kann beeinflusst werden. Verwenden Sie für den Standardmodus "<!DOCTYPE html>".

      Comment


      • #18
        Originally posted by scatello View Post
        Auf deinem Webspace steht am Anfang ein ? im HTML-Code, woher das aber kommt, kann ich dir nicht sagen. Firefox schreibt mir das in die Konsole:
        Habe das ? gefunden, hier hat es sich eingeschlichen..

        Code:
        <?php
           error_reporting(E_ALL);
           ini_set('display_errors', true);
           session_start();
        ?>?
        ​
        Danke

        Comment


        • #19
          Originally posted by reddighamburg View Post
          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)
          Habe mal den search auf $_GET umgestellt Link aber da passiert Garnichts :'(

          Wegen $this->rows habe mir die die Abfrage und Ausgabe angeschaut, und keinen Fehler oder andere Abfrage gefunden.
          Durch function search suche ich in der Datenbank z.B. nach Müller, und über gebe es dann an die Tabelle für die Ausgabe,
          Aber es wird halt alles ausgegeben und nicht nur das gesuchte. Ich steh aufn Schlauch

          Comment


          • #20
            Dass deine Suche trifft, zeigt deine Debug Ausgabe.
            Die untere Tabelle sollte daher eigentlich genau dieselben Ergebnisse anzeigen...

            ... esseidenn, es wird zwischendurch eine weitere Abfrage gemacht.
            Da du in deiner Klasse list_sql mit nem
            protected $list_sql="select * from users";
            initialisierst, würde ich spontan einfach mal tippen, dass du irgendwo ein neues Objekt instantiierst, anstatt dasselbe zu nehmen, das zuvor die suche ausgeführt hat...
            oder aber du machst noch einen weiteren aufruf irgendwo von zum Beispiel get_rows() , wo ja auch die gesamte users tabelle gepflückt wird.

            Das wirst du aber selber finden müssen, solange du immer nur Ausschnitte von deinem code teilst.
            Die Ausschnitte für sich sehen jeweils sauber aus.
            Der fehler passiert irgendwo zwischen der suche und der ausgabe.


            Comment


            • #21
              reddighamburg, sorry mein Fehler ich dachte ich hätte den Link im ersten Thread gepostet, da es PHP MVC CRUD ist sind es ja mehrere Seiten. Um die alle zu Posten finde ich unübersichtlicher.

              Comment


              • #22
                Ich bin einfach zu Blöd

                Wenn ich aus der protected function search Code am Ende.

                Folgendes in der DB-SQL versuche wird nichts gefunden.
                Code:
                SELECT * FROM users WHERE `first_name` LIKE '%'
                Bei dieser aussage bekomme ich.. obwohl ich kein LIMIT gesetzt habe??

                Code:
                SELECT * FROM users
                WHERE `first_name` LIKE :search​
                Code:
                 Fehler
                SQL-Befehl: Kopieren Dokumentation
                
                
                SELECT * FROM users
                WHERE `first_name` LIKE :search LIMIT 0, 25
                MySQL meldet: Dokumentation
                
                #1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ':search LIMIT 0, 25' in Zeile 2​​

                Wenn ich die SQL Anfrage aber so in der DB-Tabelle abrufe, bekomme ich eine Ausgabe.
                Code:
                SELECT * FROM users WHERE `first_name` LIKE 's%'
                id
                datetime
                first_name
                last_name
                corridor
                room
                bed
                proven

                Bearbeiten Bearbeiten
                Kopieren Kopieren
                Löschen Löschen
                53
                2024-01-14 19:54:37
                Sky-Kay
                Ich weiß es nicht
                01
                01
                01
                1


                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";
                
                            // Hier die Reihenfolge der Anweisungen korrigieren
                            $stmt = $this->conn()->prepare($this->list_sql);
                
                            // Versuchen, die Abfrage auszuführen
                            if ($stmt->execute(['search' => $searchTerm])) {
                                // Ergebnisse abrufen und zu $this->rows zuweisen
                                $this->rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
                
                                if (count($this->rows) > 0) {
                                    $this->info = count($this->rows) . " Ergebnisse gefunden!";
                                } else {
                                    $this->info = "Keine Ergebnisse gefunden!";
                                }
                            } else {
                                // Fehlerbehandlung, falls die Abfrage nicht erfolgreich ist
                                $errorInfo = $stmt->errorInfo();
                                $this->info = "Fehler bei der Ausführung der Abfrage: " . $errorInfo[2];
                            }
                        } else {
                            $this->info = "Suchbegriff nicht angegeben!";
                        }
                    }​

                Ich finde den Fehler nicht

                Comment


                • #23
                  Siehe
                  https://www.w3schools.com/php/php_my...statements.asp
                  oder
                  https://www.php.net/manual/de/mysqli.prepare.php

                  Beachte die Beispiele

                  Comment

                  Working...
                  X