bUTschy.de

Suchen

Zeiterfassung

Mit Vanilla PHP und Legacy Code die SQLite Datenbank befragt und die sagt:

DatumStartEndePauseZeit
23.1008:0017:00608.0
24.1008:0017:00608.0
25.1008:0017:00608.0
26.1008:0017:00608.0
27.1008:0017:00608.0
Insgesamt: 40.0 Stunden.

blockquote

Random c&p Quote´s aus der SQLite $DB

Was mich am Regen so nervt, ist seine Einstellung.
Immer von oben herab.
<cite>cite</cite>
Das Leben ist zu kurz für... Egal was!
Denke daran,
wenn wir verhaftet werden... Du bist taub und ich spreche kein Deutsch!

Quelle: /blockquote

SQL IN or NOT IN

Hey Datenbank, zeige mir nur die Daten mit der ID 6, 33 und der 47 an.

SELECT * FROM `daten` WHERE `id` IN (6,33,47)

Ne warte, anders herum...

SQL DATE_SUB() Interval

Alle Einträge von Heute, sieht in meinem Dashboard momentan so aus.

Heutige Kommentare

Auch hier konnte ich den Code weiter reduzieren.

SELECT * FROM `komm` WHERE `datum` >= DATE_SUB(CURDATE(), INTERVAL 1 DAY)

PHP Deprecated

Und noch ein PHP Deprecated ab PHP 8.1 ... wurde gerade beim refactoring der SQLite CRUD in die Fehlerlogs geschrieben. Dieses mal betrifft es meine htmlspecialchars() Funktion und komischerweise nur bei meinem SQLite Script.

Passing null to parameter #1 ($string) of type string is deprecated

Aber auch hier habe ich schnell eine Lösung gefunden und die geht so:

SQL WHERE AND

Hey Datenbank, zeige mir bitte den Inhalt der ID 6 an, aber nur, wenn der "status" 1 ist.

SELECT * FROM `daten` WHERE `status`=1 AND `id`=6

Datenbank Abfrage mit zwei oder mehr Bedingungen.

NULL Datenbank

Der NULL Werte (nicht das Wort an sich) in einer SQL Datenbank ist ein Zeichen für schlechtes Datenbank-Design. Hier sollte ein adäquater Ersatz oder die leeren Zeichenfolge ' ' verwendet werden.

CRUD SQLite

Zu verschenken... eine voll funktionsfähige CRUD in PHP für SQLite3 in Simple 🙄

public function __construct($db) {
 $this->db = new SQLite3($db);
 $this->init();
}

ALTER TABLE

Die Position der neuen Spalte acht direkt hinter die bereits existierende Spalte sieben der SQL Tabelle hinzufügen.

ALTER TABLE zahl ADD acht varchar(191) AFTER sieben;

Archiv2 v0.9

Alle Artikel nach Monat und Jahr gruppiert in einer Definitionsliste ausgeben.

SELECT Month(datum) 
AS Month, Year(datum) 
AS Year, titel, link 
FROM artikel 
WHERE status=1 
ORDER BY datum
DESC

Modul: Artikel Archive

SQL Vergleichsoperatoren

Alle Einträge deren ID kleiner als 10 ist

SELECT * FROM `daten` WHERE `id` < 10

Alle Einträge deren ID größer 10 ist

SELECT * FROM `daten` WHERE `id` >= 10

Sitemap

Ich generiere hier mal eine dynamische Sitemap mit PHP und MySQL.

https://butschy.de/seo/

sitemap

Der Inhalt dieser Sitemap ist für das menschliche Auge ungeeignet, klicken und glotzen nur auf eigene Gefahr. ?

Alle IP´s löschen

Jeder Kommentar in einem Artikel auf dieser Homepage beinhaltet auch die IP des Kommentierenden.

Will ich nach einer bestimmten Zeit diese IP´s aus allen bisherigen Kommentaren entfernen, führe ich in phpMyAdmin diesen SQL-Befehl in meiner Datenbank aus:

UPDATE kommentare SET kom_ip = ' ';

Homepage wieder Online

Tag Nummer 6, Homepage funktioniert wieder.

Schlechtester Support aller Zeiten: [...]wir möchten Ihnen mitteilen BLA unsere Technik überprüft BLA eventuelle Fehler beseitigt BLA BLA BLA... Ich hab echt nen Hals.

TinyMCE 4.3

Es gibt wieder einige Neuerungen im TinyMCE, aber immer noch kein Images-Upload bzw. einen File-Manager.

Ein bischen JS und man bekommt wenigstens ein Images-Upload ganz ohne Plugin hin.

NOT NULL DEFAULT

Wenn nun in der Datenbank-Tabelle:

`hits` int(11) NOT NULL DEFAULT '0',

Und im Script:

$hits = isset($_POST['hits']) ? trim($_POST['hits']) : 0;

Dann schreibt er auch eine 0 ?

PHP + MySQL Version

PHP + MySQL Aktualisiert.

  • PHP-Version: 5.6.14 (alt: 5.5.12)
  • phpMyAdmin 4.5.1 (alt: 4.4.61)
  • MySQL 5.5.46 (alt: 5.5.44)

Neuer Server

Mein Hoster hat meinen Account jetzt auf einen anderen schnelleren Server migriert und auch schon das DNS Update durchgeführt.

Code

<!-- html -->
<!doctype html>
<meta charset="utf-8">
<title>Titel</title>
<meta name="theme-color" content="black">
<!-- img -->
<img src="..." loading="lazy" alt="">
<!-- link -->
<a href="https://www.link.de">https://www.link.de</a>

COUNT und GROUP BY

Für eine Top 5 Liste brauche ich nur ein COUNT(*) und GROUP BY() an die Datenbank senden.

SELECT `buser`, COUNT(*) AS `zahl` FROM `box` GROUP BY `buser` ORDER BY `zahl` DESC LIMIT 5

Und schon habe ich die Top 5 Einträge und die Summe deren Einträge in einer Liste.

Hab ich in der Form schon für einige Blöck gebraucht.

Ein Box-Block

Die neusten bzw. letzten Einträge aus einer SQL Datenbank.

SELECT * FROM `daten` ORDER BY `id` DESC LIMIT 3

Zufall aus der Datenbank

Einen zufälligen Eintrag aus der Datenbank auslesen.

SELECT `titel` FROM `tabelle` ORDER BY RAND() LIMIT 1

Schon schlimm wenn man das nur mit einer Funktion RAND() erledigen kann.

DELETE mit PDO

Einen Eintrag aus der SQL Datenbank löschen, die kürzest mögliche Schreibweise:

$stmt = $db->prepare('DELETE FROM `tabelle` WHERE `id` = :id');
$stmt->execute(array(':id' => $_GET['id']));

So verwende ich es hier im 4CMS.

mysql_ ist veraltet

mysql_*

Warnung: Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wird in der Zukunft entfernt werden. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO.

MySQLi
PDO.

config.php Nr. 2

Wir wollen eine Datenbank Verbindung mit einer MySQL-Datenbank herstellen.

Unsere Daten tragen wir hier ein:

define('DBTYPE','mysql');
define('DBHOST','localhost');
define('DBNAME','dein_datenbankname');
define('DBCHAR','utf8mb4');
define('DBUSER','dein_db_username');
define('DBPASS','dein_db_passwort');

Diese übergeben wir dann an unsere Verbindung:

Archiv Block

Viel Code für so ein simplen Archiv-Block, geht aber nicht kürzer :(

SELECT Month(adatum) AS Month, Year(adatum) AS Year, 
COUNT(*) AS eintraege 
FROM artikel 
WHERE astatus=1 
GROUP BY Month(adatum), Year(adatum) 
ORDER BY adatum 
DESC

SQL RAND()

Einen zufälligen Datensatz mit RAND() aus der Datenbank holen.

SELECT `titel` FROM `daten` ORDER BY RAND() LIMIT 1

mySQL SUM

Klickt man hier auf einen der Artikel, wird dieser Klick in die Zelle aklicks in die Datenbank geschrieben und der Wert dort um einen erhöht.

Daten von Heute

Für die schnelle Übersicht zwischendurch.

SELECT * FROM `tabelle` WHERE DATE_FORMAT(`datum`, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')

Zeigt dir alle Einträge der Tabelle "tabelle" dieser Woche an.

4CMS PDO Crud

CREATE, READ, UPDATE und DELETE wie ich es hier im 4CMS verwende.

Wenn ich einen Parameter an ein Prepared Statement binde, muss ich ihn nicht escapen.

PDO::PARAM_

Hier nur kurz eine PDO Funktionsweise mit bindParam

#prepare #bindParam #execute #PDO::PARAM

Tabelle kategorie

In phpMyAdmin die Datenbank auswählen in dem unsere Tabelle kategorie hinzugefügt werden soll

SQL -> SQL-Befehl(e) in Datenbank DEINEDATENBANK ausführen.