# syntax error, unexpected T_LOGICAL_OR



## philishake (8. August 2006)

Hi,
also ich habe hier ein kleines Skript für mein Browsergame, aber er gibt einen Fehler den ich seit Stunden Suche aber nicht finde. Auch google.de konnte mir nicht weiterhelfen. Nun brauche ich eure Hilfe.
Das ist die vollständiger Fehler Nachricht:


```
Parse error: syntax error, unexpected T_LOGICAL_OR in /usr/export/www/vhosts/funnetwork/hosting/53118/repare2.php on line 52
```

Hierzu nun der folgende Quellcode:
repare2.php

```
<?
include('design_in.php');
echo "
<div id=content>
<h1>silent wars - Gebäude</h1>";
include('config.php');
mysql_connect($mysqlhost,$mysqluser,$mysqlpassword) OR die(mysql_error());
mysql_select_db($mysqldb) OR die(mysql_error());

@session_register(nick);

include('include_res.php');

echo "Gebäude Reparatur<br>
<br>
";
$b_typ = $_GET['typ'];
$b_stufe = $_GET['stufe'];
$b_schaden = $_GET['schaden'];
$b_repare = $_POST['percent'];

if($b_repare > 0 AND $b_repare < $b_schaden+1)
{
	$b_kost_e = 15 * $b_schaden;
	$b_kost_s =  9 * $b_schaden; 
	$b_kost_g =  3 * $b_schaden; 
	$b_dauer  = 10 * $b_schaden + time();
		if($b_typ == "hq")   { $b_id = 21; }
	elseif($b_typ == "kas")  { $b_id = 22; }
	elseif($b_typ == "wf") 	 { $b_id = 23; }
	elseif($b_typ == "tech") { $b_id = 25; }
	elseif($b_typ == "hsys") { $b_id = 24; }
	elseif($b_typ == "schm") { $b_id = 26; }
	elseif($b_typ == "tank") { $b_id = 28; }
	elseif($b_typ == "haus") { $b_id = 27; }
	
	$sql = "SELECT eisen,silber,gold FROM acs WHERE Nick = '$nick'";
	$result = mysql_query($sql) OR die(mysql_error());
	if ( mysql_num_rows($result) ) {
	while($row = mysql_fetch_assoc($result)) {
		$eisen = $row['eisen']; 
		$silber = $row['silber']; 
		$gold = $row['gold']; 
	}
	}
	if(b_kost_e >= $eisen OR $b_kost_s >= $silber)
	{	
		mysql_query("UPDATE acs SET eisen=eisen-'$b_kost_e',silber=silber-'$b_kost_s',gold=gold-'$b_kost_g' WHERE Nick = 
		'$nick'") 	
		OR die(mysql_error());
		mysql_query("UPDATE actime SET repb=1,repZ=$b_dauer,repart=$b_id WHERE Nick = '$nick'");
		OR die(mysql_error());
	}
	else { echo "Fehler: Es mangelt dir an Rohstoffen zur Reparatur"; }
}
else { echo "Fehler: Du musst eine Zahl zwischen 1 und $b_schaden eintragen."; }
```

Die Variablen werden alle richtig vom vorher gehenden Skript (repare.php) übertragen, habe sie beriets einzeln auslesen lassen. Hoffe wie immer auf schnelle Hilfe und Danke schon mal im voraus, euer phil


----------



## admichi (8. August 2006)

Hi,

Hab mir den Code angeschaut, der Fehler der dir angezeigt wird, sagt dir bereits wo der Fehler liegt! Du hast wahrscheinlich den Fehler in Zeile 52 gesucht, was fast richtig ist, nur der Fehler liegt, eine Zeile weiter oben.


```
mysql_query("UPDATE actime SET repb=1,repZ=$b_dauer,repart=$b_id WHERE Nick = '$nick'");
        OR die(mysql_error());
```
Der aufgerufene Mysql_query wird ausgeführt und mittels ; beendet, somit versteht er den "OR" Befehl nicht mehr.

Schau dir Zeile 48 - 50 deines Codes an, da ist es richtig, kein ; vor dem OR Befehl ;-)

Lg Admichi

P.S.: Die kleinen Fehler sind oft schwer zufinden!


----------



## philishake (8. August 2006)

oh Mann, ich dnake dir. Ich hasse die kleien symokilons ^^ fast so schlimm wie Klammer vergessen.

mg phil


----------

