Hallo,
ik ben bezig met een systeem

--  
 -- Table structure for table `account`  
 --  
 CREATE TABLE IF NOT EXISTS `account` (  
  `u_id` int(11) NOT NULL AUTO_INCREMENT,  
  `u_naam` varchar(250) NOT NULL,  
  `avatar` varchar(250) NOT NULL,
  PRIMARY KEY (`u_id`)  
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;  

 --  
 -- Table structure for table `tickets`  
 --  
 CREATE TABLE IF NOT EXISTS `tickets` (  
  `token` CHAR(40) NOT NULL,
  `ticket_naam` varchar(250) NOT NULL, 
  `ticket_datum` date NOT NULL, 
  `plaats` varchar(250) NOT NULL, 
  `prijs` int(2) NOT NULL, 
  `betaallink` varchar(250) NOT NULL,   
  `u_id` int(11) NOT NULL,  
  PRIMARY KEY (`token`)  
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;  
 


?php
// retrieve token
if (isset($_GET["listing"]) && preg_match('/^[0-9A-F]{40}$/i', $_GET["listing"])) {
    $token = $_GET["listing"];
}
else {
    throw new Exception("niks gevonden");
}

// verify token
$query = $db->prepare("SELECT u_id, ticket_naam FROM tickets INNER JOIN account ON tickets.ticket_id = account.u_id WHERE token = ?"); 
$query->execute(array($token));
$row = $query->fetch(PDO::FETCH_ASSOC);
$query->closeCursor();

if ($row) {
    extract($row);
}
else {
    throw new Exception("niks gevonden");
}
$row["u_naam"]; 
$row["ticket_naam"];
?>


wat nou het idee moet wezen zodra ik 1 aanmaak wil ik dat die een aparte token code krijgt met link zodat je van de table users informatie leest en de tickets van die user die code kunnen mensen dan sturen zodat ze de pagina kunnen zien iemand tips/ of beetje op weg kan helpen
Volgens mij gaat het erom dat je geen variabelen moet nummeren, zeg gewoon wat ze doen.
En mysqli_query werkt niet meet meerdere queries inéén.
Dus voer twee aparte mysqli_query() uit met je INSERT.


if (mysqli_query($conn, $sql ,$sql1)) { 

is dit is dus onzin. Leuk bedacht, maar gaat niet werken.
Bij twijfel: Check php.net/{functienaam} en bekijk de mogelijkheden en syntax.
dus gewoon zo


$sql="INSERT INTO `account` (u_naam, avatar)
           VALUES ('{$_POST['naam']}','{$_POST['avatar']}')";
		   }
            if (mysqli_query($conn, $sql)) {
            echo "query 1";
            } else {
              echo "niks gevonden";
}
$sql1="INSERT INTO `tickets` (u_naam, avatar)
           VALUES ('{$_POST['naam']}','{$_POST['avatar']}')";
		   }
if (mysqli_query($conn, $sql1)) {
            echo "query 2";
            } else {
              echo "niks gevonden";
}
?>
Je hebt sowieso informatie van het resultaat van de eerste query nodig in de tweede query.

Het is dus zaak dat je de eerste query eerst uitvoert. Daarna zou je $sql prima kunnen hergebruiken, of je plaatst de query-tekst meteen in de aanroep, dan heb je niet eens een variabele nodig.

Maar ik heb ff terug zitten kijken in jouw historie.

Was je hier een aantal maanden geleden (interne link) niet ook al mee bezig?

Ik denk dat het voor de beeldvorming handig is als je hier gewoon even stap voor stap doorheen gaat en niet alles tegelijkertijd probeert te doen. Debug waarden, kijk of INSERTs slagen en of er iets in de database zit.

Begin eens met het uitvoeren van één INSERT-query. De documentatie is hier niet direct heel duidelijk over, maar met behulp van mysqli_insert_id() kun je het auto-increment id van het laatst geINSERTe record opvragen. Deze stop je vervolgens in je tweede query.

Dat mysql_insert_id() is de "vraag autoincrement id op van query #1"-stap uit het bovenstaande boodschappenlijstje. Als je deze gewoon stap voor stap implementeert ben je klaar (althans, met het invoer-deel). En zo zou je in zijn algemeenheid ook code moeten ontwikkelen. Bedenk eerst WAT je gaat doen, en vul het dan simpelweg een voor een in.
Ja, maar gebruik dan fatsoenlijke variabele-namen i.p.v. een nietszeggende $sql en $sql1.
En vergeet de mysqli_real_escape_string() niet!!!

Die "Niks gevonden" slaat ook nergens op, omdat een INSERT querie niks zoekt. Dat doet SELECT.
En dan alsnog controleer je in het geval van een SELECT met een mysqli_num_rows() of een record bestaat.
Je zou je ook kunnen afvragen waarom het aanmaken van een account en het aanmaken van een ticket op hetzelfde moment moet gebeuren.

Waar worden deze tickets uberhaupt voor gebruikt? Zijn dat activatielinks ofzo? En zoja, waarom zitten die in een aparte tabel?
wou het eigenlijks zo hebben maar denk dat alles ook in 1 table kan
elk formulier moet een apparte code hebben
dus zo listing?=46fsjhksaadj

gebruikers info
naam: piet

ticket info
ticket naam hein

maak weer een nieuwe formulier aan

gebruikers info
naam: klaas

ticket info
ticket naam kaas

en krijg weer een nieuwe code link listing?=534rjfsjhfhs
zodat die toko die data afleest wat in de databse staat dan
Gebruikers en tickets zijn twee verschillende entiteiten, dus dat zijn twee tabellen.
Merk op: rand() genereert waarden in een relatief klein bereik. Je maakt er met sha256 wel een lekkere lange "random" string van, maar die is dus niet zo random als dat ie eruit ziet. Je kunt dan beter in een loopje en met random_int() echt willekeurig karakters achter elkaar zetten:

<?php
$chars = 'abcdefghijklmnopqrstuvwxyz0123456789'; //evt. incl. hoofdletters indien case sensitive DB
$token = '';
for($i = 0; $i < 64; $i++) $token .= $chars[random_int(0,strlen($chars) - 1)];
print($token);
?>

Of voeg in ieder geval een beetje "zout" toe aan je hash functie:

<?php
$token = hash('sha256',rand() . 'super geheim');
?>
heb het nou als volgende

<?php
$chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
for($i = 0; $i < 64; $i++) $token .= $chars[random_int(0,strlen($chars) - 1)];
print($token);
$sql = "INSERT INTO account (u_naam, avatar)
VALUES ('. $_POST['naam'].', '. $_POST['avatar'].');";
$sql .= "INSERT INTO tickets (ticket_titel, token)
VALUES ('. $_POST['ticket_naam'].', '.$token.');";

if ($conn->multi_query($sql) === TRUE) {
    echo "succesvol toegevoegd";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?> 
Escape je data die je in je query plaatst tegen SQL-injection.

Reageren