Ik heb een website, http://kennemercollegeboeken.hostzi.com/ . Nu wil ik dat je ipv dat je inlogt en op de Add book pagina (Hier kan je een boek toevoegen die wordt opgeslagen in een database en op een andere pagina wordt opgehaald), dat je je naam, achternaam en klas daar niet hoeft in te vullen, maar alleen bij regristratie. Ook wil ik een pagina maken waar leden kunnen zien welke boeken zij hebben toegevoegd.
Hoe het er nu uitziet: (ondanks dat op de pagina anders staat vermeld)
Regristratie:
Je moet meerdere boeken kunnen toevoegen, wat dus ook op de beheerderspagina zichtbaar moet zijn. En je moet op een pagina kunnen zien welke boeken je hebt toegevoegd.
Heeft iemand een linkje, of linkjes waar dit staat uitgelegd? Of kan iemand het mij hier, of op skype (frank.martens25) uitleggen? Ik beschik over een FTP server en Teamvieuwer.
Begin gewoon met de database aan te passen / uit te breiden.
Waarschijnlijk is er een tabel users. daar zal met name nog een kolom 'klas' aan de tabel toegevoegd moeten worden. Denk ook direct na over het einde schooljaar.. wie gaat er naar de volgende klas? wie niet? wellicht zul je hier ook een beheer tool voor maken.
één gebruiker kan meerdere boeken toevoegen. maar een boek kan maar aan één gebruiker toebedeeld zijn tegelijkertijd?
dan kun je het beste een tabel boeken aan de database toevoegen. daarin zou je kolommen kunnen maken als:
boek_id (primary key, autoincrement)
user_id
titel
...
?
Onbekende gebruiker
09-06-2013 21:01
Hoi Frank,
Bedankt voor je reactie. De tabel is nu uitgebreid. Naam, Achternaam en Klas zijn toegevoegd. Één gebruiker kan meerdere boeken toevoegen. 2 mensen kunnen wel hetzelfde boek hebben.
Hoe je boek_id, user_id bedoeld etc begrijp ik niet helemaal... Kan je dat uitleggen? Of gaat het er gewoon om dat dat de tabelnamen zijn? Of juist de 'Fields' ?
CREATE TABLE ``.`user_book` (
`id` INT NOT NULL AUTO_INCREMENT ,
`user_id` INT NOT NULL ,
`book_id` INT NOT NULL ,
PRIMARY KEY ( `id` ) ,
INDEX ( `user_id` , `book_id` )
) ENGINE = MYISAM
Bedankt, die zijn aangemaakt. Hoe gaat het nu verder? De tabel heet trouwens Members, maar dat maakt niet uit. Iedereen krijgt daar inderdaad een eigen ID.
[size=xsmall]Toevoeging op 09/06/2013 21:42:51:[/size]
Hoe werkt het nu verder met de formulieren en met het opvragen van boeken?
ja nu komt het echte werk.
je zou nu de pagina's waar de 'members' zich registreren kunnen uitbreiden zodat ze ook kunnen opgeven in welke klas ze zitten en wat hun naam en achter naam is. Dit zal waarschijnlijk betekenen dat het formulier aangepast moet worden en ook de PHP die het formulier verwerkt alsmede de database querie INSERT.
tevens moet de boeken tabel gevuld worden. dat zal misschien een beheerpagina worden.
daarnaast kun je een nieuwe pagina gaan maken waar men een overzicht krijgt van de boeken die ze hebben.
boeken voeg je gewoon toe aan de tabel boeken.
boeken die in gebruik zijn voeg je toe in de koppel-tabel. daarvoor heb je dan dus het juiste book_id nodig en de member_id.
[size=xsmall]Toevoeging op 09/06/2013 22:04:06:[/size]
heb je ervaring met formulieren?
Het opvragen van alle boeken:
SELECT * FROM boeken
een stapje verder:
naam van de gebruiker - boek
SELECT member.name, Boeken.Titel FROM user_book
JOIN members ON user_book.user_id = members.member_id
JOIN Boeken ON user_book.book_id = Boeken.book_id
?
Onbekende gebruiker
10-06-2013 07:55
gewijzigd op 10-06-2013 07:55
Ergens zit een foutje... De regristratie werkt wel.
Parse error: syntax error, unexpected T_ELSE in /home/a4692586/public_html/toevoegen.php on line 39
<?php
//we zetten error report aan voor als er een foutje in de code zou zitten, deze kan als alles optimaal werkt uitgezet worden. Dit doe je door de 1 te veranderen in een 0.
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
//we includen het bestand config.php zodat we verbinding hebben met de database
$host = ""; // De host
$user = ""; // De MySQL gebruikersnaam
$pass = ""; // Het MySQL wachtwoord
$datb = ""; // De database
mysql_connect($host, $user, $pass) or die ("Er kan geen verbinding worden gemaakt");
mysql_select_db($datb) or die ("Er kan geen verbinding worden gemaakt met de database");
if ($_SERVER['REQUEST_METHOD'] == 'POST') { //kijken of het formulier gepost is
$naam = mysql_real_escape_string($_POST['Tite;']);
$adres = mysql_real_escape_string($_POST['Schrijver']);
//velden controleren
$errors = array();
if(strlen($naam) < 2) {
array_push($errors, "Je hebt geen of een te korte naam ingevuld");
}
if(strlen($naam) > 30) {
array_push($errors, "Je hebt een te lange naam ingevuld");
}
//kijken of er een naam is ingevuld, zo nee onderbreek het proces, anders ga verder
if(count($errors) >0){
foreach($errors as $error){
echo $error;
}
}
else {
//alles mooi in de database zetten
mysql_query ("INSERT INTO boeken (Titel, Schrijver) VALUES ('". $naam ."', '".$adres."')") or die (mysql_error());
echo 'Je gegevens zijn opgeslagen in de database';
}
else {
// het formulier en we zijn klaar
<form action="toevoegen.php" method="post">
Titel:<input type="text" name="Titel" size="45">
Schrijver: <input type="text" name="Schrijver" size="60">
<input type="submit" value="verzenden" />
</form>
}
?>