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

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

if (isset($_GET['listing']))
{
    $token = $mysqli->real_escape_string($get);
    $get = $_GET['listing'];
    $sql = "
SELECT * FROM account
INNER JOIN tickets ON account.u_naam = '".$row['u_naam']."'
WHERE tickets.token = '".$token."'";
    $result = $conn->query($sql);
    if ($result->num_rows > 0)
    {
        if($row = $result->fetch_assoc())
        {
            echo $row["ticket_naam"];
			echo $row["u_naam"];
            echo "<pre>".print_r($row,true)."</pre>";
        }
    }
    else
    {
        echo "0 results";
    }
}
?>

heb het terug gelezen weet echt niet wat ik fout doe

Notice: Undefined variable: mysqli in C:\xampp\htdocs\lees.php on line 6

Fatal error: Uncaught Error: Call to a member function real_escape_string() on null in C:\xampp\htdocs\lees.php:6 Stack trace: #0 {main} thrown in C:\xampp\htdocs\lees.php on line 6
Waar komt $row op lijn 10 dan vandaan?

Met alle respect dat je wilt programmeren. Maar als je echt zulke dingen niet doorhebt, dan zit je echt te sleutelen aan iets waar je geen ervaring mee hebt, wat uiteindelijk instabiel zal worden. We willen best helpen, maar het is niet de bedoeling dat we constant je hand beet blijven houden.

Ga zelf eens na of het niet beter is om dit in de vrieskist te stoppen, om je eens te richten op de simpele basis van PHP, i.p.v. een heel ticketsysteem met (voor jouw complexe joins en complexe structuren).

Ook zie ik wisselende variabelen ($conn, $mysqli), wat mij aan het denken zet dat je gewoon van diverse tutorials gewoon lukraak wat staat te copy/pasten, met alle hoop dat het aansluit op je script? Zo, ja, dan heb je ergens de foute afslag genomen.
PHP geeft echt superduidelijke foutmeldingen.

Ik zou je echt aanraden deze eens goed te lezen en daarmee aan de slag te gaan. De beste manier om PHP te leren is wat mij betreft door te leren te debuggen, want dat drukt je neus (in de boter en) op de feiten. Dit in tegenstelling tot een soort overklopexercitie, en dan maar hopen dat je geen fouten maakt, en als je fouten maakt ben je hopeloos verloren omdat je eigenlijk niet goed snapte waar je mee bezig was...

Lees de melding nog eens goed:
Notice: Undefined variable: mysqli in C:\xampp\htdocs\lees.php on line 6

Daar staat precies aangegeven wat er aan scheelt. Op regel 6 staat een ongedefinieerde variabele: mysqli. Verderop gebruik je $conn voor hetzelfde doel: het object dat het mysqli-object zou moeten voorstellen. Persoonlijk zou ik deze gewoon "$db" noemen eerlijk gezegd. Goede naamgeving maakt je code ook een stuk intuïtiever.

De rest van de foutmeldingen zijn (vaak, maar niet altijd) een gevolg van de eerste fout. Los deze dus altijd in de volgorde waarin deze gemeld worden op en dan verdwijnt de rest mogelijk vanzelf.

Maar breng eens lijn aan in wat je doet en probeer te doorgronden wat er gebeurt. Dit is tot nu toe niets meer dan een typecurses geweest.

Reageren