Цикал for многозапис

BattleGrounds

Registered
в цикала има $text;

Код:
for($i=1; $i <= 10; $i++){ 
$text.=tekst1;
$text.=tekst2;
$text.=tekst3;
echo $text;
}
така изкарва
tekst1tekst2tekst3
Примерно 10 пъти колкото е цикала
Та въпросът ми е как да направя така този текст
Код:
tekst1tekst2tekst3
Да ми го запиши ето така нали според цикала
Код:
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
10 пъти
защото като сложа mysql_query вътре в цикала
то не записва така
а записва 10 различни пъти
Код:
tekst1tekst2tekst3
Вместо всичко на едно както на мен ми трябва
 
HunteR каза:
Код:
$text.=tekst1;
$text.=tekst2;
$text.=tekst3;
for($i=1; $i <= 10; $i++){
echo $text.'<br />';
}
:idea:
проблема е че текста е вътре в цикала
едит: така както си ми го дал няма да ми извади това което искам
ще извади това
Код:
tekst1tekst2tekst3
а не това
Код:
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
 
Изобщо пробва ли го?

Аз го пробвах и извежда това:
Код:
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
tekst1tekst2tekst3
 
d_badboy каза:
<?php
for($i=1; $i <= 10; $i++){
for ($y=1; $y <= 3; $y++) {
$text.="tekst".$y;
}
$text.="<br />";
}
echo $text;
?>
Тествано е и работи :)
Имам чувство че се правите или просто ви идва така :roll:
значи правя битки за РПГ игра
и в цикала на едно място ми вади
иморал удря
по надоло
и нанася 30 щета
по надоло
Пеши удря и пропуска
и така

и трябва да го сглобя за да се получи

иморал удря и нанася 30 щета
Пешо удря и пропуска

и така 10 рунда за да се получи един дълаг текст като доклад

нали накрая след всичкия текст имам
Код:
$d=date("m-d (H:i:s)");
$doklad= "INSERT into pmessages (title, type, message, touser, sender, date) VALUES (
'Битка', 
'Бяхте атакуван', 
'".$text."', 
'".$selectdlife[hero]."', 
'Game', 
'".$d."'
)" ;
echo $doklad;
mysql_query($doklad) or die(mysql_error());
Само че проблема е че създава нови и нови
а целта ми е да вкаара всичко на 1 път
 
Еми значи променливата трябва да ти е в цикъла, след което извън цикъла вкараш в базата.

for($i=1; $i <= 10; $i++){
$text.=tekst1;
$text.=tekst2;
$text.=tekst3;
}
echo $text; // или mysql_query...
 
HunteR каза:
Еми значи променливата трябва да ти е в цикъла, след което извън цикъла вкараш в базата.

for($i=1; $i <= 10; $i++){
$text.=tekst1;
$text.=tekst2;
$text.=tekst3;
}
echo $text; // или mysql_query...
Пробвах
трябваше да ми вкара това
Код:
Рунд 1
imorala удря u3p0g и пропуска.
u3p0g удря imorala и нанася 9 щета. остава на 775 живот
Рунд 2
imorala удря u3p0g и нанася 17 щета.u3p0g остава на 680 живот
u3p0g удря imorala и пропуска.
Рунд 3
imorala удря u3p0g и нанася 19 щета.u3p0g остава на 661 живот
u3p0g удря imorala и нанася 11 щета. остава на 764 живот
Рунд 4
imorala удря u3p0g и нанася 18 щета.u3p0g остава на 643 живот
u3p0g удря imorala и нанася 13 щета. остава на 751 живот
Рунд 5
imorala удря u3p0g и нанася 15 щета.u3p0g остава на 628 живот
u3p0g удря imorala и нанася 8 щета. остава на 743 живот
Рунд 6
imorala удря u3p0g и нанася 18 щета.u3p0g остава на 610 живот
u3p0g удря imorala и нанася 12 щета. остава на 731 живот
Рунд 7
imorala удря u3p0g и нанася 15 щета.u3p0g остава на 595 живот
u3p0g удря imorala и нанася 8 щета. остава на 723 живот
Рунд 8
imorala удря u3p0g и нанася 21 щета.u3p0g остава на 574 живот
u3p0g удря imorala и нанася 11 щета. остава на 712 живот
Рунд 9
imorala удря u3p0g и нанася 17 щета.u3p0g остава на 557 живот
u3p0g удря imorala и нанася 10 щета. остава на 702 живот
Рунд 10
imorala удря u3p0g и пропуска.
u3p0g удря imorala и нанася 9 щета. остава на 693 живот
Битката завършва равно
А то ми вкара това
Рунд 10
Код:
imorala удря u3p0g и пропуска.
u3p0g удря imorala и нанася 9 щета. остава на 693 живот
Битката завършва равно
 
Значи отново така :)
Код:
<?php
	for($i=1; $i <= 10; $i++){
		for ($y=1; $y <= 3; $y++) {
			$text.="tekst".$y;
		}
		// SQL кода и заявката тука !!!
	}
?>
 
d_badboy каза:
Значи отново така :)
Код:
<?php
	for($i=1; $i <= 10; $i++){
		for ($y=1; $y <= 3; $y++) {
			$text.="tekst".$y;
		}
		// SQL кода и заявката тука !!!
	}
?>
Ми не така ... нестава защото текста първо
не е на едно място а е разделен на 3-4 места и се свързва с .= за да стани един голям текст
 
Ето го целия код
Код:
for($i=1; $i <= 10; $i++){ 
$selectalife=mysql_fetch_array(mysql_query("SELECT * FROM heroes WHERE hero='".$_SESSION['hero']."'"));
$selectdlife=mysql_fetch_array(mysql_query("SELECT * FROM heroes WHERE id='".$_GET[attack]."'"));
$ev=rand(1,100);
$dev=rand(1,100);
$nev=(100-$evasion);
$ndev=(100-$devasion);
###############ATTACKER --> DEFENDER
$text="";
$text.= "Рунд ".$i."<br>";
$text.= "".$_SESSION['hero']." удря ".$selectdlife[hero]." ";

if($ev >= $ndev){
$text.= "и пропуска.<br>";
}else{
$vdmg=rand($str,$max_str);
$vkarvadmg=($vdmg-$darmor);
if($vkarvadmg >= 1){
$dnewlife=$selectdlife[life]-$vkarvadmg;
mysql_query("UPDATE heroes SET life=".$dnewlife." WHERE id='".$defender[id]."'");

$text.= "и нанася ".$vkarvadmg." щета.".$selectdlife[hero]." остава на ".$dnewlife." живот<br>";

if($dnewlife <= 0){
$text.= "Победител е ".$_SESSION['hero']."<br> остава на ".$selectalife[life]." ";
include("footer.php");
exit;
}
}
}
################DEFENDER ---> ATACKER#################
$text.= "".$selectdlife[hero]." удря ".$_SESSION['hero']." ";
if($dev >= $nev){
$text.= "и пропуска.<br>";
}else{
$vdmg=rand($dstr,$dmax_str);
$vkarvadmg=($vdmg-$armor);
if($vkarvadmg >= 1){
$anewlife=$selectalife[life]-$vkarvadmg;
mysql_query("UPDATE heroes SET life=".$anewlife." WHERE hero='".$_SESSION['hero']."'");
$text.= "и нанася ".$vkarvadmg." щета.".$selectаlife[hero]." остава на ".$anewlife." живот<br>";
if($anewlife <= 0){
$text.= "Победител е  ".$selectdlife[hero]."<br> остава на ".$selectdlife[life]." ";
include("footer.php");
exit;
}
}
}
if(($i == 10) AND ($anewlife >= 1) AND ($dnewlife >= 1)){
$text.= "Битката завършва равно";

}

echo $text;
$d=date("m-d (H:i:s)");
$doklad= "INSERT into pmessages (title, type, message, touser, sender, date) VALUES (
'Битка', 
'Бяхте атакуван', 
'".$text."', 
'".$selectdlife[hero]."', 
'Game', 
'".$d."'
)" ;
mysql_query($doklad) or die(mysql_error());
}
 
Ами текста предполагам е в променливи. Ако не е можеш спокойно да ги вкараш в този вид $text1, $text2, $text3, ... И след това да използваш моя метод :)
 
Може и с масив:
Код:
<?php
for ($i = 1; $i <= 10; $i++) {
    $selectalife = mysql_fetch_array(mysql_query("SELECT * FROM heroes WHERE hero='" .
        $_SESSION['hero'] . "'"));
    $selectdlife = mysql_fetch_array(mysql_query("SELECT * FROM heroes WHERE id='" .
        $_GET[attack] . "'"));
    $ev = rand(1, 100);
    $dev = rand(1, 100);
    $nev = (100 - $evasion);
    $ndev = (100 - $devasion);
    ###############ATTACKER --> DEFENDER
    
    $text[]= "Рунд " . $i . "<br>";
    $text[]= "" . $_SESSION['hero'] . " удря " . $selectdlife[hero] . " ";

    if ($ev >= $ndev) {
        $text[]= "и пропуска.<br>";
    } else {
        $vdmg = rand($str, $max_str);
        $vkarvadmg = ($vdmg - $darmor);
        if ($vkarvadmg >= 1) {
            $dnewlife = $selectdlife[life] - $vkarvadmg;
            mysql_query("UPDATE heroes SET life=" . $dnewlife . " WHERE id='" . $defender[id] .
                "'");

            $text[]= "и нанася " . $vkarvadmg . " щета." . $selectdlife[hero] .
                " остава на " . $dnewlife . " живот<br>";

            if ($dnewlife <= 0) {
                $text[]= "Победител е " . $_SESSION['hero'] . "<br> остава на " . $selectalife[life] .  " ";
                include ("footer.php");
                exit;
            }
        }
    }
    ################DEFENDER ---> ATACKER#################
    $text[]= "" . $selectdlife[hero] . " удря " . $_SESSION['hero'] . " ";

    if ($dev >= $nev) {
        $text[]= "и пропуска.<br>";
    } else {
        $vdmg = rand($dstr, $dmax_str);
        $vkarvadmg = ($vdmg - $armor);
        if ($vkarvadmg >= 1) {
            $anewlife = $selectalife[life] - $vkarvadmg;
            mysql_query("UPDATE heroes SET life=" . $anewlife . " WHERE hero='" . $_SESSION['hero'] . "'");
            $text[]= "и нанася " . $vkarvadmg . " щета." . $selectаlife[hero] .
                " остава на " . $anewlife . " живот<br>";
            if ($anewlife <= 0) {
                $text[]= "Победител е  " . $selectdlife[hero] . "<br> остава на " . $selectdlife[life] . " ";
                include ("footer.php");
                exit;
            }
        }
    }
    if (($i == 10) and ($anewlife >= 1) and ($dnewlife >= 1)) {
        $text[]= "Битката завършва равно";

    }

    $d = date("m-d (H:i:s)");
    for ($x = 1; $x < 10; $x++) {
    	for ($y = 1; $y < count($text); $y++) {
    		$text.=$text[$y];
    	}
    	
    	$doklad = "INSERT into pmessages (title, type, message, touser, sender, date) VALUES (
			'Битка',
			'Бяхте атакуван',
			'" . $text . "',
			'" . $selectdlife[hero] . "',
			'Game',
			'" . $d . "'
		)";
	    mysql_query($doklad) or die(mysql_error());
    }
}
?>
 
MontefuckeR каза:
Код:
		$text = "asd";
		$text .="123<br />";
		for($i = 0;$i<10;$i++)
		{
			echo $text;
		}

Излиза на екрана:
asd123
asd123
asd123
asd123
asd123
asd123
asd123
asd123
asd123
asd123
дам то излиза много ясно ама това е определен текст а с променливата е напълно друго дадох по горе целия цикал
 
MontefuckeR каза:
$text това не е ли променлива?
да променлива е но като е в цикал и всеки път се появява различни и накрая искам да запиша един дълаг текст с echo $text ги вади едно след друго но така записва 10 различни ...
 

Back
Горе