Nu ik rustig aan PHP aan het leren ben kom ik verschillende uitdagingen tegen die ik vrijwel altijd weet op te lossen door alle tutorials en reeds gestelde vragen. Nu kom ik iets tegen waar ik niet zo snel een oplossing voor weet. Dit komt uiteraard door mijn gebrek aan kennis omtrent de mogelijkheden, maar daar krijg ik hier vast antwoord op. Ik zal proberen zo duidelijk mogelijk uit te leggen:
Goed, stel je hebt een inlog systeem waarbij je in de database de volgende gegevens in een tabel opslaat: id, gebruikersnaam en e-mail. Vervolgens wil je de gebruikers een mogelijkheid geven om een profiel te creëren met bepaalde vaste waardes zoals: leeftijd, land van herkomst, hobby's etc. En daarnaast een vrij vlak waarbij iets kort kunnen neerzetten.
Mijn gedachten waren om een nieuwe tabel aan te maken waarin die waardes kunnen worden opgeslagen. Alleen hoe zorg je ervoor dat de juiste persoon ook de juiste waardes kan aanpassen. Omdat er in die nieuwe tabel geen id zit. Of is het verstandig om geen profiel tabel aan te maken, en gewoon nieuwe kolommen te creëren in de bestaande tabel? Lijkt mij op te duur wat onoverzichtelijk worden.
SELECT
id, users.name, users.email hobbies.hobby
FROM
users
JOIN
hobbies
ON
users.id = hobbies.user_id
WHERE
hobbies.hobby = 'programmeren';
of met aliasses
SELECT
u.id, u.name, u.email, h.hobby
FROM
users u
JOIN
hobbies h
ON
u.id = h.user_id
WHERE
h.hobby = 'programmeren';
Bij de registratie heb je een minimum aan gegevens nodig. De rest kun je direct vragen bij registratie maar je kunt de gebruiker hier ook in een later stadium om vragen. (Datingsites zijn er goed in om je met enkel een username, wachtwoord en emailadres binnen te halen waarna ze alsnog het hemd van je lijf gaan vragen om zodoende de drempel voor registratie zo laag mogelijk te houden).
Ik ben dus bezig om zo'n profiel te maken, maar ik loop vast op moment dat ik op de submit knop druk. Er wordt dan niks naar mijn database gezet. Iemand een idee waar ik een fout heb gemaakt?
<?php
include_once 'core/db_connect.php';
include_once 'core/functions.php';
sec_session_start();
$sqlCommand = "SELECT * FROM gebruikers WHERE gebruikersnaam='" . $_SESSION['gebruikersnaam'] . "'";
$query = mysqli_query($mysqli, $sqlCommand) or die (mysqli_error($mysqli));
While ($row =mysqli_fetch_array($query)) {
$pid = $row["id"];
$gebruikersnaam = $row["gebruikersnaam"];
}
mysqli_free_result($query);
?>
Table zou gewoon met kleine letters kunnen of allemaal met hoofdletters. er mist een spatie tussen width="685" en border="1".
Maak een afspraak met jezelf alle html elementen in kleine letters of in hoofdletters. Kleine letters hebben mijn persoonlijke voorkeur. In iedergeval doe je het nu telkens weer anders en dat komt wel erg rommelig over.
Zo maak je een <select> met daarin <OPTIONS>
<td width"185">
Hier mist een = teken. Bovendien hoort deze informatie allemaal in CSS te staan.
<td COLSPAN="2"align="center">
Hier mist wederom een spatie.
Dan je query:
kolomnamen mogen niet tussen single quotes staan. Alleen waardes wel.
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.