*************************************************************************
*Title: Besvarelse af opgavesætet PS8 *
* *
*Author: Jesper R. Selknæs *
* *
*Status: Skidtet viker sgu *
*************************************************************************
*************************************************************************
*Opgave:PS8A: Datamodel *
* *
*File: http://www.itu.dk/people/selknaes/ps8/datamodel.sql *
* *
*Status: Ingen problemer, alt virker. *
*************************************************************************
DROP TABLE IF EXISTS parties;
DROP TABLE IF EXISTS guests;
CREATE TABLE parties (
partyid INT PRIMARY KEY AUTO_INCREMENT,
header VARCHAR(200),
body TEXT,
partydate DATETIME
)ENGINE=INNODB;
CREATE TABLE guests(
guestid INT PRIMARY KEY AUTO_INCREMENT,
partyid INT,
name VARCHAR(100),
email VARCHAR(100),
FOREIGN KEY (partyid) REFERENCES parties(partyid)
)ENGINE=INNODB;
INSERT INTO parties (header, body, partydate) VALUES
('Hansemann Luchters Julestue', 'Hyggelig hulestue med Hansemann Luchter...', '2009-12-12'),
('Statsmandsbegravelse', 'Brodtgaard skal i jorden efter at flystyr i Satoverstyristan...', '2009-30-11'),
('Hansemann Luchter vel fremme', 'Vi fejre at Hansemann overleve mødet mellem Moris Mascot og helt utrolig stor møgdynge', '2009-12-14'),
('Brodtgaard vender tilbage', 'Danmarks fortabte søn vender tilbage, og det skal fejre med masser af steg ål. Bare han nu kommer gennem paskontrollen', '2009-12-1');
INSERT INTO guests (partyid, name, email) VALUES
(1, 'Mogens', 'm@katapeojsen.dk'),
(1, 'Hansemann', 'hansemann@bremen.dk'),
(1, 'Betina', 'b@tina.dk'),
(2, 'Hans Exelence', 'h@execelce.dk'),
(2, 'Karl Åge Exelence', 'kaa@exelence.dk'),
(2, 'Konfesionarius', 'praest@kirke.dk'),
(3, 'Svend Gær', 'svend@gaer.dk'),
(3, 'Bondemanden', 'bonde@mand.dk'),
(3, 'Palle Gulvballe', 'pg@balle'),
(4, 'Palle Gulvballe', 'pg@balle'),
(4, 'Mogens', 'm@katapeojsen.dk'),
(4, 'Leo Lummerkrogh', 'leo@lummer.dk');
*************************************************************************
*Opgave:PS8B: Det første SQL/PHP Script *
* *
*File: http://www.itu.dk/people/selknaes/ps8/list_parties.php *
* *
*Status: Ingen problemer, alt virker. *
*************************************************************************
Drink server
Liste over fester
= NOW()
GROUP BY parties.partyid
ORDER BY partydate;");
$parties = "";
while ($row = mysql_fetch_row($rows)){
$parties $parties . "$row[2] - $row[1] ($row[3] tilmeldte)";
}
if (strlen($parties) == 0){
echo "Der er ingen fester!";
}
else{
echo "";
}
?>
Tilbage til index.
*************************************************************************
*Opgave:PS8C: list_attendings *
* *
*File: http://www.itu.dk/people/selknaes/ps8/list_attendings.php *
* *
*Status: Ingen problemer, alt virker. *
*************************************************************************
Liste over gæster
Liste over gæster
$row[2]";
echo "Dato $row[1]
";
echo "Arrangørens beskrivelse:
";
echo "$row[3]
";
}
$rows = mysql_query("SELECT name, email
FROM guests
WHERE partyid = '$partyid'
ORDER BY name");
$attendings = "";
echo "";
while ($row = mysql_fetch_row($rows)){
$attendings = $attendings . "- $row[0]";
}
if (strlen($attendings) == 0){
echo "Der er endnu ingen tilmeldte";
}
else{
echo "
";
echo $attendings;
echo "";
}
}
?>
Tilbage til index.
*************************************************************************
*Opgave:PS8D: Indsæt i databasen (save_attending.php) *
* *
*File: http://www.itu.dk/people/selknaes/ps8/save_attending.php *
* *
*Status: Ingen problemer, alt virker. *
*************************************************************************
*************************************************************************
*Opgave:PS8E: De hurtige *
* *
*File: http://www.itu.dk/people/selknaes/ps8/hurtige.txt *
* *
*Status: Ingen problemer, alt virker. *
*************************************************************************
1. Hvad er en formvariabel? Og hvordan bruges de?
En formvariable er, som navnet antyder, en variable, der initialiseres i en HTML form, og overføres via HTTP datagrammet til en modtager URL. I PHP kan variable hentes fra HTTP datagrammet ved at læse variablen $_REQUEST['minvariable']; hvor minvariable er navnet på den formvariable der ønskes læst.
2. Givet tabellen FinTabel som har attributterne (kollonner) A, B, C og D, hvordan ser INSERT så ud, hvis jeg kun vil indsætte noget i C?
INSERT INTO FinTabel (C) VALUES ('Noget*);
3. Hvad sker der, hvis man udfører følgende SQL: UPDATE Bruger SET Navn = "Ole O";
Alle rækker får "Ole O" som værdi i kolonnen Navn.
4. Hvad sker der hvis man udfører følgende SQL: DELETE FROM Bruger WHERE 0 > 1;
Intet da 0 aldrig er større end 1.
5. Hvad sker der hvis man udfører følgende SQL: DELETE FROM Brugere;
Hvis man ser bort fra stavefejlen (det kunne jo være et trickspørgsmål), vil alle rækker blive slettet. Ser man IKKE bort fra stavefejlen, returneres en fejl.