PHP gebruikers van inlogsysteem [vraag]

Status
Niet open voor verdere reacties.

Mennojoey

Gebruiker
Lid geworden
12 sep 2015
Berichten
10
Halloow,

Ik snap niet heel veel van PHP dus ik zou vragen of iemand mij zou kunnen helpen.
Het gaat om het volgende, ik heb dus een inlogsysteem (niet zelf gemaakt want dat kan ik (nog)niet) en ik wil dat gebruikers hun gegevens kunnen overzien op hun pagina.
Dat was me gelukt met de volgende code die ik had gevonden:

PHP:
<?php
 
/* Verbinding met de MySQL database maken.*/
$db = mysql_connect("localhost", "basicbew_root","wachtwoord") or die (mysql_error());
 
/* Selecteer de database waarop de query gedraaid moet worden.*/
mysql_select_db("inloggen", $db);
 
/* Uitvoeren van de query.*/
$sql = "SELECT username FROM users";
 
/* Het resultaat van de query in een array variabele stoppen, zodat
we deze later uit kunnen lezen.*/
$result = mysql_query($sql);
 
/* Met behulp van de functie mysql_fetch_assoc halen we de rijen
uit de array op.*/
while ($row = mysql_fetch_assoc($result)) {
 
/* Print het resultaat uit de huidige rij op het scherm.*/
echo  $row["username"];
echo "<br/>";
}
?>

Maar als ik dat nu doe met meerdere gebruikers dan kan 1 gebruikers alle informatie zien van alle gebruikers wat als volgt zo eruit ziet: http://prntscr.com/9qfbfl of http://i.imgur.com/Ahyrz6n.png of
2a8qcg8.png

Ik zou graag willen dat je alleen je eigen gegevens ziet. Ik heb al dat je een ID krijgt per gebruiker.

Kan iemand mij helpen?
Alvast bedankt!



OPLOSSING:

PHP:
<table style="width:100%">
  <tr style="background-color: #e74c3c; color: white">
    <th>Gebruikersnaam</th>
    <th>E-mail adres</th>		
    <th>Volgende afspraak</th>
  </tr>
  <tr>
    <td><?php
 
/* Uitvoeren van de query.*/
$sql = "SELECT username FROM users WHERE username = '$username';";
 
/* Het resultaat van de query in een array variabele stoppen, zodat
we deze later uit kunnen lezen.*/
$result = mysql_query($sql);
 
/* Met behulp van de functie mysql_fetch_assoc halen we de rijen
uit de array op.*/
while ($row = mysql_fetch_assoc($result)) {
 
/* Print het resultaat uit de huidige rij op het scherm.*/
echo  $row["username"];
echo "<br/>";
}
?></td>
    <td><?php
 
/* Uitvoeren van de query.*/
$sql = "SELECT mail FROM users WHERE username = '$username';";
 
/* Het resultaat van de query in een array variabele stoppen, zodat
we deze later uit kunnen lezen.*/
$result = mysql_query($sql);
 
/* Met behulp van de functie mysql_fetch_assoc halen we de rijen
uit de array op.*/
while ($row = mysql_fetch_assoc($result)) {
 
/* Print het resultaat uit de huidige rij op het scherm.*/
echo  $row["mail"];
echo "<br/>";
}
?></td>		
    <td><?php
 
/* Uitvoeren van de query.*/
$sql = "SELECT afspraken FROM users WHERE username = '$username';";
 
/* Het resultaat van de query in een array variabele stoppen, zodat
we deze later uit kunnen lezen.*/
$result = mysql_query($sql);
 
/* Met behulp van de functie mysql_fetch_assoc halen we de rijen
uit de array op.*/
while ($row = mysql_fetch_assoc($result)) {
 
/* Print het resultaat uit de huidige rij op het scherm.*/
echo  $row["afspraken"];
echo "<br/>";
}
?></td>
  </tr>
</table>
 
Laatst bewerkt:
Link werkt niet. Upload eens op tinypic.com.
 
Laat eens de relevante code zien die je tot nu toe hebt.
 
Laat eens de relevante code zien die je tot nu toe hebt.

PHP:
<table style="width:100%">
  <tr>
    <th>Gebruikersnaam</th>
    <th>E-mail adres</th>		
    <th>Volgende afspraak</th>
  </tr>
  <tr>
    <td><?php
 
/* Verbinding met de MySQL database maken.*/
$db = mysql_connect("localhost", "basicbew_root","wachtwoord") or die (mysql_error());
 
/* Selecteer de database waarop de query gedraaid moet worden.*/
mysql_select_db("inloggen", $db);
 
/* Uitvoeren van de query.*/
$sql = "SELECT username FROM users";
 
/* Het resultaat van de query in een array variabele stoppen, zodat
we deze later uit kunnen lezen.*/
$result = mysql_query($sql);
 
/* Met behulp van de functie mysql_fetch_assoc halen we de rijen
uit de array op.*/
while ($row = mysql_fetch_assoc($result)) {
 
/* Print het resultaat uit de huidige rij op het scherm.*/
echo  $row["username"];
echo "<br/>";
}
?></td>
    <td><?php
 
/* Verbinding met de MySQL database maken.*/
$db = mysql_connect("localhost", "basicbew_root","wachtwoord") or die (mysql_error());
 
/* Selecteer de database waarop de query gedraaid moet worden.*/
mysql_select_db("inloggen", $db);
 
/* Uitvoeren van de query.*/
$sql = "SELECT mail FROM users";
 
/* Het resultaat van de query in een array variabele stoppen, zodat
we deze later uit kunnen lezen.*/
$result = mysql_query($sql);
 
/* Met behulp van de functie mysql_fetch_assoc halen we de rijen
uit de array op.*/
while ($row = mysql_fetch_assoc($result)) {
 
/* Print het resultaat uit de huidige rij op het scherm.*/
echo  $row["mail"];
echo "<br/>";
}
?></td>		
    <td><?php
 
/* Verbinding met de MySQL database maken.*/
$db = mysql_connect("localhost", "basicbew_root","wachtwoord") or die (mysql_error());
 
/* Selecteer de database waarop de query gedraaid moet worden.*/
mysql_select_db("inloggen", $db);
 
/* Uitvoeren van de query.*/
$sql = "SELECT afspraken FROM users";
 
/* Het resultaat van de query in een array variabele stoppen, zodat
we deze later uit kunnen lezen.*/
$result = mysql_query($sql);
 
/* Met behulp van de functie mysql_fetch_assoc halen we de rijen
uit de array op.*/
while ($row = mysql_fetch_assoc($result)) {
 
/* Print het resultaat uit de huidige rij op het scherm.*/
echo  $row["afspraken"];
echo "<br/>";
}
?></td>
  </tr>
</table>
 
Waarom 3 keer dezelfde code om een paar velden op te halen?
Je kan prima "SELECT username, mail afspraken FROM users" gebruiken.

Verder weet ik niet hoe je script het inloggen uitvoert, dus ik kan dan moeilijk vertellen hoe iedereen een eigen pagina voor zichzelf kunnen krijgen.

Even wat kanttekeningen:
- Stap van de MySQL-functies af, maar gebruik MySQLi. De oude MySQL-functies zijn er in PHP 7 uit, en die wordt inmiddels al uitgerold. De actieve support voor de voorgaande PHP 5.6 vervalt aan het einde van dit jaar.
- Zorg voor foutafhandelingen, gebruik dan mysqli_error($con); om te kijken of een query gelukt is. or die() is niet een nette manier, dus gebruik if-else constructies.
 
Als je al de ID uit de database haalt, waarom doe je die dan niet in je SELECT query?
Zoals PHP4U al zij, doe het sowieso in 1 query veel overzichtelijker en scheelt weer aan lijnen die het script kunnen breken.

Code:
SELECT username, mail, afspraken FROM users WHERE user_id = '$id';

Ik weet niet hoe het ID in je database heet dus user_id zal je moeten aanpassen naar het veld naam in je table en $id is de php variable die je meegeeft van de gebruiker om ervoor te zorgen dat hij alleen zijn eigen informatie te zien krijgt.
En anders kan je het altijd nog op username valideren maar mijn voorkeur gaat altijd uit naar ID.

Gr,
Patrick
 
Misschien handig om ook even te delen wat je gedaan hebt. Dan weten anderen het ook even!
 
Jammer dat je mijn opmerkingen in de wind slaat :(
 
Het is niet netjes gemaakt nu, en als je gelezen had, had je vast wel wat kunnen proberen. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan