Frank James Lampard jr. Skrevet 5. mai 2010 Del Skrevet 5. mai 2010 (endret) Hei Databasen skal senere i prosessen sende en epost til vedkommende med tidligere bestillinger, men vi sliter med å finne ut av hvordan den skal skjønne at i <input type="text" /> skal stemme overens med tabellen kunde, altså fordi besøkende skal skrive inn sitt kundenummer og epost, men hvordan vet databasen at kunde_id og Email skal stemme overens med infoen som han har registrert seg med tidligere i tabellen "kunde", stemmer? Vet at det er noe som heter "kunde_id = Email", altså 1=1. Hva må vi gjøre for at den skal sjekke gjennom tabellene og se om det som brukeren har skrevet i formen, stemmer med infoen som står i tabellen? For det er først DA, den vil sende ut en epost med tidligere bestillinger. Er det en php kode, eller en SQL spørring som vet fikser dette? Eller er den linken her; http://www.anyexampl...ta_fetching.xml til noe hjelp? Er det noen av de metodene vi skal bruke for at databasen sjekker om infoen stemmer overens med det brukeren har skrevet i "field"? EDIT: Er det noe som ligger i prinsippet user registration, altså er det nesten som et log-in script vi må bruke? Må vi bruke session? må vi bruke cookies? omg, stressss! Endret 5. mai 2010 av Frank James Lampard jr. Lenke til kommentar
quantum Skrevet 5. mai 2010 Del Skrevet 5. mai 2010 Databasen din vet ingenting om html-forms, session, cookies, og den kan ikke sende email. Den kan bare lagre og gjenfinne data. Derfor burde du poste spørsmålet i et php-forum isteden. Den lille biten av dette som har å gjøre med databasen, er spørringen som skal gjenfinne brukerdata, og det er vanskelig å si noe om den når du ikke forteller hvordan tabellene din ser ut. Men eksempelvis kan det kanskje se ut som noe a'la dette, la oss si du har fått fatt i kunde_id i variablen $kunde_id (hvorfor trenger du email i tillegg? Hvis du ikke kan identifisere kunden entydig utfra kunde_id er det noe galt et sted ...) $query = sprintf("SELECT navn, adresse, blablabla from kunde where kunde_id = '%s'", mysql_real_escape_string($kunde_id)); // Perform Query $result = mysql_query($query); // Check result // This shows the actual query sent to MySQL, and the error. Useful for debugging. if (!$result) { $message = 'Invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $query; die($message); } Dette er klippt rett fra php-manualen som du sikkert har nytte av å lese. http://php.net/manual/en/function.mysql-query.php, jeg er sikker på du skjønner resten når du leser linken. good_query-greiene trenger du ikke. Lenke til kommentar
Frank James Lampard jr. Skrevet 5. mai 2010 Forfatter Del Skrevet 5. mai 2010 (endret) Dette er det jeg har kommet fram til hittil. Databasen er som følger, en SQL fil; SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; CREATE SCHEMA IF NOT EXISTS `Kunde-Produkt` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ; USE `Kunde-Produkt`; -- ----------------------------------------------------- -- Table `Kunde-Produkt`.`Postnummer` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `Kunde-Produkt`.`Postnummer` ( `Postnummer_id` CHAR(4) NOT NULL , `Poststed` VARCHAR(15) NOT NULL , PRIMARY KEY (`Postnummer_id`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `Kunde-Produkt`.`Kunde` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `Kunde-Produkt`.`Kunde` ( `Kunde_id` INT NOT NULL AUTO_INCREMENT , `Fornavn` VARCHAR(25) NOT NULL , `Etternavn` VARCHAR(25) NOT NULL , `Telefon` CHAR(12) NULL , `Email` VARCHAR(45) NOT NULL , `Adresse` VARCHAR(20) NOT NULL , `Postnummer` CHAR(4) NULL , PRIMARY KEY (`Kunde_id`) , INDEX `fk_Kunde_Postnummer` (`Postnummer` ASC) , CONSTRAINT `fk_Kunde_Postnummer` FOREIGN KEY (`Postnummer` ) REFERENCES `Kunde-Produkt`.`Postnummer` (`Postnummer_id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `Kunde-Produkt`.`Produkt` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `Kunde-Produkt`.`Produkt` ( `Produkt_id` INT NOT NULL , `Produkt_navn` VARCHAR(20) NOT NULL , `Pris` CHAR(4) NOT NULL , PRIMARY KEY (`Produkt_id`) ) ENGINE = InnoDB; -- ----------------------------------------------------- -- Table `Kunde-Produkt`.`Bestilling` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `Kunde-Produkt`.`Bestilling` ( `Bestilling_id` INT NOT NULL AUTO_INCREMENT , `Kunde_id` INT NULL , `Produkt_id` INT NOT NULL , `Dato_bestilling` DATE NULL , `Dato_betalt` DATE NULL , PRIMARY KEY (`Bestilling_id`) , INDEX `fk_Bestilling_Kunde` (`Kunde_id` ASC) , INDEX `fk_Bestilling_Produkt` (`Produkt_id` ASC) , CONSTRAINT `fk_Bestilling_Kunde` FOREIGN KEY (`Kunde_id` ) REFERENCES `Kunde-Produkt`.`Kunde` (`Kunde_id` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Bestilling_Produkt` FOREIGN KEY (`Produkt_id` ) REFERENCES `Kunde-Produkt`.`Produkt` (`Produkt_id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; Ga det deg noe mer informasjon, burde jeg gå for den snippeten du sa, eller den jeg har over? Takk for linken quantum. Endret 5. mai 2010 av Frank James Lampard jr. Lenke til kommentar
quantum Skrevet 5. mai 2010 Del Skrevet 5. mai 2010 (endret) ... Ga det deg noe mer informasjon, burde jeg gå for den snippeten du sa, eller den jeg har over? Takk for linken quantum. Post snipperten din en gang til ... Edit: nå kan jeg lese den ... vet ikke hva som skjedde, men forslaget ser helt kurant ut, bytt ut customer_id med kunde_id osv. Endret 5. mai 2010 av quantum Lenke til kommentar
Thomas. Skrevet 8. mai 2010 Del Skrevet 8. mai 2010 Det vil ikke fungere.. Bytt til: if(mysql_num_rows($Query) == 1) { send_mail(); } else { #hentet ut fler kunder med samme id å mail } 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å