Je eigen boek terug vinden - Vraagje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Pagina: 1 2 volgende »

09/06/2013 20:18:17
Quote Anchor link
Hoi,

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:

-Gebruikersnaam
-Wachtwoord
-Email

Login:

-Gebruikersnaam
-Wachtwoord

Boek toevoegen:

-Naam
-Achternaam
-Klas
-Titel
-Schrijver

Hoe ik het graag zie:

Regristratie:

-Naam
-Achternaam
-Klas
-Gebruikersnaam
-Wachtwoord
-Email

Login:

-Gebruikersnaam
-Wachtwoord

Add Book:

-Titel
-Schrijver

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.

Alvast Bedankt voor ieders reacie,

Frank
 
PHP hulp

PHP hulp

17/11/2024 20:36:59
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/06/2013 20:42:42
Quote Anchor link
Hallo Frank,

Wat je wil is zeker mogelijk.

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
...
 

09/06/2013 21:01:45
Quote Anchor link
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' ?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/06/2013 21:11:07
Quote Anchor link
Okee in dat geval krijg je een tabel boeken en een koppel-tabel om te kunnen koppelen tussen users en boeken.

ik weet niet hou jouw 'user' tabel heet.. ik hou het op users.

waarschijnlijk hebben alle users een uniek nummer. misschien leerlingnr of iets dergelijks? ik noem het user_id.

Dit unieke nummer mag maar één keer voorkomen. er mogen dus nooit geen dubbele user_id's zijn.

de tabel boeken met de volgende records:
book_id: INT + autoincrement + Primary key.
titel: VARCHAR(50)
(en verder wat je wil)

de koppeltabel user_book met de ALLEEN volgende records:
id: INT + autoincrement + Primary key.
user_id: INT + index
book_id: INT + index

Toevoeging op 09/06/2013 21:23:05:

later kun je dan users bij houden in de user tabel, boeken bijhouden in de tabel boeken.

in de koppel tabel houden we enkel bij wie welk boek heeft.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
koppel tabel:
--------------------------
id  |  user_id | book_id |
--------------------------
1   |  25      | 15      |
1   |  25      | 17      |
1   |  18      | 15      |
--------------------------

user met user_id 25 heeft dus boek 15 en boek 17 in gebruik.
user met user_id 18 heeft (ook) boek 15 in gebruik.
 

09/06/2013 21:27:52
Quote Anchor link
CREATE TABLE `*`.`Boeken` (
`book_id` INT( 50 ) NOT NULL AUTO_INCREMENT ,
`Titel` VARCHAR( 50 ) NOT NULL ,
`Schrijver` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( `book_id` )
) ENGINE = MYISAM

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.

Toevoeging op 09/06/2013 21:42:51:

Hoe werkt het nu verder met de formulieren en met het opvragen van boeken?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/06/2013 21:48:18
Quote Anchor link
mooi.

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.


Toevoeging op 09/06/2013 22:04:06:

heb je ervaring met formulieren?

Het opvragen van alle boeken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM boeken

een stapje verder:
naam van de gebruiker - boek
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
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
 

10/06/2013 07:55:03
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?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>
}

?>
Gewijzigd op 10/06/2013 07:55:40 door
 
Koen Vlaswinkel

Koen Vlaswinkel

10/06/2013 08:05:15
Quote Anchor link
Je sluit je if van regel 15 niet af, vandaar die error.
 

10/06/2013 19:48:39
Quote Anchor link
Ik heb even een nieuw topic in Beginnend PHP geopend wegens een andere fout;) Daarna kunnen we weer verder.
 

15/06/2013 19:52:45
Quote Anchor link
Beste Frank,

Ik heb het script moeten debuggen, wat eerijk gezegd snel is verlopen. Je kan nu een boek toevoegen op http://kennemercollegeboeken.hostzi.com/toevoegen.php . Hoe werkt het nu verder?

Alvast Bedankt,

Frank
 

23/06/2013 14:41:10
Quote Anchor link
Zou iemand (maakt niet uit wie) hier nog uitleg willen geven?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/06/2013 14:51:55
Quote Anchor link
Frank,

vertel eens wat de volgende stap is die je zou willen realiseren?
 

23/06/2013 14:54:24
Quote Anchor link
Je kan nu inloggen, en een boek toevoegen, maar het boek wordt niet achter de naam neergezet... Het boek word gewoon in de tabel 'Boeken' gezet, en in de tabel 'members' gebeurt dan helemaal niks...

Inloggen kan met de gegevens Test - Test
Gewijzigd op 23/06/2013 14:55:47 door
 
Obelix Idefix

Obelix Idefix

23/06/2013 14:57:49
Quote Anchor link
Ook zonder in te loggen kan ik een boek toevoegen (krijg in ieder geval bericht dat het boek is toegevoegd).
In de code hierboven staat wel een INSERT query in de tabel boeken, maar heb je ook een INSERT query voor members?

Zonder code/uitleg waar je op vastloopt wordt het lastig om je te helpen.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/06/2013 15:02:05
Quote Anchor link
in je tabel boeken moet ook het member_id (unieke nummer van de gebruiker) worden toegevoegd. daarna is het simpel te koppelen met een JOIN.
 

23/06/2013 15:03:18
Quote Anchor link
Oke, en hoe werkt dit? Als je inlogt word er een sessie opgeslagen.
 
Obelix Idefix

Obelix Idefix

23/06/2013 15:05:28
Quote Anchor link
Misschien een tip om bij de basis te beginnen en je te verdiepen in hoe php werkt.
Een mogelijkheid: http://www.phptuts.nl/view/39/
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/06/2013 15:05:53
Quote Anchor link
doe eens na het inloggen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
?>


dan krijg je de session variabelen te zien, 90% kans dat daar de member_id bij staat
 

23/06/2013 15:08:39
Quote Anchor link
Script staat erin, maar werkt bij mij niet...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/06/2013 15:14:51
Quote Anchor link
er moet wel session_start(); voor staan

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
session_start();
echo '<pre>';
print_r($_SESSION);
echo '</pre>';
?>
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

23/06/2013 19:00:22
Quote Anchor link
@Frank Nb
Het valt mij in diverse topics op dat jij in koppeltabellen altijd een aparte id kolom hebt als primary key.
Dat is alleen maar extra ballast, de combinatie van (in dit geval) boek_id en member_id is een prima PK.

@Frank M
Je hebt die koppeltabel alleen nodig als meerdere gebruikers hetzelfde boek toe kunnen voegen, is dat niet zo kan je volstaan met een kolom member_id in de boeken tabel
Gewijzigd op 23/06/2013 19:09:55 door Ger van Steenderen
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.