Buchausleihe Skript

Anwendungen für Webseiten. Künstliche Intelligenz verwenden.
Volker
Moderator
Moderator
Beiträge: 1791
Registriert: Sa 12. Dez 2020, 22:35

Re: Buchausleihe Skript

Beitrag von Volker »

Ich hab mal das widget geändert ;)

Pagenierung und Suchfeld sind nun auch drin. Ist jetzt auch im Download.

https://www.niederastroth.de/buch_leihe.zip

Nach wie vor im widget einstellen: Pfad zur api
und auch die Anzahl der Bücher ( steht gerade auf 4 ) Kann auch 10 oder 15 sein.

Ab Zeile 347 direkt am Anfang des Script Tags.

https://www.niederastroth.de/buch/
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

schau ich mir morgen an - DANKESCHÖN und noch nen entspannten Abend !!!!!
Es kann nur einen geben - warum bin ich das nicht?
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Guten Morgen Volker,

hab das neue eingebaut - MEGA - WOW !!!!

Eine hoffentlich in dieser Sache letzte Frage (ich hoffe das steht nirgens) - wie kann ich die Pagination einstellen wieviel Bücher pro Seite angezeigt werden?

Ich muss es nochmal schreiben - bin total begeistert was daraus geworden ist - und nochmal DANKESCHÖN
Es kann nur einen geben - warum bin ich das nicht?
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Wäre ja auch zu schön gwesen.
In der alten Version habe ich die Buchcover von einem lokalen Ordner verwendet. Jetzt werden keine Grafiken mehrr angezeigt :( Was hab ich schon wieder falsch gemacht ?

https://www.shotokan-karate-dojo-neukir ... .php?del=1


User: Hubert
PW: 100355

:crying: :crying: :crying:
Es kann nur einen geben - warum bin ich das nicht?
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Es kann nur einen geben - warum bin ich das nicht?
Volker
Moderator
Moderator
Beiträge: 1791
Registriert: Sa 12. Dez 2020, 22:35

Re: Buchausleihe Skript

Beitrag von Volker »

Hat der Ordner uploads/books Lese Rechte ? 755 sollte der haben. In Filezilla Dateiberechtigungen auf den Ordner rechte Maustaste
Volker
Moderator
Moderator
Beiträge: 1791
Registriert: Sa 12. Dez 2020, 22:35

Re: Buchausleihe Skript

Beitrag von Volker »

Bushisan hat geschrieben: Do 18. Dez 2025, 11:06 Guten Morgen Volker,

hab das neue eingebaut - MEGA - WOW !!!!

Eine hoffentlich in dieser Sache letzte Frage (ich hoffe das steht nirgens) - wie kann ich die Pagination einstellen wieviel Bücher pro Seite angezeigt werden?

Ich muss es nochmal schreiben - bin total begeistert was daraus geworden ist - und nochmal DANKESCHÖN
Hatte ich ja oben bereits geschrieben ;) Musst du im widget im Code ändern, steht im Moment auf 4
const apiBase = "/buch/api";
const ITEMS_PER_PAGE = 4;
Das sin die beide Dinge die man ändern muss, kann. 1. der Pfad und 2. die Anzahl an Einträgen
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Hallo Volker,

die Berechtigung hab ich korrigiert.

die Änderungen in widget hab ich auch gemacht

Code: Alles auswählen

const apiBase = "/buch_leihe/api"; // Pfad hier anpassen !!!
  const ITEMS_PER_PAGE = 10; // Anzahl hier einstellen
Alle Engaben werden gespeichert. Bücher, ausleihe, zurückgeben usw. nach einloggen usw. - alles funktioniert. Nur nicht die Cover

Entschuldige das ich mich wieder mal so blöd anstelle - haste Di sicherlich einfacher vorgestellt :D
Es kann nur einen geben - warum bin ich das nicht?
Volker
Moderator
Moderator
Beiträge: 1791
Registriert: Sa 12. Dez 2020, 22:35

Re: Buchausleihe Skript

Beitrag von Volker »

Hast du die Bilder über das Admin hoch geladen ?
Das muss gehen !

Da stimmt was mit den Rechten nicht.
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Ich check das nachher alles nochmal :D Bis denne
Es kann nur einen geben - warum bin ich das nicht?
Volker
Moderator
Moderator
Beiträge: 1791
Registriert: Sa 12. Dez 2020, 22:35

Re: Buchausleihe Skript

Beitrag von Volker »

Ansonsten config.php und die sqlight db löschen und nochmals installieren.

Kopier mal diesen Code hier in die books.php:

Code: Alles auswählen

<?php
declare(strict_types=1);

require __DIR__ . '/db.php';
require_installed();

try {
    $pdo = db();

    $sql = "
        SELECT
            b.id,
            b.title,
            b.author,
            b.isbn,
            b.note,
            b.image,
            b.created_at,
            CASE WHEN l.id IS NULL THEN 1 ELSE 0 END AS available,
            u.name AS loaned_to,
            l.loaned_at
        FROM books b
        LEFT JOIN loans l ON l.book_id = b.id AND l.returned_at IS NULL
        LEFT JOIN users u ON u.id = l.user_id
        ORDER BY b.id DESC
    ";

    $books = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);

    /*
     * Web-BASISPFAD sicher ermitteln
     * Beispiel:
     *   /buch/api/books.php  -> /buch
     *   /buch_leihe/api/books.php -> /buch_leihe
     */
    $script = $_SERVER['SCRIPT_NAME'] ?? '';
    $baseUrl = rtrim(dirname(dirname($script)), '/');

    foreach ($books as &$b) {
        if (!empty($b['image'])) {
            // WICHTIG: nur Webpfad, kein Serverpfad!
            $b['image_url'] = $baseUrl . '/uploads/books/' . $b['image'];
        } else {
            $b['image_url'] = $baseUrl . '/assets/no-cover.svg';
        }
    }
    unset($b);

    json_response([
        'ok'    => true,
        'books' => $books
    ]);

} catch (Throwable $e) {
    json_response([
        'ok'    => false,
        'error' => $e->getMessage()
    ], 500);
}
Das scheint ein Pfadproblem. ist aber komisch das es gestern lief.
Die Bilder werden nicht gefunden weil sie nicht auf uploads/books verlinken sondern ins root :angst:

book_37c93b076c60d5b3.png:1 Failed to load resource: the server responded with a status of 404 ()
book_5287719138a77401.png:1 Failed to load resource: the server responded with a status of 404 ()
book_ac8fb138d660bd62.jpg:1 Failed to load resource: the server responded with a status of 404 ()
book_dc56fdad467f74d2.png:1 Failed to load resource: the server responded with a status of 404 ()
book_9c7fedb2973f2cca.png:1 Failed to load resource: the server responded with a status of 404 ()
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Hallo Volker,

Hab grade ein Buch angelegt. Im Ordner "buch_leihe/uploads/books" werden die Bilder angezeigt. Aber nicht in der Benutzeroberfläche.


Bild
Es kann nur einen geben - warum bin ich das nicht?
Volker
Moderator
Moderator
Beiträge: 1791
Registriert: Sa 12. Dez 2020, 22:35

Re: Buchausleihe Skript

Beitrag von Volker »

Ich hab echt keine Ahnung was jetzt los ist. Berechtigung auf 755?
Ich weiß nur das es bei mir einwandfrei läuft :confused:

Alles löschen neu Installieren, wenn dann immer noch der Fehler da ist nochmal melden.

Hast du die books.php geändert wie ich es gepostet hatte ?
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Ja hab - ich lösche alles nochmal und fang nochmal von vorne an - schönen Abend noch !!!
Es kann nur einen geben - warum bin ich das nicht?
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Guten Morgen Volker,

hab jetzt nochmal alles neu installiert. das ist alles sehr seltsam.
Wenn ich die Seite das erste mal aufrufe, dann wird mir das eingegebene Buch richtig angezeigt - auch von wem es ausgeliehen wurde.

Bild

wenn ich dann auf die Adminseite gehen um z.B. die Ausleihe zurückzugeben, dann bekomme ich auf beiden Adminseiten diese Anzeigen.


Bild


Bild
Es kann nur einen geben - warum bin ich das nicht?
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Ich kann aber auch die Vorgängerversion wieder hochladen - könnte mir shon vorstellen, das Dir das alles irgndwann auch zu dumm wird.

Gruß Hubert
Es kann nur einen geben - warum bin ich das nicht?
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Hallo Volker,

schau mal:

das ist der Link zur Grafik die nach dem Löschen des Browsercache nach ersten Aufruf angezeigt wird (in dem Menue "Bibliothek-Ausleihe" Hier mal der Link:


https://www.shotokan-karate-dojo-neukir ... 9c808b.png


wenn ich mich dann als Admin einlogge und in den Bereich "zu den Büchern" wechsel, dann wird mir die Grafik nicht mehr angezeigt und es ist folgender Link hinterlegt:

https://www.shotokan-karate-dojo-neukir ... 9c808b.png

Blöde Frage: Müsste das nicht der gleiche Link sein? Nur mal so als Gedankenstütze oder Hinweis auf nen Installationsfehler
Es kann nur einen geben - warum bin ich das nicht?
Volker
Moderator
Moderator
Beiträge: 1791
Registriert: Sa 12. Dez 2020, 22:35

Re: Buchausleihe Skript

Beitrag von Volker »

Wenn Du das alte Zip noch hast nimm das mal und kopier nur die widget.php aus dem neuen zip da rein.
Ich hatte die db.php auch geändert, kann sein das Ionos da strikter ist. Probier das mal.
Benutzeravatar
Bushisan
Mitglied (Level 10)
Mitglied (Level 10)
Beiträge: 221
Registriert: So 13. Dez 2020, 21:23
Wohnort: Neukirchen bei Sulzbach-Rosenberg
Kontaktdaten:

Re: Buchausleihe Skript

Beitrag von Bushisan »

Nee - leider nicht :crying:

Bild

sobald ich in den Adminbreich wechsle werden die Cover dort nicht angezeigt. Wenn ich dann wieder auf die Benutzerseite (s. Bild) wechsel dann werden sie dort angezeigt - halt nur nicht im Adminbereich
Es kann nur einen geben - warum bin ich das nicht?
Volker
Moderator
Moderator
Beiträge: 1791
Registriert: Sa 12. Dez 2020, 22:35

Re: Buchausleihe Skript

Beitrag von Volker »

Letzter Versuch ;)

den code hier komplett in /api/books.php ersetzen

Code: Alles auswählen

<?php
declare(strict_types=1);

require __DIR__ . '/db.php';
require_installed();

try {
    $pdo = db();

    $sql = "
        SELECT
            b.id,
            b.title,
            b.author,
            b.isbn,
            b.note,
            b.image,
            b.created_at,
            CASE WHEN l.id IS NULL THEN 1 ELSE 0 END AS available,
            u.name AS loaned_to,
            l.loaned_at
        FROM books b
        LEFT JOIN loans l ON l.book_id = b.id AND l.returned_at IS NULL
        LEFT JOIN users u ON u.id = l.user_id
        ORDER BY b.id DESC
    ";

    $books = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);

    // 🔑 robuster Web-Basispfad (funktioniert überall)
    $script  = $_SERVER['SCRIPT_NAME'] ?? '';
    $baseWeb = rtrim(dirname(dirname($script)), '/');

    foreach ($books as &$b) {
        if (!empty($b['image'])) {
            $b['image_url'] = $baseWeb . '/uploads/books/' . $b['image'];
        } else {
            $b['image_url'] = $baseWeb . '/assets/no-cover.svg';
        }
    }
    unset($b);

    json_response([
        'ok'    => true,
        'books' => $books
    ]);

} catch (Throwable $e) {
    json_response([
        'ok'    => false,
        'error' => $e->getMessage()
    ], 500);
}
Antworten

Wer ist online?

Mitglieder in diesem Forum: Amazon [Bot] und 2 Gäste