Gå til innhold

Laste ned ferdiglagde php og mysql system?


Anbefalte innlegg

Holder på å lage et slags ordresystem for å prøve å komme litt inn i mysql og php.

 

Har sett litt rundt på nettet, men de fleste guider og sånt er enten alt for avansert, eller for simple (kun registrere data, og så vise det).

 

Jeg har fire tabeller:

 

Kunde - Ordre - Produkter - Selger

 

Alt det funker, og jeg har laget grensesnitt (html) for å registrere alt utenom Ordre.

Det er den som er problemet.

I bestillingsskjemaet er målet å kunne skrive inn produktnummer (ID) - problemet er da, hvordan får jeg registrert resten av opplysningene som hører med produktnummeret inn i ordretabellen?

 

Tja, litt vanskelig å forklare, derfor lurer jeg på om noen vet om noen plasser der jeg kan laste ned ferdiglagde systemer i samme sjanger som jeg har tenkt på. Altså, helst scripts som er laget for demonstrasjon - jeg skal som sagt prøve å lære meg dette, og da hjelper det ikke med avanserte scripts med forvirrende kode som egentlig ikke er nødvendig.

Endret av GeeZuZz
Lenke til kommentar
Videoannonse
Annonse
Hei,
vi kan se om jeg er til hjelp;
Bare et eksempel på hvordan du kan gjøre det. Vil tro du lærer best av å gjøre det på denne måten, da du må gjøre mye arbeid selv :scared:

Eksemplet omfatter innlogging, henting og skriving til en MySQL-database ved hjelp av PHP.
Med "ordresystemet" ditt som eksempel.


[b]mysql_login.php[/b]

[code]
$database_server="hostname";
$database_user="bruker";
$database_password="passord";
$database="database";

$db=mysql_connect($database_server, $database_user, $database_password);
mysql_select_db($database);
[/code]

[b]ny_ordre.php[/b]

Her har du skjemaet som skal fylles ut, og action="" skal hendvise til ordre_sendt.php.

[code]
<form name="ordeskjema" method="post" action="ordre_sendt.php">
[/code]

[b]ordre_sendt.php[/b]

MySQL query, vi fører inn data til databasen.

[code]
include("mysql_login.php");

mysql_query("insert into [B]dintabell[/B] (Variabel1, Variabel2)values('$Variabel1', '$Variabel2'); ");
[/code]

[b]vis_alleordrer.php[/b]

MySQL query, vi viser en liste over alle ordreidene som ligger i databasen og linker til de aktuelle ordrene.

[code]
include("mysql_login.php");

$query = "SELECT * FROM [B]dintabell[/B] ORDER BY id";
$result = mysql_query($query) or die("Ingen ordrer i databasen.");
while ($Ordre = mysql_fetch_object($result)) {
print ("
$Ordre->id :: <a href=\"vis_ordre.php?id=$Ordre->id\">$Ordre->Variabel1</a><br>
");
}
mysql_free_result($result);
if($query ==""){
echo("Ingen ordrer i databasen.");
}
[/code]

[b]vis_ordre.php[/b]

MySQL query, vi henter ut data for en spesifikk ordre.

[code]
include("mysql_login.php");

$query = "SELECT * FROM [B]dintabell[/B] where id = '" . $_GET[id] . "'";
$result = mysql_query($query) or die("Ingen ordrer i databasen.");
while ($Ordre = mysql_fetch_object($result)) {
print ("
OrdreID: $Ordre->id<br>
Variabel 1: $Ordre->Variabel1<br>
Variabel 2: $Ordre->Variabel2<br>
");
}
mysql_free_result($result);
if($query ==""){
echo("Ingen ordrer i databasen.");
}
[/code]

Still gjerne spørsmål, hvis det er noe du lurer på :sleep:
Lenke til kommentar

Takk for svar!

 

Men det jeg lurte på var egentlig hvordan ny_ordre.php fungerer.

 

Jeg vil velge et produkt i fra en liste, slik at jeg slipper å skrive inn alle opplysningene om produktet (som allerede er lagret i produkttabellen)

 

En slags form for oppslag, som jeg er vant til i Access (:()

 

I bestillingen skal ikke bare ID'en til bestillingen registreres, men alle opplysningnene om produktet.

 

Som sagt litt vanskelig å forklare...

Lenke til kommentar

Ouch, trodde du sa at du hadde gjort ferdig formskjemaet.

 

Vel, enda et eksempel;

 

ny_ordre.php

 

<form name="ny_ordre" method="post" action="ordre_sendt.php">
Variabel 1
 <input type="Variabel1" name="textfield">
 <br>
 Variabel 2
 <select name="Variabel2">
 <option value="Thing1" selected>Thing1</option>
 <option value="Thing2">Thing2</option>
 <option value="Thing3">Thing3</option>
 </select>
</form>

 

Da navnene på gjenstandene er variablene som blir brukt senere i scriptet.

Lenke til kommentar

Ja, noe sånt er planen. Thing1-2-3 er da navnet på postene i produkttabellen ("produktnavn 1-2-3") som jeg må hente ut.

 

Akkurat det skal går greit - å lage et skjema som lister opp alle produktnavnene, og registrerer et produktnavn i ordren. Men problemet er at jeg vil ikke kun registrere produktnavnet, men også alle andre opplysninger om produktet!

 

Produkttabellen er f.eks slik:

 

Prodnr.

Produktnavn

Vekt

Pris

etc.

 

I bestillingen skal altså da alle disse punktene legges inn - ved at jeg f.eks bare skriver inn produktnavnet i bestillingen!

 

Slik vil jeg ha det: Jeg skriver kun inn navn på produktet i bestillingsskjemaet.

Men bak i kulissene under innsendingen, sjekkes produktnavnet jeg "bestilte" opp i produkttabellen, og alle opplysningene som er registrert om produktet legges inn i bestillingen, i tillegg til produktnavnet.

 

Det må vel finnes en måte å automatisere dette på?

Lenke til kommentar

Ja, det kan du. Duplisere koden i ordre_sendt.php for eksempel.

Skjønner?

 

mysql_query("insert into dintabell1 (Variabel1)values('$Variabel1'); ");
mysql_query("insert into dintabell2 (Variabel2)values('$Variabel2'); ");

 

dintabell1 kan være Produktnavn og dintabell2 er f.eks. Vekt.

 

Produkt ID kommer automatisk for hvert nye innlegg i tabellen, og den henter du ut med $ordre->id.

 

Nå hadde jeg jo glemt av å nevne at du må lage en ny rad i tabellen for å få generert en ID ved hvert innlegg.

 

Raden skal se noe slik ut;

 

id int(3) NOT NULL auto_increment

Lenke til kommentar

Begynner å bli passe seint ;)

 

Det du tenker på, du får en "ny ordre" form med alle feltene som et produkt vil inneholde av felter? At man f.eks bare kan taste inn navnet på produktet alene og trykke send, så vil resten hentes opp automatisk? (Hvis det nå alt finnes i databasen)

 

Har så vidt vært borti access engang, der var det sånn filter opplegg, man skrev f.eks navnet på produktet, så filtererte den så bare de produktene med det navnet dukket opp. Er dette noe du tenker på? Kanskje ikke like dynamisk, for på en websiden måtte du ha lastet ned _all_ data fra databasen inni javascript array om du skulle fått til noe liknende.

 

Mulighet er at du har en form hvor man fyller f.eks bare litt av produktnummeret eller litt av produktnavnet. Sender formen til queryfilterproducts.php eller noe, denne vil da søke opp produkter ut fra de feltene du spesiferte, prøve å matche dette i databasen og gi deg forslag/liste på treff, slags filter ;) Deretter kan du f.eks velge riktig vare, antall varer som skal bestilles. Dette ble atter engang en teoretisk tanke/løsning/ide, gjennomføringen er nok noe du må tenke på :D

Lenke til kommentar
Ja, noe sånt er planen. Thing1-2-3 er da navnet på postene i produkttabellen ("produktnavn 1-2-3") som jeg må hente ut.

 

Akkurat det skal går greit - å lage et skjema som lister opp alle produktnavnene, og registrerer et produktnavn i ordren. Men problemet er at jeg vil ikke kun registrere produktnavnet, men også alle andre opplysninger om produktet!

 

Produkttabellen er f.eks slik:

 

Prodnr.

Produktnavn

Vekt

Pris

etc.

 

I bestillingen skal altså da alle disse punktene legges inn - ved at jeg f.eks bare skriver inn produktnavnet i bestillingen!

 

Slik vil jeg ha det: Jeg skriver kun inn navn på produktet i bestillingsskjemaet.

Men bak i kulissene under innsendingen, sjekkes produktnavnet jeg "bestilte" opp i produkttabellen, og alle opplysningene som er registrert om produktet legges inn i bestillingen, i tillegg til produktnavnet.

 

Det må vel finnes en måte å automatisere dette på?

Hva skjer da om produkt nummer 1 plutselig viser seg å veie 2kg i stedet for 1,5kg?

Da må du endre det i hver eneste bestilling også.

Det er mye bedre å ha en bestillingstabell slik:

kundeID int(3)

produktID int(3)

 

Så kjører du bare et query mot produkt-tabellen for å hente vekt, pris, osv. :)

 

SELECT * FROM produkter WHERE produktID='$produktID';

Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...