Permalänk
Medlem

Sökbart register till hemsida?

Hej kollikok.

Jag vill ha en hemsida där man skall kunna mata in ett serienummer.
Tillbaka skall användaren få att detta serienummer, är från en tex stekpanna modell D tillverkad år 1945.

I själva databasen kommer det att ligga ett par tusen stekpannor.

HUR gör jag detta enklast?

Har sett att Wordpress har färdig modul för detta, men vem vill använda Wordpress?

Är tacksam om någon vill peka i en riktning i alla fall.

MVH
Måns

Visa signatur

__________________
Arbete: Intel Core i5-3570, 16 GB RAM, Radeon HD 6900, Win 10.
Spel: AMD Ryzen 7 2700X, 32 GB RAM, GeForce GTX 1080 Ti, Win 10.

Permalänk
Medlem

Programmerar du?

Om du är ute efter enklaste möjliga sätt och wordpress har det färdigt ser jag inte riktigt nyttan i att gå över ån efter vatten.

Permalänk
Medlem

Enklast och enklast, men att plugga hur man skriver SQL statements är en bra början. Förutsatt att du annvänder dig av en SQL databas.
Simplast skrivet skulle kunna se ut så här.

"SELECT * FROM products WHERE serialnr='123456789'"

Visa signatur

www.fckdrm.com - DRM år 2024? Ha pyttsan.

Permalänk
Avstängd

Personligen hade jag använt postgres och PHP, men det går givetvis att lösa på många sätt.

Visa signatur

AMD Ryzen 5900X, ASUS ROG Strix B550-F Gaming, Corsair RM850e, Noctua NH-D15, Corsair 64GB (2x32GB) DDR4 3600MHz CL18 Vengean, Radeon 6700 XT, Ubuntu 22.04

Permalänk
Medlem

Enklast är väl att skiva ett CGI-script bakom en uppsatt webb-server. Förslagsvis då under Linux och bash-skalet.
https://en.wikipedia.org/wiki/Common_Gateway_Interface

# Returnerar en ny webbsida med utvalda stekpannor. # Hur du får fram SerieNummer beror på hur du skriver din webbsida. FilMedStekpannor="/var/tmp/MinaStekpannor" grep "$SerieNummer" $FilMedStekpannor

Om du inte har kunskapen om hur webb-kommunikatioen ser ut så rekommenderar jag att läsa igenom detta (även om du inte tänker implementera en hel webbserver i ett skript, eller inte är hemma på Linux eller ens förstår allt - plocka brödsmulorna, så blir du mätt till slut

Building a Web server in Bash Series' Articles

Permalänk
Medlem

Supersimpelt PHP-script som gör jobbet

<?php /** CREATE TABLE `products` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `serial` VARCHAR(50) NOT NULL DEFAULT '', `title` VARCHAR(50) NOT NULL DEFAULT '', `year` VARCHAR(50) NOT NULL DEFAULT '', `created` VARCHAR(50) NOT NULL DEFAULT '', `changed` VARCHAR(50) NOT NULL DEFAULT '', PRIMARY KEY (`id`) USING BTREE ); */ $rows = []; if( ! empty($_POST["serialNumber"])) { $con = new PDO("mysql:host=localhost;dbname=stekpannor;port=3306;charset=utf8", "nisse", "1234"); $stmt = $con->prepare("SELECT * FROM products WHERE serial LIKE :serial;"); $stmt->bindValue(":serial", "%{$_POST["serialNumber"]}%"); $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_OBJ); } ?> <!DOCTYPE html> <html lang="sv" xmlns="http://www.w3.org/1999/html"> <head> <meta charset="UTF-8"> <title>Stekpannor</title> </head> <body> <form method="post"> <label for="serialNumber">Serienummer</label><br> <input type="text" id="serialNumber" name="serialNumber" /> <input type="submit" name="search" value="Sök"> </form> <?php foreach($rows as $row) { echo "{$row->title}, {$row->year}<br>"; } ?> </body> </html>

Visa signatur

MSI PRO Z790-P WIFI | Intel i9 13900K | 128 GB DDR5
GTX 4070 12 GB
WD Black SN850X 2 TB Gen 4 | 2 x 1 TB Samsung 970 EVO Plus
3 x ASUS 27" | 1 x Philips 49"

Permalänk
Medlem

Hade utan tvekan gått på en färdig lösning för något sådant här.

När vi pratar SQL…
För större tabeller:
Skriv helst inte SQL frågor som ”Select *”, ange de kolumner som ska användas i resultat set:et så slipper man overhead.
Undvik like av prestanda skäl om det inte är absolut nödvändigt.
Skapa index utifrån tänkt användning.
Primärnyckeln bör vara logisk och databärande.

Permalänk
Medlem
Skrivet av ELF:

Enklast och enklast, men att plugga hur man skriver SQL statements är en bra början. Förutsatt att du annvänder dig av en SQL databas.
Simplast skrivet skulle kunna se ut så här.

"SELECT * FROM products WHERE serialnr like '%123%'"

Lite bättre, då kan man söka på del av serienummer

Visa signatur

5700x3D | RTX 2060 Super | 2 TB M.2 | 32 GB RAM | Gigabyte DS3H| 750 WATT

Permalänk
Medlem
Skrivet av Superfrog:

Supersimpelt PHP-script som gör jobbet

Det här tror jag är den ”enklaste” lösningen. PHP går att drifta på vilken billig webbhost som helst.

Jag hade dock lagt ”databasen” direkt i koden i stället, för att slippa kladda med en riktig SQL-databas. Ett par tusen rader är ju inget att ladda in i minnet per request.

Då är det enda man behöver lära sig att driftsätta ett PHP-program (en enda fil) till en webbserver. Elegant och skalbart blir det inte, men det blir antagligen inte ”enklare” än så.

Permalänk
Medlem
Skrivet av Superfrog:

Supersimpelt PHP-script som gör jobbet

<?php /** CREATE TABLE `products` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `serial` VARCHAR(50) NOT NULL DEFAULT '', `title` VARCHAR(50) NOT NULL DEFAULT '', `year` VARCHAR(50) NOT NULL DEFAULT '', `created` VARCHAR(50) NOT NULL DEFAULT '', `changed` VARCHAR(50) NOT NULL DEFAULT '', PRIMARY KEY (`id`) USING BTREE ); */ $rows = []; if( ! empty($_POST["serialNumber"])) { $con = new PDO("mysql:host=localhost;dbname=stekpannor;port=3306;charset=utf8", "nisse", "1234"); $stmt = $con->prepare("SELECT * FROM products WHERE serial LIKE :serial;"); $stmt->bindValue(":serial", "%{$_POST["serialNumber"]}%"); $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_OBJ); } ?> <!DOCTYPE html> <html lang="sv" xmlns="http://www.w3.org/1999/html"> <head> <meta charset="UTF-8"> <title>Stekpannor</title> </head> <body> <form method="post"> <label for="serialNumber">Serienummer</label><br> <input type="text" id="serialNumber" name="serialNumber" /> <input type="submit" name="search" value="Sök"> </form> <?php foreach($rows as $row) { echo "{$row->title}, {$row->year}<br>"; } ?> </body> </html>

Nu var det längesen jag pillade PHP så kan ha fel här och det gör ingen större skillnad ändå men mest nyfiken:
Kan man inte lägga en associativ array direkt i execute?

$stmt->execute([':serial' => '%{$_POST["serialNumber"]}%']);

Permalänk
Medlem

Hej igen.

Nu har jag pluggat lite och kollat upp och fått fart på en SQL-databas.
Ni som svarade mig är guld värda och blev den fot i baken som behövdes.

Testade WordPress och lovar att aldrig röra det igen.

Nej, jag har aldrig programmerat SQL och PHP.
Har viss kunskap i HTML och CSS, och har gjort några hemsidor.
Men nu tog det stop här i kunskap

Gjorde en liten sida om hur jag vill att det skall se ut:
https://ciao.snibb.se/hindex.html

Visa signatur

__________________
Arbete: Intel Core i5-3570, 16 GB RAM, Radeon HD 6900, Win 10.
Spel: AMD Ryzen 7 2700X, 32 GB RAM, GeForce GTX 1080 Ti, Win 10.

Permalänk
Medlem

Ett tips är att ställa din fråga till chatGPT (AI) och vilket språk du vill använda så fixar den det åt dig. Ställ frågan på engelska så tror jag det blir bättre svar