Cytat(GoldeNx3 @ 18.04.2011, 12:35:12 )

$zap = mysql_query("SELECT access FROM tabela WHERE nickname = '$nick'") OR die(mysql_error());
$ils = mysql_fetch_array($zap);
$ileflag = $ils['access'];
$b = 'b'; $s = 's'; $z = 'z';
$posb = strpos($ileflag, $b);
$poss = strpos($ileflag, $s);
$posz = strpos($ileflag, $z);
IF($posb == true) $ileflag .= 'b';
IF($poss == true) $ileflag .= 's';
IF($posz == true) $ileflag .= 'z';
$result = mysql_query("UPDATE tabela SET access = '$ileflag' WHERE nickname='$nick'") OR die(mysql_error());
echo "
<div class=\"right_side\">
<br><div><center><table class=\"error\">
<tr><td>
<center><b><font color=\"red\">Stworzono!</font></b></center>
</td></tr>
</table><br></center></div>
</div>";
Gdy nie ma jakiejś literki, to zamienia pole na wartość 0 ; /
Odnośnie Twego kodu mam kilka uwag:
- zgodnie z Twoimi informacjami do pobranej wartości litera miałaby byc dopisywana tylko wtedy gdy jej nie ma. Dlaczego więc dopisujesz ją gdy już w pobranym ciągu znakowym jest? strpos zwraca FALSE gdy znak nie zostaje znaleziony, tak więc zmień warunek
- osobiście zmieniłbym statyczne przypisanie liter i ich osobne testowanie na testowanie z wykorzystaniem pętli. Jak? Może coś w ten deseń:
$ileflag = $ils['access'];
$litery = array('a', 'b', 's');
foreach($litery as $litera)
{
if (! strpos($ileflag, $litera)) {
$ileflag .= $litera;
}
}
Kod pisany z palca, nie testowany, ale powinien działać