Template instellen geeft foutmelding
Probleem is dat ik voortdurend deze melding krijg:
Code (php)
1
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/pempnl/public_html/demosite/template.php on line 71
Zou iemand kunnen uitleggen wat ik fout doe of de code enigszins aanpassen voor me? Mogelijk dat mijn code ook korter en beter kan, mogelijk dat hier ook suggesties op kunnen worden gegeven:
http://www.plaatscode.be/142107/
kan je de relevante code eens hier laten zien?
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
//Update template choice
if($_POST['template'] == $_POST['id_layout']){
mysql_query("update games set layout='".$_POST['id_layout']."' where id='".$data['game_id']."'");
}
//Show all templates
$query = mysql_query("SELECT `name`,`screenshot`,`id` FROM `templates` WHERE `id`!='' ORDER BY `id` DESC LIMIT 0,1000")or die(mysql_error());
WHILE($gegeven = mysql_fetch_object($query)){
print <<<ENDHTML
<form method="POST"><input type="hidden" name="template" id="sel" value="$query['id']">
<input type="image" name="template" src="$query['screenshot']" /></form>
ENDHTML;
}
?>
//Update template choice
if($_POST['template'] == $_POST['id_layout']){
mysql_query("update games set layout='".$_POST['id_layout']."' where id='".$data['game_id']."'");
}
//Show all templates
$query = mysql_query("SELECT `name`,`screenshot`,`id` FROM `templates` WHERE `id`!='' ORDER BY `id` DESC LIMIT 0,1000")or die(mysql_error());
WHILE($gegeven = mysql_fetch_object($query)){
print <<<ENDHTML
<form method="POST"><input type="hidden" name="template" id="sel" value="$query['id']">
<input type="image" name="template" src="$query['screenshot']" /></form>
ENDHTML;
}
?>
Persoonlijk zou ik ervoor kiezen om <<< ENDHTML en die print weg te halen, en dit geheel buiten PHP-tags te laten.
Maar betreft het updaten van de template? Enig idee waar dit fout gaat? Ik heb nu dit ervan gemaakt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
//Update template choice
if($_POST['template'] == $_POST['id_layout']){
mysql_query("update games set layout='".$_POST['id_layout']."' where id='".$data['game_id']."'");
}
//Show all templates
$query = mysql_query("SELECT `name`,`screenshot`,`id` FROM `templates` WHERE `id`!='' ORDER BY `id` DESC LIMIT 0,1000")or die(mysql_error());
WHILE($gegeven = mysql_fetch_object($query)){
?>
<form method="POST"><input type="hidden" name="template" id="sel" value="<?php echo $query['id'];?>">
<input type="image" name="template" src="<?php echo $query['screenshot'];?>" /></form>
<?php } ?>
//Update template choice
if($_POST['template'] == $_POST['id_layout']){
mysql_query("update games set layout='".$_POST['id_layout']."' where id='".$data['game_id']."'");
}
//Show all templates
$query = mysql_query("SELECT `name`,`screenshot`,`id` FROM `templates` WHERE `id`!='' ORDER BY `id` DESC LIMIT 0,1000")or die(mysql_error());
WHILE($gegeven = mysql_fetch_object($query)){
?>
<form method="POST"><input type="hidden" name="template" id="sel" value="<?php echo $query['id'];?>">
<input type="image" name="template" src="<?php echo $query['screenshot'];?>" /></form>
<?php } ?>
En de foutmelding is weg. Wel zie ik 3 lege images (klopt want ik heb 3 templates) maar de waardes blijven leeg voor de screenshot en id's.
Gewijzigd op 26/01/2013 13:25:49 door Enrique Gervaso
Nog een goede tip: Kijk eens naar goede foutafhandeling....
Gewijzigd op 26/01/2013 13:30:26 door - Ariën -
Volgens mij zegt PHP dat je een object (van een klasse) aanspreekt als array.
Dus $id of $name is een object en geen array.
Thx!
Gewijzigd op 26/01/2013 13:37:36 door Enrique Gervaso
Klopt ook, ik zou array's aanraden en dan de mysql_fetch_assoc() functie gebruiken.
Als ik nu op een image klik zou de template moeten worden ingesteld. Helaas blijft de regel Layout in de Games kolom voortdurend leeg.
Enig idee wat ik hier fout doe?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
//Update template choice
if($_POST['template'] != ''){
mysql_query("update games set layout='".$_POST['$gegeven->id']."' where id='".$data['game_id']."'");
}
//Load all template information
$query = mysql_query("SELECT `name`,`screenshot`,`id` FROM `templates` WHERE `id`!='' ORDER BY `id` DESC LIMIT 0,1000")or die(mysql_error());
WHILE($gegeven = mysql_fetch_object($query)){
?>
<form method="POST"><input type="hidden" name="template" id="sel" value="<?php echo $gegeven->id;?>">
<input type="image" name="template" alt="<?php echo $gegeven->name;?>" src="<?php echo $gegeven->screenshot;?>" /></form>
<?php } ?>
//Update template choice
if($_POST['template'] != ''){
mysql_query("update games set layout='".$_POST['$gegeven->id']."' where id='".$data['game_id']."'");
}
//Load all template information
$query = mysql_query("SELECT `name`,`screenshot`,`id` FROM `templates` WHERE `id`!='' ORDER BY `id` DESC LIMIT 0,1000")or die(mysql_error());
WHILE($gegeven = mysql_fetch_object($query)){
?>
<form method="POST"><input type="hidden" name="template" id="sel" value="<?php echo $gegeven->id;?>">
<input type="image" name="template" alt="<?php echo $gegeven->name;?>" src="<?php echo $gegeven->screenshot;?>" /></form>
<?php } ?>
$_POST['$gegeven->id'] zal waarschijnlijk $_POST[$gegeven->id] moeten zijn.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
//Indien $_POST template geen waarde heeft.
if(!isset($_POST['template']))
{
//We voeren een query uit.
mysql_query("UPDATE games SET layout='".$_POST['$gegeven->id']."' WHERE id='".$data['game_id']."'") or die (mysql_error());
}
$query = mysql_query("SELECT `name`,`screenshot`,`id` FROM `templates` WHERE `id`!='".$iId."' ORDER BY `id` DESC LIMIT 0,1000") or die(mysql_error());
//Beginnen met de while loop.
while($gegeven = mysql_fetch_object($query))
{
?>
<!-- Beginnen met een formulier. -->
<form method="POST">
<input type="hidden" name="template" id="sel" value="<?php $gegeven->id;?>">
<input type="image" name="template" alt="<?php $gegeven->name;?>" src="<?php $gegeven->screenshot;?>" />
</form>
<!-- Hier eindigen we het formulier. -->
<?php
} //While loop afsluiten
?>
//Indien $_POST template geen waarde heeft.
if(!isset($_POST['template']))
{
//We voeren een query uit.
mysql_query("UPDATE games SET layout='".$_POST['$gegeven->id']."' WHERE id='".$data['game_id']."'") or die (mysql_error());
}
$query = mysql_query("SELECT `name`,`screenshot`,`id` FROM `templates` WHERE `id`!='".$iId."' ORDER BY `id` DESC LIMIT 0,1000") or die(mysql_error());
//Beginnen met de while loop.
while($gegeven = mysql_fetch_object($query))
{
?>
<!-- Beginnen met een formulier. -->
<form method="POST">
<input type="hidden" name="template" id="sel" value="<?php $gegeven->id;?>">
<input type="image" name="template" alt="<?php $gegeven->name;?>" src="<?php $gegeven->screenshot;?>" />
</form>
<!-- Hier eindigen we het formulier. -->
<?php
} //While loop afsluiten
?>
alles dat tussen '' en "" staat wordt gezien als tekst.
(behalve tussen "" gewonen variabelen als "$naam" maar dat is ook geen aanrader dus vergeten die handel. variabelen gewoon altijd buiten ""/'' plaatsen!
dus:
Gewijzigd op 26/01/2013 14:48:07 door Frank Nietbelangrijk
je echo'ed niks in je HTML?
Code (php)
1
2
3
4
5
2
3
4
5
<?php
//We voeren een query uit.
mysql_query("UPDATE games SET layout='".$_POST['$gegeven->id']."' WHERE id='".$data['game_id']."'") or die (mysql_error());
}
?>
//We voeren een query uit.
mysql_query("UPDATE games SET layout='".$_POST['$gegeven->id']."' WHERE id='".$data['game_id']."'") or die (mysql_error());
}
?>
verander dit eens naar:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
//We voeren een query uit.
$query = "UPDATE games SET layout='".$_POST['$gegeven->id']."' WHERE id='".$data['game_id']."'";
echo $query;
mysql_query($query) or die (mysql_error());
}
?>
//We voeren een query uit.
$query = "UPDATE games SET layout='".$_POST['$gegeven->id']."' WHERE id='".$data['game_id']."'";
echo $query;
mysql_query($query) or die (mysql_error());
}
?>
en zie het resultaat van je query-opbouw
Gewijzigd op 26/01/2013 14:53:21 door Frank Nietbelangrijk
je tweede regel geeft een foutmelding op regel 70 van jouw origineel php bestand dat zegt iets als:
De parameter $query is ongeldig. Met andere woorden de variabele heeft geen geldige inhoud. dit kan voorkomen als de query mislukt is. mysql_query() geeft dan FALSE terug, een waarde waar mysql_fetch_object() dan verder niets mee kan.
Wederom bedankt. Helaas krijg ik het toch niet voor elkaar om dit te fixen. Zou iemand mogelijk een correct voorbeeld van mijn script kunnen tonen?
toon je script nog eens dat zou nog wel eens kunnen helpen :-)
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
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
<?php
//Indien $_POST template geen waarde heeft.
if(!isset($_POST['template']))
{
//We voeren een query uit.
mysql_query("UPDATE games SET layout='".$_POST['$gegeven->id']."' WHERE id='".$data['game_id']."'") or die (mysql_error());
}
$query = mysql_query("SELECT `name`,`screenshot`,`id` FROM `templates` WHERE `id`!='".$iId."' ORDER BY `id` DESC LIMIT 0,1000") or die(mysql_error());
//Beginnen met de while loop.
while($gegeven = mysql_fetch_object($query))
{
?>
<!-- Beginnen met een formulier. -->
<form method="POST">
<input type="hidden" name="template" id="sel" value="<?php $gegeven->id;?>">
<input type="image" name="template" alt="<?php $gegeven->name;?>" src="<?php $gegeven->screenshot;?>" />
</form>
<!-- Hier eindigen we het formulier. -->
<?php
} //While loop afsluiten
?>
//Indien $_POST template geen waarde heeft.
if(!isset($_POST['template']))
{
//We voeren een query uit.
mysql_query("UPDATE games SET layout='".$_POST['$gegeven->id']."' WHERE id='".$data['game_id']."'") or die (mysql_error());
}
$query = mysql_query("SELECT `name`,`screenshot`,`id` FROM `templates` WHERE `id`!='".$iId."' ORDER BY `id` DESC LIMIT 0,1000") or die(mysql_error());
//Beginnen met de while loop.
while($gegeven = mysql_fetch_object($query))
{
?>
<!-- Beginnen met een formulier. -->
<form method="POST">
<input type="hidden" name="template" id="sel" value="<?php $gegeven->id;?>">
<input type="image" name="template" alt="<?php $gegeven->name;?>" src="<?php $gegeven->screenshot;?>" />
</form>
<!-- Hier eindigen we het formulier. -->
<?php
} //While loop afsluiten
?>