Цикъл да ми дава 10 резултата

doctorgeo

Registered
Честита Баба Марта!
Как да накарам този скрипт да ми дава 10 резултата защото сега ако не го прекъсна ми дава безброй резултата. Нов съм и циките нещо не ми се отдават.

Код:
<?php

 $i = 0; do
  {
   $i++;

    $randomstring = "";
    $length=8;

      $string .= "abcdefghijklmnopqrstuvwxyz";
         mt_srand((double)microtime()*1000000);
       for ($i=1; $i <= $length; $i++) {
        $randomstring .= substr($string, mt_rand(0,strlen($string)-1), 1);
    }
    $fp = fopen ( "db1.inc" ,"a+");
fwrite($fp, $randomstring." \n" );
fclose($fp);
  }
     while ($i <=10)

?>
 
Ми ти хем ползваш $i за while цикъла, хем за for цикъла. Смени на for да са примерно $j, а не $i.
 
Благодаря за отговора, но и след като промених индексите на променливите е същото. Той скрипта работи, но 1 цикъл брои до безкрай, а аз искам да беои до 10. Нещо с конструкцията или скобите не е в ред. Не можах да намеря конструкжията "цикъл в цикъл"
 
Я виж така, не съм го пробвал:

PHP:
<?php

$string = "";
$randomstring = "";
$length = 8;
$i = 0;
do
{
	$string .= "abcdefghijklmnopqrstuvwxyz";
	mt_srand((double)microtime()*1000000);
	
	for ($j = 1; $j <= $length; $j++) {
		$randomstring .= substr($string, mt_rand(0,strlen($string)-1), 1);
	}
	
    $fp = fopen ( "db1.inc" ,"a+");
	fwrite($fp, $randomstring." \n" );
	fclose($fp);
	$i++;
}
while ($i <= 10);

?>
 
Ето ъака става:



Код:
<?php
$string = "";
$randomstring = "";
$length = 8;
$i = 1;
do
  {
      $string .= "abcdefghijklmnopqrstuvwxyz";
         mt_srand((double)microtime()*1000000);
          for ($j = 1; $j <= $length; $j++) {
        $randomstring .= substr($string, mt_rand(0,strlen($string)-1), 1);

          }

           $i++;}while ($i <= 10);

                  $fp = fopen ( "db1.inc" ,"a+");
                       fwrite($fp, $randomstring."\n" );
                            fclose($fp);

?>

Но сега 10 резултата се записват на 1 ред, а аз искам да са на 10 реда по 1 на ред. Преди ги записваше така. До колкото знам това зависи от "."\n" "
 
Този ред го направи така:

PHP:
$randomstring .= substr($string, mt_rand(0,strlen($string)-1), 1) . "\n";

и махни \n от fwrite(). Т.е. на fwrite() подай само $randomstring.
 
Благодаря
С малка промяна стана.
Код:
// Старо 
// Така ги подежда на всеки ред по 1 буква

$randomstring .= substr($string, mt_rand(0,strlen($string)-1), 1) ."\n";

// Ново

$randomstring .= substr($string, mt_rand(0,strlen($string)-1), 9) ."\n";

Хиляди благодарности.
 
Ако искаш си остави

PHP:
$randomstring .= substr($string, mt_rand(0,strlen($string)-1), 1)

и извън for цикъла сложи $randomstring .= "\n"; , за да можеш да се придържаш към това, което ти искаш.
 
Още веднъж благодаря. Всичко се оправи. Лошото е, че на стари години се овлякох по програмирането, но никога не е късно. Дано да има повече хора да откликват с примери, а не само да дават акъл.
 

Back
Горе