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
Werkt die query wel via phpMyAdmin of welke client je maar gebruikt?
zelf invoeren werkt wel via phpmyadmin


CREATE TABLE `tickets` (
  `token` char(64) NOT NULL,
  `u_naam` varchar(250) 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
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Gegevens worden geëxporteerd voor tabel `tickets`
--

INSERT INTO `tickets` (`token`, `u_naam`, `ticket_naam`, `ticket_datum`, `plaats`, `prijs`, `betaallink`, `u_id`) VALUES
('dsfdssdf', 'sdfd', 'sdd', '2019-10-16', 'sdfsd', 2, 'sdsds', 11);
En als je i.p.v. de multi_query() gewoon twee losse query()'s uitvoert?
hou zou ik het dan moeten doen moet de if

if ($conn->multi_query($sql) === TRUE) {


aah als ik de query alleen ticket uitvoert krijg ik als volgende
Error: INSERT INTO tickets (token, u_naam, ticket_naam) VALUES ('b1gzhglw48miqlsqlzvaretho4iyd7ephimpotdclkzqpmtbb55l14bkl39rbg4a','tttt',tttt');
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '')' at line 2
Zoal je normaal met de query() functie doet, maar dan twee keer. Dan heb je veel meer controle per query.

Je mist een single-quote voor je laatste veld.
ik zag hem al werkt nu wel

heb nu mijn lees script,
alleen hoe kan ik het zo doen
hij zoekt de token in get,
de sql zit in tickets ook u_naam die naam wordt daar ook opgeslagen
nou wil ik de data aflezen van token en die hoort bij de naam de gegevens van account afleest van de table tickets.


<?php
include('config.php');
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{
  $_GET['listing'] = 1;
    
}
$sql = "SELECT *
        FROM tickets
        WHERE token ='".mysql_real_escape_string($token)."'";
$selecteer = mysql_query($sql);
if(!$selecteer)
{
    // ERROR
}

echo '<ul>';

while($selecteer_array = mysql_fetch_array($selecteer))
{
    $sql = "SELECT *
            FROM account
            WHERE u_naam=" . $selecteer_array ['u_naam'];
    $selecteer_gebruiker = mysql_query($sql); //
    if(!$selecteer_gebruiker)
    {
        // ERROR
    }

    $data_array = mysql_fetch_array($selecteer_gebruiker);
    
    
    echo '<table width="608" height="200">';
    echo '<tr>';
    echo '<td>' . $selecteer_data_array ['u_naam'] . '</h1></td>';
    echo '<td><h1>' . $selecteer_data_array ['avatar'] . '</h1></td>';
    echo '<td>' . $selecteer_data ['ticket_naam'] . '</td>'; 
    echo '<br />';
    echo '</tr>';
    echo '</table>';
}// while

?>

Uhm.

multi_query() is echt een heel slecht plan.

Allereerst omdat escaping dan nogal lastig kan worden.

Maar ook: het is waarschijnlijk een verkeerde aanpak voor hetgeen je wilt bereiken. Waarschijnlijk is het de bedoeling dat je een aantal queries in één ruk uitvoert, of in zijn geheel niet, correct? Daarvoor zijn database transacties. Een multi_query kan halverwege op zijn bek gaan en dan zit je database vol met half gebakken troep, dat wil je echt niet in een administratief systeem.

Daarnaast, deze "discussie", of liever gezegd, dit schaakspel, duurt nou al (wéér, want dit is niet de eerste keer) vier pagina's, en je bent nog niet veel verder gekomen.

Zoals ik al eerder aangaf, pak dingen eens stapsgewijs aan. En doe het eens wat rustiger aan. Je berichten en reacties worden in een snelvuurtempo hier neergeplempt. Je ben meestal al 3 reacties verder voordat ik een reactie heb getypt. Je komt nogal "hyper" over.

Met stapsgewijs bedoel ik het volgende: dus ok, je moet informatie je database inrammen, maar dit begint met een formulier. Maak eerst dit formulier. Dan heb je een verwerking met validatie. Dump de data van het formulier eens naar je scherm voordat je het de database in wilt sturen. Maak een bijbehorende validatie en programmeer een beslismoment: klopt deze informatie en kan deze zo worden weggeschreven of moet deze door de gebruiker gecorrigeerd worden? Schrijf dan je query. Dump de uiteindelijke query eens naar je scherm. Ziet alles er goed uit? Voer de query of queries dan ook uit. Geen foutmeldingen, voeg dan een redirect toe naar een overzichts- of bedankpagina of de loginpagina of wat dan ook.

Dit kun je allemaal opdelen in behapbare stukjes maar jij probeert echt alles tegelijkertijd te doen en aan het uiteinde komt er alleen maar stront uit. Tel eens tot 10 en vraag je dan af: wat werkt al, en wat is de eerstvolgende stap die ik werkend moet krijgen in dit geheel. En ga dan enkel aan de slag met die eerstvolgende stap en niets anders. Als je dit gewoon consequent doet dan ben je op een gegeven moment klaar en werkt alles. Nu vlieg je van hot naar her met als resultaat dat:
- er geen enkele structuur zit in je werkwijze
- er geen enkele structuur zit in je code
- er niets werkt
Nog voordat je wat dan ook doet zul je eerst eens je eigen aanpak onder de loep moeten nemen. Breng hier structuur in aan want wat je nu aan het doen bent is pure chaos.
De invoer script werkt nu wel,
en ben nu bezig met het lees script.
alleen weet ik niet zo goed hoe ik het aan moet pakken met de if get
zodat die ?listing=534525354353553 die token table afleest van de gebruiker en die afleest van de gebruiker info.
Je kan de $_GET['listing'] (token?) gebruiken in je WHERE. Let op escaping!
De code hierboven snijdt geen hout.

Je neemt $_GET['listing'] over als deze niet bestaat? Let op het uitroepteken, er staat zelfs in commentaar "if NOT isset", dan is er toch geen informatie om over te nemen?

Je voert een while uit op een query die precies één resultaat zou moeten hebben? Ik neem aan dat tokens uniek moeten zijn?

Enne, een usernaam om de informatie aan elkaar te hangen? Wat als deze gebruiker zijn profielnaam verandert? Waarom geen user id? En waarom niet in één query?

:/

Reageren