Lurifaksen Skrevet 18. desember 2003 Del Skrevet 18. desember 2003 (endret) 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 18. desember 2003 av GeeZuZz Lenke til kommentar
sfenne Skrevet 18. desember 2003 Del Skrevet 18. desember 2003 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 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å Lenke til kommentar
Lurifaksen Skrevet 18. desember 2003 Forfatter Del Skrevet 18. desember 2003 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
sfenne Skrevet 18. desember 2003 Del Skrevet 18. desember 2003 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
Lurifaksen Skrevet 18. desember 2003 Forfatter Del Skrevet 18. desember 2003 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
sfenne Skrevet 18. desember 2003 Del Skrevet 18. desember 2003 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
FuLu Skrevet 18. desember 2003 Del Skrevet 18. desember 2003 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å Lenke til kommentar
ZoRaC Skrevet 18. desember 2003 Del Skrevet 18. desember 2003 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
Lurifaksen Skrevet 18. desember 2003 Forfatter Del Skrevet 18. desember 2003 Ok... Ja det er vel kanskje ikke verdens beste idé å dobbeltlagre... Men er det noen som vet om noen ferdiglagde php/database scripts som jeg kan lære litt av? Lenke til kommentar
???????? Skrevet 18. desember 2003 Del Skrevet 18. desember 2003 Hehe. Hvis det er et sted dobbeltlagring er fyfy - så er det vel access! Ta en kikk på www.hotscripts.com der finner du både ferdige scripts og tutorials. Lenke til kommentar
Lurifaksen Skrevet 19. desember 2003 Forfatter Del Skrevet 19. desember 2003 hotscripts har masse scripts ja, men de er stort sett for avanserte til at jeg kan lære noe særlig. Finner ingen enkle mysql/php scripts. Jeg er i utgangspunktet interessert i scripts som er laget som demonstrasjon/eksempel. Lenke til kommentar
Booth Skrevet 21. desember 2003 Del Skrevet 21. desember 2003 fikk du ikke det litt lengre opp i thread'n a ? Lenke til kommentar
Lurifaksen Skrevet 21. desember 2003 Forfatter Del Skrevet 21. desember 2003 Jo men det var altfor simpelt. Jeg tenkte en pakke med alle filene klargjort, som bare legges ut på serveren, og kan kjøres. Så kan jeg se i koden hvis jeg lurer på hvordan tingene funker. Koden kan gjerne inneholde kommentarer med litt beskrivelser. Lenke til kommentar
Cucum(r) Skrevet 2. januar 2004 Del Skrevet 2. januar 2004 <input type="Variabel1" name="textfield"> kansje heller noe sånt? <input type="textfield" name="Variabell"> Just a thought.... Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå