Automatisk ny php side fra mysql

Tags:    php mysql html

<< < 12 > >>
Hej udviklere!

Nogle der kan forklare eller vise en tutorial, hvor man automatisk får en php-fil på serveren, når en nye række i en tabel bliver opdateret på mysql.

Eks.

Jeg har en side, hvor mine sider skal indgå i mappen 'produkter'

hjemmeside.dk/produkter/

Jeg vil så gerne have connected denne til min mysql med tabellen 'produkter' og ca 4 rows i denne tabel. (navn, beskrivelse, pris, billede)

Hvergang jeg indsætter en ny række i tabellen vil jeg gerne have at en ny fil mappen 'produkter' bliver lavet, fx

hjemmeside.dk/produkter/varer1.php

og når jeg indsætter en ny så,

/produkter/varer2.php

osv osv osv..

Håber nogle kan hjælpe med dette! Tak på forhånd







20 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 15 karma
Sorter efter stemmer Sorter efter dato
Jeg benytter mig af "" og '' og i nogen grunde også $error; uden noget "" '' .. Og det har intet med det du ønsker hjælp til !



E.L.N hvis jeg nu gør det du siger, skal jeg så ikke alligevel have mange php filer..

hver fil skal jo inde holde, SELECT * FROM products WHERE id='varenummer'

Hvergang jeg nu indsætter en ny vare i mysql, så skal jo også lave en ny fil, men bare ændre varenummer..

Det kan jeg godt finde ud af.. Det bare besværligt at gå ind i en fil hvergang og ændre koden og sætte ind igen... håber en kan hjælp



Undskyld mig.
Forstår du overhovedet hvad jeg skriver?.

1: Dine produkter du tilføjer som du nok "siger du kan finde ud af". Skal indebære et ID. Det id fremkaldes i whilen.

2: Du fremkalder det med mit ovenstående kode SELECT * FROM

Du skal ikke oprette flere filer hvor du skriver koden ind. Det jo det der er dårlig kode stil.

Hold dig til en fil, hvor du opretter til DATABASE med id. Hvor du udskriver produktet med det id.

Eks hvis du blot vil se eet af de mange produkter du har. Så fremkald det eks sådan her:

?seproduktet&ID=1

Så vil du se varen med ID 1.
Med

$sql = mysql_query("SELECT * FROM `shop` WHERE ID = '".$_GET['ID']."'");
$se= mysql_fetch_array($sql);

echo "$se[produkt]";

Hvis du ønsker vi skal kode det for dig, kan du jo skrive det. Nu hvor jeg ikke føler du egentlig forstår hvor jeg vil hen med dette.
Men det kræver jo du giver os din db struktur til shoppen.
Og dine shop dele, som vi kan rette i.




Dine koder forstår jeg udmærket godt. Du forklarer også rigtig godt.

Jeg prøver lige igen at forklare bedre,

Se jeg har en side /products/1.php | (indtil videre har jeg varerne i hver sin fil 1.php, 2.php, 3.php osvosv., som du selv siger er dårlig stil, hvilket også er)

Inde i hver fil (1.php) har jeg en kode, der trækker(select) alt fra tabellen products i min databasen hvor vareid=1

$result = mysqli_query($con,"SELECT * FROM products WHERE vareid = '1' ");

Nu kan jeg se du nævner noget med $_GET['id'] - her står jeg af, for jeg forstår ikke hvad det get gør, når den alligevel tager værdien af id fra tabellen id.

Håber du forstår mit problem bedre nu : )



Vil du fortsat have varerne i hver sin fil ??.

Hvis ikke, så benyt dig af en fil, som henter produkterne uden vareid.
Men med:
$result = mysqli_query($con,"SELECT * FROM products");

Så vil du få dem ud.

Mit GET er ment med hvis du vil se produktet uden at se dem alle. Så fang det produkt med GET i result. shop.php?vareid=1
Så med GET i result $result = mysqli_query($con,"SELECT * FROM products WHERE vareid = '".$_GET['vareid']."' "); vil du få produktet med det id vist.



Nåår okay

når du skriver shop.php - hvordan er den programmeret? så den på den måde laver en ?shop=x url til hver vare fra databasen



Tror ikke du forstår hvor vi vil hen !



Jeg vil prøve at simplifisere det hele en smule.

Du skal have tre filer (I hvert fald nu) (Jeg har givet dem beskrivende navne).

Opret.php
Produkt_oversigt.php
Produkt_side.php

Hver side gør noget helt unikt.
Lad os tage dem fra en ende af.

Opret.php lyder det til at du har styr på, det er den hvor du opretter varene altså INSERT INTO.

Produkt_oversigt.php
I den her fil skaber vi en oversigt over alle produkter i vores produkt tabel. Det kunne se således ud:
Fold kodeboks ind/udPHP kode 

Vi har altså nu et link for hver produkt der er i produkt tabellen.
I linket henviser vi til filen Produkt_side.php (den er dynamisk). Nu kommer det sjove efter den så kommer der nemlig ?id. Det er den som angiver et unikt id for vores produkt som vi skal bruge for at hente det korrekte produkt ud. $row['id'] henviser til feltet id i tabellen.

Produkt_side.php
Der er den som er dynamisk og som får et id med over via vores url (?id=)
Fold kodeboks ind/udPHP kode 


Jeg gør tilsidst her opmærksom på at der er store huller i koden. Forstået på den måde at der er risiko for SQL Injektion og lidt andet snavs.
Men inden du begiver dig ud i alt for meget sikkerhedsoptimering, så skal du først have det her til at virke også kan du forbedre koden.

Håber det hjalp dig noget hen af vejen, ellers må du jo sende noget kode, så gør det utvivlsomt noget nemmere at styre dig på rette vej.





Tusind tak for din forklaring Daniel!! Fornemt - meget mere forstående og gav meget mere mening!

Jeg har nu følgende kode på siden produkt_oversigt.php
Fold kodeboks ind/udPHP kode 


På siden produkt_side.php har jeg:

Fold kodeboks ind/udPHP kode 


På begge sider får jeg følgende meddelelse: (undefined index: id)


Notice: Undefined index: id in blablabla\produkt_oversigt.php on line 5

Hvad kan fejlen være her? :)

Har du evt. tid kunne det være perfekt, hvis du gad hjælpe over besked eller noget andet, måske teamviewer eller sådan..





Jeg har jo kodet det hele færdig, og det nemt nok, med select from dit dat og så vise alle produkter.

I dette tilfælde vil jeg så lave bare EN fil, i filen gemmer jeg alle produktets oplysninger fx $row['navn'] og 'pris' osv osv.

Hvis jeg nu vil have en side til hver produkt som bliver lavet i min database, hvad gør jeg så? synes ikk jeg forstod din kode dan. Her er der jo ikke noget hente fra forms osv? fatter ikk ..



<< < 12 > >>
t