Hallo, ik heb een vraag ben bezig met een profiel systeem met een ticket systeem nou wil ik zeg maar data uit lezen van gebruiker plato en van de tickets in een aparte table de gegevens laten zien

maar mijn vraag is ben nou met een website bezig en heb een get method profiless.php?naam=plato&?tickets=plato
alleen probleem is hij geeft de naam wel weer in de mysql query alleen de header img niet iemand enige idee wat ik fout doe

<?php
    include_once("includes/config.php"); 
    if (isset($_GET['tickets']))
    {
        $ticket = $_GET['tickets'];
        $sql = "SELECT * FROM tickets WHERE gebruiker='$ticket'";
        
        $result = $conn->query($sql);
        
        if ($result->num_rows > 0) {
            
            if($row = $result->fetch_assoc()) { 
    
echo '<header class="content-header " style="background-image: url('.$row["ticket_header"].');">'; 
            }
        }
        else {
           echo "0 results";
        }
    }
?>      

en naam werkt wel gewoon

<?php
    include_once("includes/config.php"); 
    if (isset($_GET['naam']))
    {
        $firstname = $_GET['naam'];
        $sql = "SELECT * FROM users WHERE gebruiker='$firstname'";
        
        $result = $conn->query($sql);
        
        if ($result->num_rows > 0) {
            
            if($row = $result->fetch_assoc()) {
               
            }
           ?>
    <div class="l-content">
        
        <div class="container listing-info">
            <div class="listing-info--user">
    <img src="img/noavatarn.png" alt="Hendrik Hofstra">
    <div class="user"> 
    <?php echo '<h3>'.$row["gebruiker"].'</h3>'; ?>
 
  <?php echo '<div class="user-city">'.$row["plaats"].'</div>'; ?>
        
        <ul>
                            <li class="sold">
                    2 tickets verkocht                                    </li>
                                        <li class="phone" title="We hebben het mobiele nummer van de verkoper gecontroleerd">Telefoonnummer gecontroleerd</li>
                                        <li class="friends"> 
                                        <?php echo 'Facebook is gekoppeld <span>'.$row["vrienden"].' vrienden</span>'; ?>
                                    </li>
                    </ul>    
                  <?php
                    } 
        else { 
        }
    }
    ?>




iemand enige idee die mij kan helpen dankje wel
Heb je mijn query al kunnen testen?
  

CREATE TABLE `tickets` (
  `id` int(11) AUTO_INCREMENT PRIMARY KEY,
  `gebruikersID` varchar(255) NOT NULL UNIQUE,
  `ticket_titel` varchar(255) NOT NULL,
  `ticket_header` varchar(1024) NOT NULL,
  `ticket_datum` date NOT NULL,
  `ticket_dag` varchar(255) NOT NULL,
  `ticket_plaats` varchar(255) NOT NULL,
  `prijs` int(11) NOT NULL,
  `aantal` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `gebruiker` varchar(255) NOT NULL,
  `plaats` varchar(255) NOT NULL,
  `avatar` varchar(1024) NOT NULL,
  `vrienden` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

is deze sql goed ? ik ga nu die query testen
- Het gebruikersID-veld zou ik in een INT gieten
- Wat is volgens jouw het nut van de 'ticket_'-prefix'es, odmat je al weet dat die velden in de ticket-tabel zitten. het maakt niet uit, maar het is wel opmerkelijk.
- Wat is ticket_dag voor veld? Kan je dat niet uit de datum extraheren?
- De prijs kan je beter in een DECIMAL(4,2) gieten. Want wat als de prijs nu 14,99 is? Daar kan INT niet mee overweg.
- Persoonlijk zou ik in de user-tabel de veldnaam gebruiker aanpassen naar naam of iets in die trant. Je beschrijft immers al gebruikers. Goede naamgeving is zeer belangrijk.
- Wat omschrijft het vrienden-veld?

 
CREATE TABLE `tickets` (
  `id` int(11) AUTO_INCREMENT PRIMARY KEY,
  `gebruikersID` varchar(255) NOT NULL INT,
  `ticket_titel` varchar(255) NOT NULL,
  `ticket_header` varchar(1024) NOT NULL,
  `ticket_datum` date NOT NULL,
  `ticket_dag` varchar(255) NOT NULL,
  `ticket_plaats` varchar(255) NOT NULL,
  `prijs` int(11) NOT NULL DECIMAL(4,2),
  `aantal` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `naam` varchar(255) NOT NULL,
  `plaats` varchar(255) NOT NULL,
  `avatar` varchar(1024) NOT NULL,
  `vrienden` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;  


gebruikersid veranderen
ticket_dag geeft aan dat het bijvoorbeeld zaterdag is
user tabel naam heb ik veranderd in naam
het vrienden veld geeft alleen de cijfers aan hoeveel vrienden die heeft
Als je de datum aanpast, moet je nu ook de dag handmatig aanpassen. Dat lijkt mij erg overbodig en foutgevoelig.

De dag kan je prima in je query extraheren via DATE_FORMAT in je SQL-query:

 SELECT DATE_FORMAT("2019-06-28", "%W"); 

(mogelijk moet je met locales in de weer om het Nederlands te krijgen)

Ook je vrienden zijn aantallen, dus een INT zou ook prima hierbij passen. Vooral als je ooit nog eens iets wilt optellen.

oke top ma als ik een nieuwe maak met adver.php
input tekst vield
gebruiker: gebruiker invullen
titel
header_img
prijs

hoe sla ik de gebruikersid op van de id van table gebruiker naam dat die wel overeenkomt ?
Die moet als het goed is uit de query komen, en kan je toepassen op je opvolgende INSERT / UPDATE query.
Indien een beheerder de tickets koppelt aan een gebruiker dan selecteert 'ie deze uit een dropdown-tabel.
Indien de gebruikers op een of andere manier zelf tickets kunnen kopppelen (bijvoorbeeld door aanschaf ofzo) dan ligt het gebruikers-id al vast.
In beide gevallen zal dit in een soort van afgeschermd deel van de website moeten gebeuren, tenzij je rechtstreeks in de database werkt via PHPMyAdmin ofzo. Het beveiligen van dit soort functionaliteit is een complete studie op zich, vol met allerlei valkuilen.

Waarom gebruik je trouwens latin1? Misschien handiger om dit op zijn minst utf8 te laten zijn? Hoe is de character encoding van de rest van je website, dit zal toch ook UTF-8 zijn mag ik hopen, en niet ISO-8859-1 of equivalent?
heb nou als volg

 
 CREATE TABLE `tickets` (
  `id` int(11) AUTO_INCREMENT PRIMARY KEY,
  `gebruikersID` int(11) NOT NULL,
  `ticket_titel` varchar(255) NOT NULL,
  `ticket_header` varchar(1024) NOT NULL,
  `ticket_datum` date NOT NULL,
  `ticket_dag` varchar(255) NOT NULL,
  `ticket_plaats` varchar(255) NOT NULL,
  `prijs` int(11) NOT NULL DECIMAL(4,2),
  `aantal` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `naam` varchar(255) NOT NULL,
  `plaats` varchar(255) NOT NULL,
  `avatar` varchar(1024) NOT NULL,
  `vrienden` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

ik ga het testen nu ik laat van jullie weten als het gelukt is

[size=xsmall]Toevoeging op 25/06/2019 00:41:22:[/size]

Pascal klienstra op 25/06/2019 00:36:48

heb nou als volg

 
 CREATE TABLE `tickets` (
  `id` int(11) AUTO_INCREMENT PRIMARY KEY,
  `gebruikersID` int(11) NOT NULL,
  `ticket_titel` varchar(255) NOT NULL,
  `ticket_header` varchar(1024) NOT NULL,
  `ticket_datum` date NOT NULL,
  `ticket_dag` varchar(255) NOT NULL,
  `ticket_plaats` varchar(255) NOT NULL,
  `prijs` int(11) NOT NULL DECIMAL(4,2),
  `aantal` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `naam` varchar(255) NOT NULL,
  `plaats` varchar(255) NOT NULL,
  `avatar` varchar(1024) NOT NULL,
  `vrienden` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

ik ga het testen nu ik laat van jullie weten als het gelukt is

dit doe ik verkeerd enige idee ?
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Wat lukt er niet aan?

Reageren