Profil side

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
Kallesen
Begynder
Indlæg:19
Tilmeldt:1. mar 2018, 10:55
Profil side

Indlæg af Kallesen » 1. mar 2018, 11:46

Hej Experter.

Jeg har et undrende spørgsmål.

Efter nogle år med andet arbejde end PHP er jeg begyndt at kigge lidt på det igen, den gang kodede jeg til sql server, idag er det MySqli kan jeg forstå.

Men mit spørgsmål er så, jeg skal have lavet en profil page til noget internt brug.

Jeg ved godt hvordan man laver oprettelse, login osv.
Men jeg er kommet meget i tvivl omkring hvordan jeg lige drejer det hele til at blive til link som:

www.webpage.dk/profile.php?id=12

og så skal der komme en side frem på den person med de ID i databasen. eller username som:

www.webpage.dk/profile.php?username=Hansen99

Nogen der har en løsning på dette?

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Profil side

Indlæg af cristian » 1. mar 2018, 16:08

Du kan jo lave det så når profile.php bliver kaldt så tjekker den for om der allerede eksisterer et id get parameter.
Hvis ja, så hent profilen for id'et. Hvis nej eller id'et ikker et gyldigt så vis profile.php hvor du kan indtaste et bruger id eller finde en bruger på en liste.

Så kan du skrive
id=321
id=31
id=2

eller hvad du nu giver af id til dine brugere
https://stackoverflow.com/questions/328 ... -variables

Kallesen
Begynder
Indlæg:19
Tilmeldt:1. mar 2018, 10:55

Re: Profil side

Indlæg af Kallesen » 2. mar 2018, 11:02

Mange tak for det hurtige svar.

Men så skal jeg kunne vise siden, og her tænker jeg at det ville være nemmest med sådan et kald:

Kode: Vælg alt

<?php
include_once('config.php');
 $sql = "SELECT id FROM users";
 $result = mysqli_query($connect, $sql);
 ?>

                     <table class="table table-striped">
                          <tr>
                               <th>Brugernavn</th>
                               <th>Oprettelses dato</th>
                          </tr>
                          <?php
                          while($row = mysqli_fetch_array($result))
                          {
                          ?>
                          <tr>
                               <td><?php echo $row["username"]; ?></td>
                               <td><?php echo $row["created_at"];?></td>
                          </tr>
                          <?php
                          }
                          ?>
                     </table>
Er det helt hen i vejret?

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Profil side

Indlæg af cristian » 2. mar 2018, 14:46

Der må jeg være dig svar skyldig da jeg ikke roder med PHP men med Java til web.
Når jeppe, daniel eller thomas ser dette så kan de give et svar.

Brugeravatar
Daniel
Admin
Admin
Indlæg:625
Tilmeldt:14. jun 2011, 09:27
Geografisk sted:Danmark, Fyn, Nørre Aaby
Kontakt:

Re: Profil side

Indlæg af Daniel » 2. mar 2018, 18:23

Det vil ikke virke med den kode som du har inkluderet herinde.

Når du laver en SQL forespørgsel, så betyder SELECT hvilke felter du vil trække ud, det vil sige her skal du angive at det er brugernavn og oprettelses dato du vil trække ud. FROM er rigtigt nok den tabel som du vil trække felterne ud fra. Derefter skal du angive ud fra hvilket kriterie du vil hente felterne, det gør du med WHERE delen.

Når du vil hente en værdi ud fra adressen via PHP, så skal du bruge en GET variabel ( $_GET['id'] ).

Jeg har lige hurtigt sat en lille smule kode sammen, som gerne skulle fungere for dig.
Det er langt fra den eneste måde eller den mest rigtige måde at opnå det du ønsker på, men det bør fungere.
Sig endelig til, hvis du har spørgsmål til noget af koden.

Kode: Vælg alt

<?php
include_once('config.php');

if(!isset($_GET['id'])) {
    die('Der er ikke angivet et bruger-ID!');
}

if(!is_numeric($_GET['id'])) {
    die('Bruger-ID kan kun angives som tal!');
}

$sql = 'SELECT `username`, `created_at` FROM `users` WHERE `id` = ' . $_GET['id'];
$query = mysqli_query($connect, $sql);

if(mysqli_num_rows($query) != 1) {
    die('Bruger-ID findes ikke!');
}

$row = mysqli_fetch_assoc($query);
?>

<table class="table table-striped">
    <tr>
        <th>Brugernavn</th>
        <th>Oprettelses dato</th>
    </tr>
    <tr>
        <td><?php echo $row['username']; ?></td>
        <td><?php echo $row['created_at']; ?></td>
    </tr>
</table>

Kallesen
Begynder
Indlæg:19
Tilmeldt:1. mar 2018, 10:55

Re: Profil side

Indlæg af Kallesen » 3. mar 2018, 16:54

Hej Daniel.

Tak for dit svar. Men jeg gav mig i kast med at læse op på noget at mit gamle rustne PHP skills, og fandt frem til noget der ligner noget.
Jeg ved ikke om det er sikkert, nu skal jeg lige have en session ind i toppen, så det kun er dem der er logget ind der kan se tingene, men det her er da en begyndelse:

Kode: Vælg alt

<?php

require_once 'config.php';

if($_GET['id']) {
    $id = $_GET['id'];

    $sql = "SELECT * FROM users WHERE id = {$id}";
    $result = $connect->query($sql);

    $data = $result->fetch_assoc();

    $connect->close();

?>

<!DOCTYPE html>
<html>
<head>
    <title>Profile of <?php echo $data['username'] ?></title>

</head>
<body>

<fieldset>

    <form>
        <table cellspacing="0" cellpadding="0">
            <tr>
                <th>Brugernavn</th>
                <td><?php echo $data['username'] ?></td>
            </tr>
        </table>
    </form>

</fieldset>

</body>
</html>

<?php
}
?>

Tak for hjælpen, jeg ved der kommer flere spørgsmål, men så vender jeg tilbage :)

Besvar