Parse error: unexpected T_AS
Ik heb een foutmelding, en ik weet niet wat het is.
De meding is:
Parse error: syntax error, unexpected T_AS in C:***\autosite\autos.php on line 111
Het gaat dan om:
Hieronder de volledige 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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
// We gaan $_GET['merk'] & $_GET['merk'] omzetten naar een variabele:
$TypeGET1 = implode('%', $_GET['type']);
$TypeGET = explode('%', $TypeGET1);
$MerkGET1 = implode('%', $_GET['merk']);
$MerkGET = explode('%', $MerkGET1);
// Databaseconnectie:
databaseConn();
// We gaan alle automerken uit de database selecteren:
$Select_types = mysqli_query($Conn, "SELECT DISTINCT type FROM vacatures") or trigger_error('Database fout.');
$Select_merken = mysqli_query($Conn, "SELECT DISTINCT merk FROM vacatures") or trigger_error('Database fout.');
// De connectie sluiten:
mysqli_close($Conn);
// Standaard $Brand variabele:
$Brands = '';
// Als er rijen zijn gevonden:
if(mysqli_num_rows($Select) > 0) {
// While loop met merken:
while($Row_types = mysqli_fetch_array($Select_types)) {
$Types = $Row_types['type'].'%'.$Brands;} // Hiermee maken we een string om later een array van te maken
while($Row_merken = mysqli_fetch_array($Select_merken)) {
$Merken = $Row_merken['merk'].'%'.$Brands;} // Hiermee maken we een string om later een array van te maken
// We gaan de laatste letter, teken van $Types * $Merken verwijderen, want dat is %:
$Types = substr($Types, 0, -1);
$Merken = substr($Merken, 0, -1);
// We gaan $Brand terug splitten met explode:
$Types = explode('%', $Types);
$Merken = explode('%', $Merken);
// We gaan de geselecteerde merken splitsen:
foreach (($Types as $Type) && ($Merken as $Merk)) {
// Hier moet een if functie: if(in_array(branche, $BrandGET3))
if(in_array($Merk, $MerkGET)) {
// We gaan alle merken tonen met een input box:
if(in_array($Type, $TypeGET)) {
blablabla;
}
else {
blablabla;
} } } } }
?>
// We gaan $_GET['merk'] & $_GET['merk'] omzetten naar een variabele:
$TypeGET1 = implode('%', $_GET['type']);
$TypeGET = explode('%', $TypeGET1);
$MerkGET1 = implode('%', $_GET['merk']);
$MerkGET = explode('%', $MerkGET1);
// Databaseconnectie:
databaseConn();
// We gaan alle automerken uit de database selecteren:
$Select_types = mysqli_query($Conn, "SELECT DISTINCT type FROM vacatures") or trigger_error('Database fout.');
$Select_merken = mysqli_query($Conn, "SELECT DISTINCT merk FROM vacatures") or trigger_error('Database fout.');
// De connectie sluiten:
mysqli_close($Conn);
// Standaard $Brand variabele:
$Brands = '';
// Als er rijen zijn gevonden:
if(mysqli_num_rows($Select) > 0) {
// While loop met merken:
while($Row_types = mysqli_fetch_array($Select_types)) {
$Types = $Row_types['type'].'%'.$Brands;} // Hiermee maken we een string om later een array van te maken
while($Row_merken = mysqli_fetch_array($Select_merken)) {
$Merken = $Row_merken['merk'].'%'.$Brands;} // Hiermee maken we een string om later een array van te maken
// We gaan de laatste letter, teken van $Types * $Merken verwijderen, want dat is %:
$Types = substr($Types, 0, -1);
$Merken = substr($Merken, 0, -1);
// We gaan $Brand terug splitten met explode:
$Types = explode('%', $Types);
$Merken = explode('%', $Merken);
// We gaan de geselecteerde merken splitsen:
foreach (($Types as $Type) && ($Merken as $Merk)) {
// Hier moet een if functie: if(in_array(branche, $BrandGET3))
if(in_array($Merk, $MerkGET)) {
// We gaan alle merken tonen met een input box:
if(in_array($Type, $TypeGET)) {
blablabla;
}
else {
blablabla;
} } } } }
?>
Weet iemand het?
Gewijzigd op 03/01/2012 21:50:51 door Tom geen
Weet jij nog waar de 3e accolade bij hoort?
Spring de accoaldes eens goed in met tab, en je ziet de fout vast wel.
Gewijzigd op 03/01/2012 21:02:42 door - Ariën -
hoe bedoel je dit?
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
// We gaan $_GET['merk'] & $_GET['merk'] omzetten naar een variabele:
$TypeGET1 = implode('%', $_GET['type']);
$TypeGET = explode('%', $BrandGET1);
$MerkGET1 = implode('%', $_GET['merk']);
$MerkGET = explode('%', $BrandGET2);
// Databaseconnectie:
databaseConn();
// We gaan alle automerken uit de database selecteren:
$Select_types = mysqli_query($Conn, "SELECT DISTINCT type FROM vacatures") or trigger_error('Database fout.');
$Select_merken = mysqli_query($Conn, "SELECT DISTINCT merk FROM vacatures") or trigger_error('Database fout.');
// De connectie sluiten:
mysqli_close($Conn);
// Standaard $Brand variabele:
$Brands = '';
// Als er rijen zijn gevonden:
if(mysqli_num_rows($Select) > 0) {
// While loop met merken:
while($Row_types = mysqli_fetch_array($Select_types)) {
$Types = $Row_types['type'].'%'.$Brands;} // Hiermee maken we een string om later een array van te maken
while($Row_merken = mysqli_fetch_array($Select_merken)) {
$Merken = $Row_merken['merk'].'%'.$Brands;} // Hiermee maken we een string om later een array van te maken
// We gaan de laatste letter, teken van $Types * $Merken verwijderen, want dat is %:
$Types = substr($Types, 0, -1);
$Merken = substr($Merken, 0, -1);
// We gaan $Brand terug splitten met explode:
$Types = explode('%', $Types);
$Merken = explode('%', $Merken);
// We gaan de geselecteerde merken splitsen:
foreach (($Types as $Type) && ($Merken as $Merk)) {
// Hier moet een if functie: if(in_array(branche, $BrandGET3))
if(in_array($Merk, $MerkGET)) {
// We gaan alle merken tonen met een input box:
if(in_array($Type, $TypeGET)) {
blablabla;
}
else {
blablabla;
} } } }
?>
// We gaan $_GET['merk'] & $_GET['merk'] omzetten naar een variabele:
$TypeGET1 = implode('%', $_GET['type']);
$TypeGET = explode('%', $BrandGET1);
$MerkGET1 = implode('%', $_GET['merk']);
$MerkGET = explode('%', $BrandGET2);
// Databaseconnectie:
databaseConn();
// We gaan alle automerken uit de database selecteren:
$Select_types = mysqli_query($Conn, "SELECT DISTINCT type FROM vacatures") or trigger_error('Database fout.');
$Select_merken = mysqli_query($Conn, "SELECT DISTINCT merk FROM vacatures") or trigger_error('Database fout.');
// De connectie sluiten:
mysqli_close($Conn);
// Standaard $Brand variabele:
$Brands = '';
// Als er rijen zijn gevonden:
if(mysqli_num_rows($Select) > 0) {
// While loop met merken:
while($Row_types = mysqli_fetch_array($Select_types)) {
$Types = $Row_types['type'].'%'.$Brands;} // Hiermee maken we een string om later een array van te maken
while($Row_merken = mysqli_fetch_array($Select_merken)) {
$Merken = $Row_merken['merk'].'%'.$Brands;} // Hiermee maken we een string om later een array van te maken
// We gaan de laatste letter, teken van $Types * $Merken verwijderen, want dat is %:
$Types = substr($Types, 0, -1);
$Merken = substr($Merken, 0, -1);
// We gaan $Brand terug splitten met explode:
$Types = explode('%', $Types);
$Merken = explode('%', $Merken);
// We gaan de geselecteerde merken splitsen:
foreach (($Types as $Type) && ($Merken as $Merk)) {
// Hier moet een if functie: if(in_array(branche, $BrandGET3))
if(in_array($Merk, $MerkGET)) {
// We gaan alle merken tonen met een input box:
if(in_array($Type, $TypeGET)) {
blablabla;
}
else {
blablabla;
} } } }
?>
Dat moet dan werken, en zoals Aar zegt, spring de accoaldes goed in, dan zie je dat je er 1 teveel had geplaatst.
owja, die 5e accolade is nog van een bovenliggende else alleen die zagen jullie niet. Maar toch krijg ik die melding dus iets klopt er niet! Maar wat?
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
// We gaan $_GET['merk'] & $_GET['merk'] omzetten naar een variabele:
$TypeGET1 = implode('%', $_GET['type']);
$TypeGET = explode('%', $BrandGET1);
$MerkGET1 = implode('%', $_GET['merk']);
$MerkGET = explode('%', $BrandGET2);
// Databaseconnectie:
databaseConn();
// We gaan alle automerken uit de database selecteren:
$Select_types = mysqli_query($Conn, "SELECT DISTINCT type FROM vacatures") or trigger_error('Database fout.');
$Select_merken = mysqli_query($Conn, "SELECT DISTINCT merk FROM vacatures") or trigger_error('Database fout.');
// De connectie sluiten:
mysqli_close($Conn);
// Standaard $Brand variabele:
$Brands = '';
// Als er rijen zijn gevonden:
if(mysqli_num_rows($Select) > 0)
{
// While loop met merken:
while($Row_types = mysqli_fetch_array($Select_types))
{
$Types = $Row_types['type'].'%'.$Brands;
} // Hiermee maken we een string om later een array van te maken
while($Row_merken = mysqli_fetch_array($Select_merken))
{
$Merken = $Row_merken['merk'].'%'.$Brands;
} // Hiermee maken we een string om later een array van te maken
// We gaan de laatste letter, teken van $Types * $Merken verwijderen, want dat is %:
$Types = substr($Types, 0, -1);
$Merken = substr($Merken, 0, -1);
// We gaan $Brand terug splitten met explode:
$Types = explode('%', $Types);
$Merken = explode('%', $Merken);
// We gaan de geselecteerde merken splitsen:
foreach (($Types as $Type) && ($Merken as $Merk))
{
// Hier moet een if functie: if(in_array(branche, $BrandGET3))
if(in_array($Merk, $MerkGET))
{
// We gaan alle merken tonen met een input box:
if(in_array($Type, $TypeGET))
{
blablabla;
}
else
{
blablabla;
}
}
}
}
?>
// We gaan $_GET['merk'] & $_GET['merk'] omzetten naar een variabele:
$TypeGET1 = implode('%', $_GET['type']);
$TypeGET = explode('%', $BrandGET1);
$MerkGET1 = implode('%', $_GET['merk']);
$MerkGET = explode('%', $BrandGET2);
// Databaseconnectie:
databaseConn();
// We gaan alle automerken uit de database selecteren:
$Select_types = mysqli_query($Conn, "SELECT DISTINCT type FROM vacatures") or trigger_error('Database fout.');
$Select_merken = mysqli_query($Conn, "SELECT DISTINCT merk FROM vacatures") or trigger_error('Database fout.');
// De connectie sluiten:
mysqli_close($Conn);
// Standaard $Brand variabele:
$Brands = '';
// Als er rijen zijn gevonden:
if(mysqli_num_rows($Select) > 0)
{
// While loop met merken:
while($Row_types = mysqli_fetch_array($Select_types))
{
$Types = $Row_types['type'].'%'.$Brands;
} // Hiermee maken we een string om later een array van te maken
while($Row_merken = mysqli_fetch_array($Select_merken))
{
$Merken = $Row_merken['merk'].'%'.$Brands;
} // Hiermee maken we een string om later een array van te maken
// We gaan de laatste letter, teken van $Types * $Merken verwijderen, want dat is %:
$Types = substr($Types, 0, -1);
$Merken = substr($Merken, 0, -1);
// We gaan $Brand terug splitten met explode:
$Types = explode('%', $Types);
$Merken = explode('%', $Merken);
// We gaan de geselecteerde merken splitsen:
foreach (($Types as $Type) && ($Merken as $Merk))
{
// Hier moet een if functie: if(in_array(branche, $BrandGET3))
if(in_array($Merk, $MerkGET))
{
// We gaan alle merken tonen met een input box:
if(in_array($Type, $TypeGET))
{
blablabla;
}
else
{
blablabla;
}
}
}
}
?>
Maar ieder heeft zijn eigen manier, als je het zo doet zie je gelijk of je iets teveel hebt of iets mis.
Gewijzigd op 03/01/2012 21:17:51 door Jurrien P
owja, die 5e accolade is nog van een bovenliggende else alleen die zagen jullie niet. Maar toch krijg ik die melding dus iets klopt er niet! Maar wat?
foreach (($Types as $Type) && ($Merken as $Merk)) {
Dat zal je moeten opdelen in twee foreach loops.
Gewijzigd op 03/01/2012 22:35:15 door Tom geen
Ligt eraan wat je wilt. Dit kan in elk geval niet.
Dat is wat ik wil.
Gewijzigd op 03/01/2012 23:43:17 door - Ariën -
Kan je niet beter meteen het juiste merk en type uit de db selecteren in plaats van processen in arrays?
Alleen, als ik nu naar je code kijk gebruik je ook nog "if(in_array($Merk, $MerkGET))".... dat begrijp ik niet. $merk is een element uit de array $merken en dan ga je daarop nog een inarray() loslaten. Dat lijkt me onzinnig. Die inarray() zou je op $merken los moeten laten (maar dan heb je die foreach niet meer nodig). Of is $merken een multidimensionale array?
Toevoeging op 03/01/2012 23:19:13:
Ok, ik kijk nu nog verder, en het spijt me zeer, maar wat je doet is uhm.... erg omslachtig en volkomen overdreven.
Eerst zet je namelijk alle types achter elkaar in een string met een delimiter ertussen:
$Types = $Row_types['type'].'%'.$Brands;
En dan splits je ze weer met explode:
$Types = explode('%', $Types);
Om vervolgens eerst met foreach er doorheen te lopen en dan in die loop weer een inarray() te gebruiken....
Echt, ik weet niet waarom je denkt dat dit nodig is, maar ik zou je willen aanraden dit even allemaal te deleten en opnieuw te beginnen.
Gewijzigd op 03/01/2012 23:19:46 door Erwin H
Toevoeging op 04/01/2012 08:57:25:
Hey Erwin,
Ik heb even gouw een aanpassing gedaan, ik heb alleen nog even geen tijd om het te controleren. Maar denk je dat dit gaat werken:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
// We gaan $_GET['merk'] & $_GET['merk'] omzetten naar een variabele:
$TypeGET1 = implode('%', $_GET['type']);
$TypeGET = explode('%', $TypeGET1);
$MerkGET1 = implode('%', $_GET['merk']);
$MerkGET = explode('%', $MerkGET1);
// Databaseconnectie:
databaseConn();
// We gaan alle automerken uit de database selecteren:
$Select_types = mysqli_query($Conn, "SELECT DISTINCT type FROM autos") or trigger_error('Database fout.');
$Select_merken = mysqli_query($Conn, "SELECT DISTINCT merk FROM autos") or trigger_error('Database fout.');
$Select_count = mysqli_query($Conn, "SELECT COUNT(*) AS aantal FROM autos") or trigger_error('Database fout.');
// De connectie sluiten:
mysqli_close($Conn);
// Als er rijen zijn gevonden:
if(mysqli_num_rows($Select) > 0)
{
// While loop met merken:
while($Row_types = mysqli_fetch_array($Select_types))
{
$Types = $Row_types['type'];
}
while($Row_merken = mysqli_fetch_array($Select_merken))
{
$Merken = $Row_merken['merk'];
}
while($Row_count = mysqli_fetch_array($Select_count))
{
$Count = $Row_count['aantal'];
}
// We gaan de geselecteerde merken splitsen:
If($i, $i <$Count, $i++)
{
If (in_array($Merken[$i],$MerkGET))
{
if(in_array($Types[$i], $TypeGET))
{
blablabla;
}
else
{
blablabla;
}
}
}
}
?>
// We gaan $_GET['merk'] & $_GET['merk'] omzetten naar een variabele:
$TypeGET1 = implode('%', $_GET['type']);
$TypeGET = explode('%', $TypeGET1);
$MerkGET1 = implode('%', $_GET['merk']);
$MerkGET = explode('%', $MerkGET1);
// Databaseconnectie:
databaseConn();
// We gaan alle automerken uit de database selecteren:
$Select_types = mysqli_query($Conn, "SELECT DISTINCT type FROM autos") or trigger_error('Database fout.');
$Select_merken = mysqli_query($Conn, "SELECT DISTINCT merk FROM autos") or trigger_error('Database fout.');
$Select_count = mysqli_query($Conn, "SELECT COUNT(*) AS aantal FROM autos") or trigger_error('Database fout.');
// De connectie sluiten:
mysqli_close($Conn);
// Als er rijen zijn gevonden:
if(mysqli_num_rows($Select) > 0)
{
// While loop met merken:
while($Row_types = mysqli_fetch_array($Select_types))
{
$Types = $Row_types['type'];
}
while($Row_merken = mysqli_fetch_array($Select_merken))
{
$Merken = $Row_merken['merk'];
}
while($Row_count = mysqli_fetch_array($Select_count))
{
$Count = $Row_count['aantal'];
}
// We gaan de geselecteerde merken splitsen:
If($i, $i <$Count, $i++)
{
If (in_array($Merken[$i],$MerkGET))
{
if(in_array($Types[$i], $TypeGET))
{
blablabla;
}
else
{
blablabla;
}
}
}
}
?>
Ik ben alleen nog niet helemaal eruit hoe dat count gaat werken! Dus als je tip hebt?
Tom geen op 03/01/2012 23:39:21:
los van je laatste toevoeging, daar zal ik nog eens naar kijken! Maar wat betreft de if(in_array($merk,$merkGET)), je wilt toch eest 1 merk selecteren, en dan pas kijken of dit merk in de lijst $merkGET voorkomt! En vervolgens dat met elke item uit de foreach loop!
Maar hoeveel elementen denk jij dat er in de array $merkGET zitten dan? $merkGET definieer je als volgt:
Code (php)
Oftewel, er zit maar 1 element in die hele array.... Dus waarom er een array van maken in de eerste plaats?
Zoals ik al zei, echt, ik denk dat je beter opnieuw kunt beginnen want afgezien van de syntax fouten klopt je structuur gewoon niet. Uiteraard kunnen we je er bij helpen, maar dat gaat beter vanaf een lege pagina.
Probeer anders eens uit te leggen wat je nu precies wilt bereiken. Welke gegevens zitten er bijvoorbeeld in je GET array (variabele type, wat betekenen ze), wat wil je er mee doen en wat voor gegevens zitten er in je database? Hoe is die gestructureerd en op welke manier moeten de gegevens in je database gecontroleerd worden met de gegevens in je GET array. Het zou mij namelijk niet verbazen als je bijna je hele script kan vervangen door een query.
Wat ik heb is 1 tabel, met daarin alle beschikbare auto’s met de velden:
Merk, type, bouwjaar, apk, beschrijving enz…
Nu wil ik dat je kunt aanvinken welk merk dat je wilt zoeken, bijvoorbeeld alleen volkswagen, opel en peugot. (deze worden bij mijn in $MerkenGET gepost) Maar je kunt alleen een merk selecteren als deze ook daadwerkelijk in de db aanwezig is. Want als er geen Bentley beschikbaar is, dan hoeft deze ook niet in de keuzelijst te staan (dat wordt onoverzichtelijk).
Vervolgens wil ik alle types tonen die in de db beschikbaar zijn, is er geen Opel Astra beschikbaar, dan deze ook niet tonen! Vervolgens wil ik wanneer ik een aantal types heb geselecteerd, deze gezocht worden. Mocht ik toch nog een ander type willen selecteren, dan moet je opnieuw zoeken, en dan moet alles WEL geselecteerd blijven? Niet dat je dan al je selectiekeuzes kwijt bent! (Deze post ik dus in $typesGET)
Dat is wat ik wil bereiken! En ik dacht dat dit wel zou werken, maar ik zou het fijn vinden als je me wilt helpen verbeteren.
Tom geen op 04/01/2012 09:59:18:
Dat is wat ik wil bereiken! En ik dacht dat dit wel zou werken, maar ik zou het fijn vinden als je me wilt helpen verbeteren.
We gaan in elk geval een poging wagen.
Dus als ik het goed begrijp wil je met dit script controleren of de aangevinkte merken en types wel in je database staan en of die dus getoond kunnen worden?
Dan nog een paar vragen. Hoe weet je dat de merk/type combinaties kloppen? Wat als iemand bijvoorbeeld Audi en Corsa aanvinkt? Laat je dan alle Audi's zien en alle Opel Corsa's, of zeg je dan dat dat geen juiste combinatie is? Wat is het eindresultaat van het script, moeten alle records die aan de aangevinkte merken/types voldoen worden getoond?
Als iemand Audi Corsa selecteerd, dan krijg hij inderdaad een melding dat dat niet klopt. Maar dat is bij de upload page aan de orden.
Maar als je al je gewenste merken/types hebt aangevinkt. Dan krijg je inderdaag een lijst met alle beschikbare aanbiedingen. Dat mogen dus gewoon 7 opel corsa's zijn of net hoeveel aanbiedingen er zijn.
Maar hoe kunnen de merken en types dan aangevinkt worden? Zijn het twee losse lijsten waar je meerdere kunt selecteren? Wat als ik Audi, Opel, Volvo aanvink als merken, en dan Clio als type? Hoe weet je in dit script welk merk(en) en type(s) bij elkaar horen (afgezien van wat er in de DB staat, puur op basis van de info die je van de gebruiker krijgt)?
En ik dacht als ik een lijst heb van merken en een van types, dat deze 1 op 1 gelijk zouden lopen en dus altijd bij elkaar horende merk/types hebt. Maar heel strikt genomen, heb je wel gelijk dat je uit de orden kan gaan lopen met je lijst en dat de eene lijst voorloop op de andere lijst, en dus een verkeerde types bij merken krijg. (dat is wel het gevaar! inderdaad)