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
Vi fik den løst over TV.

Problemet bestod i at id ikke var primær ej heller sat til A_I. Ergo han skulle sætte et id selv hver gang.
Kolonnen id blev slettet og en ny blev oprettet med de rigtige egenskaber, samt der blev rettet lidt små fejl i forbindelse med henvisning til den rigtige side.





Indlæg senest redigeret d. 15.10.2013 22:53 af Bruger #15663
Jeg tror lidt du har misforstået konceptet med Php. Der er ingen grund til at oprette flere filer. Hvis du gør brug af request variabler kan du hente et produkt ud på dets Id, ved altid at sende id'et frem og tilbage i adresse linien.

/produkter/?vareid=1 vil ramme filen index.php i mappen produkter i php kan du så hive id'et ud.

<?php
$vareid = &_REQUEST['vareid'];
?>

/produkter/?vareid=1 - Her vil vareid være 1
/produkter/?vareid=2 - Her vil vareid være 2
/produkter/?vareid=3 - Her vil vareid være 3
osv..

På den måde kan du med en fil fange alle produkter.



Igen det var det jeg skrev. Hent varen ind via $_GET eller $_REQUEST og brug den i din select. Listen af produkter henter du ud med en "SELECT * FROM produkter" og list dem med en while så du kører hvert enkelt produkt igennem.

echo "<a href='produkt.php?id=". $result["id"] .">". $result["navn"] ."</a>";

I produkt.php kan du så fange det enkelte produkt ( altså 1 fil til alle produkter ) med $_GET eller $_REQUEST ( $_REQUEST er en samling af $_POST og $_GET):

if (isset($_REQUEST["id"]) && filter_var($_REQUEST["id"], FILTER_VALIDATE_INT)) {
$id = $_REQUEST["id"];
} else {
// redirect tilbage til produkter.php
}

//Hent det enkelte produkt ud med en select
"SELECT * FROM produkter WHERE id=$id";


Og ja det er peseudo kode. Men jeg håber du nu forstår det jeg beskrev i det første indlæg



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 ..


$_GET og $_POST er ikke kun til forms. Du kan sagtens lave links med GET parametre uden det er forms. Det er sådan det meste af nettet fungere. Og er det mest basal man bør fatte om Web programmering.



Hej Dan,

Tak for dit svar.

Jamen i dette tilfælde er der ikke nogle forms, hvor jeg sætter en værdi ind..

Derfor forstod jeg ikke rigtig det med $_REQUEST['vareid'] - er det ikke, når den vil vise hvad man har skrevet ind i en form?

Sorry, er ikke prof. til php, forstår lidt, derfor kan det virke forvirrende..






Det er ikke særlig fedt at få lavet flere og flere filer bare til et produkt.

Det bedste er jo at give dit produkt et produktID som du kan fremkalde i php, og derfra se produkt beskrivelse mv. som pris billed og alt det der nu er oprettet til det produkt.

Det andet vil ikke give mening :)



Hej Dan,

Tak for dit svar.

Jamen i dette tilfælde er der ikke nogle forms, hvor jeg sætter en værdi ind..

Derfor forstod jeg ikke rigtig det med $_REQUEST['vareid'] - er det ikke, når den vil vise hvad man har skrevet ind i en form?

Sorry, er ikke prof. til php, forstår lidt, derfor kan det virke forvirrende..


Nej, $_POST[""] er til forms. $_REQUEST[""] kan måske også bruges, det ved jeg ikke, men den bruges i hvert fald også til at hive værdier ud af en querystring - altså den adresse der står i browserens adressefelt.




Indlæg senest redigeret d. 15.10.2013 13:18 af Bruger #16372
Så dvs. jeg opretter en hel alm. index.php i mappen produkter.

Jeg har følgende til at hente varens info fra mysql:

Fold kodeboks ind/udPHP kode 


Hvad gør jeg så, for ikke at lave en ny side hvergang jeg indsætter en ny vare i min database.

Tak.

Mvh.



Du har en opret.php (eksempel).

I den, sørger du for at oprette med eks:

<input type=text name=produkt>

Og INTO INSERT, laver den selv et ID efter rækken.
Og ud fra dette, kan du så fremkalde et produkt med

$sql = mysql_query("SELECT * FROM `shop`");
while($se= mysql_fetch_array($sql)) {

echo "$se[produkt]";
}

Bare et eksempel. Kender du intet til php, så drop at gør det selv. :)



Jeg forstår godt det du skrev, og kan godt en del php, så ikke noget problem med at forstå php'en.

Ps. det der har jeg ikke brug for. Jeg har selv lavet en side, hvor jeg inserter alle varens værdi ind i databasen med INSERT INTO og så vises de med med while funktionen. Så det du skrev har intet med dette at gøre. Ellers tak for hjælpen :)

ps. hvis du ved så meget om php, så burde du vide, at der ikke skal nogle " " rundt om en 'condition' fx echo "$se['xx']" uden gåseøjne :P



<< < 12 > >>
t