php profile token script
Pagina: « vorige 1 2 3 4 5 volgende »
Werkt die query wel via phpMyAdmin of welke client je maar gebruikt?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 gexporteerd 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);
`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 gexporteerd 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?
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
Gewijzigd op 01/10/2019 16:57:09 door pascal klienstra
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?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
?>
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
?>
Gewijzigd op 01/10/2019 17:08:08 door pascal klienstra
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.
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!
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?
:/
de gebruikersnaam kunnen ze sowieso niet aanpassen
heb het nou als volgende
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
include 'config.php';
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{
$_GET['listing'] = 1;
}
$sql = " ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "naam: " . $row["naam"]. " - ticket_titel: " . $row["ticket_titel"]. " " . $row["avatar"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
include 'config.php';
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{
$_GET['listing'] = 1;
}
$sql = " ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "naam: " . $row["naam"]. " - ticket_titel: " . $row["ticket_titel"]. " " . $row["avatar"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
maar hoe zou ik de sql query moeten uitvoeren
gaat via een join denk ik ?
want wil de data ophalen van de toko code die bij de gebruiker hoort en daarna de gegevens van de gebruiker uitvoeren
Gewijzigd op 01/10/2019 17:30:57 door pascal klienstra
Als je data uit een of meerdere tabellen wilt halen, en hier een relatie tussen zit, dan is een JOIN noodzakelijk.
Maar.... Waarom op naam, en niet op ID koppellen? Stel dat iemand zijn naam veranderd? Nu moet je dat in je hele database doen. Niet handig.
krijg de volgende foutmelding
Parse error: syntax error, unexpected 'WHERE' (T_STRING) in C:\xampp\htdocs\lees.php on line 9
Dus kom eens met wat code.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include 'config.php';
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{
$_GET['listing'] = 1;
}
$sql = "SELECT * FROM account INNER JOIN tickets ON account.u_naam = '" . $row['u_naam'] . "'" WHERE tickets.token = '" . $row['token'] . "'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "naam: " . $row["naam"]. " - ticket_titel: " . $row["ticket_titel"]. " " . $row["avatar"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
include 'config.php';
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{
$_GET['listing'] = 1;
}
$sql = "SELECT * FROM account INNER JOIN tickets ON account.u_naam = '" . $row['u_naam'] . "'" WHERE tickets.token = '" . $row['token'] . "'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "naam: " . $row["naam"]. " - ticket_titel: " . $row["ticket_titel"]. " " . $row["avatar"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
Hak je query anders eens in meerdere lijnen:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$sql = "
SELECT * FROM account
INNER JOIN tickets ON account.u_naam = '" . $row['u_naam'] . "'"
WHERE tickets.token = '" . $row['token'] . "'";
";
?>
$sql = "
SELECT * FROM account
INNER JOIN tickets ON account.u_naam = '" . $row['u_naam'] . "'"
WHERE tickets.token = '" . $row['token'] . "'";
";
?>
En dan zie je dat je op lijn 4 een double-quote teveel hebt:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$sql = "
SELECT * FROM account
INNER JOIN tickets ON account.u_naam = '" . $row['u_naam'] . "'
WHERE tickets.token = '" . $row['token'] . "'";
";
?>
$sql = "
SELECT * FROM account
INNER JOIN tickets ON account.u_naam = '" . $row['u_naam'] . "'
WHERE tickets.token = '" . $row['token'] . "'";
";
?>
Gewijzigd op 01/10/2019 18:15:02 door - Ariën -
Parse error: syntax error, unexpected 'naam' (T_STRING) in C:\xampp\htdocs\lees.php on line 20
Code (php)
1
echo "naam: '".$row["naam"]."' - ticket_titel: '".$row["ticket_titel"]."','".$row["avatar"]."'<br>";
Notice: Undefined variable: row in C:\xampp\htdocs\lees.php on line 11
Notice: Undefined variable: row in C:\xampp\htdocs\lees.php on line 12
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
include 'config.php';
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{
$_GET['listing'] = 1;
}
$sql = "
SELECT * FROM account
INNER JOIN tickets ON account.u_naam = '".$row['u_naam']."'
WHERE tickets.token = '" . $row['token'] . "'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "naam: '".$row["naam"]."' - ticket_titel: '".$row["ticket_titel"]."','".$row["avatar"]."'<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
include 'config.php';
if (!isset ($_GET['listing'])) // if not isset
$token = $_GET["listing"];
{
$_GET['listing'] = 1;
}
$sql = "
SELECT * FROM account
INNER JOIN tickets ON account.u_naam = '".$row['u_naam']."'
WHERE tickets.token = '" . $row['token'] . "'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "naam: '".$row["naam"]."' - ticket_titel: '".$row["ticket_titel"]."','".$row["avatar"]."'<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
Gewijzigd op 01/10/2019 18:24:19 door pascal klienstra
Met respect dat je dingen vraagt, maar er is niks mis om zelf ook wat te proberen, en het probleem te onderzoeken door het te analyseren en te debuggen.
Wat Undefined variable: row betekent, hoef ik nu hopelijk vast niet meer uit te leggen. Probeer goed te snappen wat je doet, en niet lukraak wat te proberen!
Gewijzigd op 01/10/2019 18:25:40 door - Ariën -