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.
Alvast Bedankt voor ieders reacie,
Frank
?
Onbekende gebruiker
04-07-2013 13:12
MySql gebruik ik. Ik zal het hele script online zetten:
In die variabele sla je het resultaat van de query, wat in dit geval true of false is.
Daarom is het eigenlijk niet nodig, maar ik dacht dat het voor jou wat duidelijker zou zijn.
Ik denk ook niet dat de fout in dat stukje zit (weet het eigenlijk zeker), en ik raad je aan dat eens in een apart scriptje uit te testen.
?
Onbekende gebruiker
05-07-2013 11:13
In die variabele sla je het resultaat van de query, wat in dit geval true of false is. Daarom is het eigenlijk niet nodig, maar ik dacht dat het voor jou wat duidelijker zou zijn.
In principe kan dat, alleen ben je dan wel elke controle kwijt. Maar het kan ook op een andere manier:
<?php
$result = mysql_query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')");
if ($result) {
$mb_result = mysql_query("INSERT INTO user_books (member_id, boek_id)
VALUES (1234, LAST_INSERT_ID())");
if ($mb_result) echo 'Boek ingevoegd';
else echo mysql_error();
}
else echo mysql_error();
// of
if (mysql_query("INSERT INTO boeken (titel,schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')")) {
if (mysql_query("INSERT INTO user_books (member_id, boek_id)
VALUES (1234, LAST_INSERT_ID())")) {
echo 'Boek ingevoegd';
}
else echo mysql_error();
}
else echo mysql_error();
?>
?
Onbekende gebruiker
05-07-2013 11:45
gewijzigd op 05-07-2013 11:47
Oke, het 2e script werkt zonder problemen, ik heb die aangepast naar:
if (mysql_query("INSERT INTO Boeken (Titel,Schrijver)
VALUES ('PHP Kookboek', 'Ward van der Put')")) {
if (mysql_query("INSERT INTO user_book (user_id, book_id)
VALUES (1234, LAST_INSERT_ID())")) {
echo 'Boek ingevoegd';
}
else echo mysql_error();
}
else echo mysql_error();
Nu zijn er nog 3 dingen, voor de rest werkt alles perfect, en kan ik dit project afronden.
1) Na het toevoegen komt in de 'Boeken' tabel te staan: 24 PHP Kookboek Ward van der Put
Dit moet worden veranderd naar de ingevoerde waarde
2) Bij het opslaan van de ID's, wordt het member ID als 1234 opgeslagen. Er staat dan nu:
Nu zijn er nog 3 dingen, voor de rest werkt alles perfect, en kan ik dit project afronden.
1) Na het toevoegen komt in de 'Boeken' tabel te staan: 24 PHP Kookboek Ward van der Put
Dit moet worden veranderd naar de ingevoerde waarde
Bedoel je dat het boek_id geen auto_increment kolom is? Dan moet je die kolom en waarde meenemen in de INSERT. En dan moet je in de tweede insert LAST_INSERT_ID() ook vervangen door de opgegeven waarde.
2) Bij het opslaan van de ID's, wordt het member ID als 1234 opgeslagen. Er staat dan nu:
Hierbij klopt het book_id, maar het member ID niet.
Ik had dat dan ook hard gecodeerd, dat moet je dus vervangen met wat je in de sessie hebt staan.
Overigens heeft een koppeltabel geen eigen AI PK nodig, die staat daar niets te doen. Je maakt van de user_id en de book_id gezamenlijk de PK, heb je gelijk een unique index.
?
Onbekende gebruiker
05-07-2013 12:18
gewijzigd op 05-07-2013 12:18
Ger van Steenderen op 05/07/2013 12:08:32
Bedoel je dat het boek_id geen auto_increment kolom is? Dan moet je die kolom en waarde meenemen in de INSERT. En dan moet je in de tweede insert LAST_INSERT_ID() ook vervangen door de opgegeven waarde.
boek_id is een auto_increment, maar als je een boek toevoegt met 'Carry slee' en als titel 'Kappen!', dan komt er in de tabel boeken te staan:
24 PHP Kookboek Ward van der Put
Ik had dat dan ook hard gecodeerd, dat moet je dus vervangen met wat je in de sessie hebt staan.
Overigens heeft een koppeltabel geen eigen AI PK nodig, die staat daar niets te doen. Je maakt van de user_id en de book_id gezamenlijk de PK, heb je gelijk een unique index.
Deze sessie is nog niet aangemaakt, en wordt ook niet opgeslagen. Alleen de gebruikersnaam wordt momenteel in een sessie opgeslagen, en of je ingelogd bent of niet. Hoe maak ik de sessie met 'member_id' aan?
Hetzelfde als je voor de gebruikersnaam doet bv met $_SESSION['member_id'].
Nogmaals, ik heb als voorbeeld de dingen gewoon hard gecodeerd, ik neem aan dat je de titel en de schrijver uit een formulier krijgt dus moet je die waardes daardoor vervangen, en niet vergeten te escapen.