Оптимизиране на код!

dakata__92

Super Moderator
Здравейте ! Кода, който Ви показвам работи, но ме ядосва променливата $id в началото след инклудването на конфига
PHP:
$id = (int)($_GET['id']);
. Задал съм и инт, след което проверявам с иф дали е подадена стойност, а ако не е изпълнявам елс, който фактически ми искарва от базата линкове с цикъл, който когато потребителя кликне на линка подава стойност на променливата ID след което вече се изпълнява самия иф.
PHP:
else 
{ 
	$sql = ("SELECT * FROM tests"); 
	$res = mysql_query($sql) or die(mysql_error()); 
	while($row = mysql_fetch_array($res)) 
	{ 
		echo "<a href='tests.php?id=$row[id]'>$row[ime]</a><br> 
		$row[opisanie]<br><br>"; 
	} 
}
Проблема ми идва от това, че кода въпреки, че работи не е подреден смислово правилно и най-вече проверките не ми вдъхват много доверие. Ще съм благодарен ако някой ми помогне да подредя кода линейно, като хората защото така не мисля, че е добре.

PHP:
<?php 
include ("config.php"); 

$id = (int)($_GET['id']); 

if ($id) 
{ 
	$sql = ("SELECT * FROM questions WHERE testid = '$id' ORDER BY id ASC"); 
	$res = mysql_query($sql) or die(mysql_error()); 
	if (isSet($_POST['submit']))
	{ 
		$veren = 0; 
		$gre6en = 0; 
		$i = 0; 
		while($row = mysql_fetch_array($res)) 
		{ 
			$id = $row["id"]; 
			$otg = $_POST["$id"]; 
			$verniq = $row["otg"]; 
			if ($row["otg"] == $otg) 
			{ 
				$i++; 
				$veren++; 
				echo "<span class='true'>Върпос $i: Вярно!</span><br>"; 
			} 
			else 
			{ 
				$i++; 
				echo "<span class='false'>Върпос $i: Грешно! Верния отговор е: $row[otg] - $row[$verniq]</span><br>"; 
				$gre6en++; 
			} 
		} 
		echo "Верни отговори: ".$veren; 
		echo "<br>Грешни отговори: ".$gre6en; 
		echo "<br>"; 
		$all = $veren + $gre6en; 
		$koef = $veren/$all; 
		$koef = $koef*100; 
		$koef = round($koef); 
		$id = $_GET['id']; 
		$zaqvka = ("SELECT * FROM tests WHERE id = '$id'"); 
		$result = mysql_query($zaqvka) or die (mysql_error()); 
		$row1 = mysql_fetch_array($result); 
		$test = $row1["ime"]; 
		echo "Вашия резултат е: $koef%<br>"; 
		$zaqvka1 = "INSERT INTO `results` (test, verni, greshni, koef) VALUES ('$test', '$veren', '$gre6en', '$koef')"; 
		$res = mysql_query($zaqvka1) or die (mysql_error()); 
		echo"Вашия резултат се записа в таблицата с резултатите и можете да видите резултатите на другите потребители от 
		<a href='testresults.php'>ТУК</a>"; 
	} 
	else 
	{ 
		
		echo "<form name='test' method='POST'>"; 
		$vapros = 1; 
		while ($row = mysql_fetch_array($res)) 
		{ 
			echo "$vapros. $row[vapros]"; 
			echo "<br><input name='$row[id]' type='radio' value='a'>".$row["a"]; 
			echo "<br><input name='$row[id]' type='radio' value='b'>".$row["b"]; 
			echo "<br><input name='$row[id]' type='radio' value='c'>".$row["c"]."<br>"; 
			$vapros++; 
		} 
		echo "<br><input type='button' onclick='javascript: history.back(-1);' name='back' value='Назад'> 
		<input type='submit' name='submit' value='Провери'> <input type='reset' name='reset' value='Наново'><br>"; 
		echo "</form>"; 
	} 
} 
else 
{ 
	$sql = ("SELECT * FROM tests"); 
	$res = mysql_query($sql) or die(mysql_error()); 
	while($row = mysql_fetch_array($res)) 
	{ 
		echo "<a href='tests.php?id=$row[id]'>$row[ime]</a><br> 
		$row[opisanie]<br><br>"; 
	} 
} 
?>
 
PHP:
<?php 
include ("config.php"); 


if (isset($_GET['id'])) 
{ 
$id=(int)$_GET['id'];
        $sql = ("SELECT * FROM questions WHERE testid = '$id' ORDER BY id ASC"); 
        $res = mysql_query($sql) or die(mysql_error()); 
        if (isSet($_POST['submit']))
        { 
                $veren = 0; 
                $gre6en = 0; 
                $i = 0; 
                while($row = mysql_fetch_array($res)) 
                { 
                        $id = $row["id"]; 
                        $otg = $_POST["$id"]; 
                        $verniq = $row["otg"]; 
                        if ($row["otg"] == $otg) 
                        { 
                                $i++; 
                                $veren++; 
                                echo "<span class='true'>Върпос $i: Вярно!</span><br>"; 
                        } 
                        else 
                        { 
                                $i++; 
                                echo "<span class='false'>Върпос $i: Грешно! Верния отговор е: $row[otg] - $row[$verniq]</span><br>"; 
                                $gre6en++; 
                        } 
                } 
                echo "Верни отговори: ".$veren; 
                echo "<br>Грешни отговори: ".$gre6en; 
                echo "<br>"; 
                $all = $veren + $gre6en; 
                $koef = $veren/$all; 
                $koef = $koef*100; 
                $koef = round($koef); 
                $id = $_GET['id']; 
                $zaqvka = ("SELECT * FROM tests WHERE id = '$id'"); 
                $result = mysql_query($zaqvka) or die (mysql_error()); 
                $row1 = mysql_fetch_array($result); 
                $test = $row1["ime"]; 
                echo "Вашия резултат е: $koef%<br>"; 
                $zaqvka1 = "INSERT INTO `results` (test, verni, greshni, koef) VALUES ('$test', '$veren', '$gre6en', '$koef')"; 
                $res = mysql_query($zaqvka1) or die (mysql_error()); 
                echo"Вашия резултат се записа в таблицата с резултатите и можете да видите резултатите на другите потребители от 
                <a href='testresults.php'>ТУК</a>"; 
        } 
        else 
        { 
                
                echo "<form name='test' method='POST'>"; 
                $vapros = 1; 
                while ($row = mysql_fetch_array($res)) 
                { 
                        echo "$vapros. $row[vapros]"; 
                        echo "<br><input name='$row[id]' type='radio' value='a'>".$row["a"]; 
                        echo "<br><input name='$row[id]' type='radio' value='b'>".$row["b"]; 
                        echo "<br><input name='$row[id]' type='radio' value='c'>".$row["c"]."<br>"; 
                        $vapros++; 
                } 
                echo "<br><input type='button' onclick='javascript: history.back(-1);' name='back' value='Назад'> 
                <input type='submit' name='submit' value='Провери'> <input type='reset' name='reset' value='Наново'><br>"; 
                echo "</form>"; 
        } 
} 
else 
{ 
        $sql = ("SELECT * FROM tests"); 
        $res = mysql_query($sql) or die(mysql_error()); 
        while($row = mysql_fetch_array($res)) 
        { 
                echo "<a href='tests.php?id=$row[id]'>$row[ime]</a><br> 
                $row[opisanie]<br><br>"; 
        } 
} 
?>
 
Ееее мерси много ! Жив и здрав да си , имаш +1 от мен вече аз ще си защитавам променливите :)
 
Не е нужно когато слагаш (int) променливата да е ограждаш в скоби.

Примерно както беше направил ти:

$id=(int)($_GET['id']); <-- Това е излишно


$id=(int)$_GET['id']; <-- Попринцип се пише така
 

Горе