Автор Тема: Pomogite... ya saputalsy v sobstvenom sintakse i nemogu proiti dalshe...  (Прочитано 2532 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Hong

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.hong.de
Privet vsem.

Pomogite pojaluista, ya ne mogu rasobratsya, ne poluchaetsya dalshe!
Ya napisal script kotoriy generiruet 8-snachnie chisla. Eti chisla sapominautsya v base dannih.
U menya nikak ne poluchaetsya napisat sleduysheu chast scripta, ya uje proboval raslichnimi metodami
(@ snak pered oshibkoi; raslichnie zikli for; i raslichnie zikli while), no ne kak ne dobilsy resultata.

Esli odno is sgenerirovanih chisel povtoritsy s chislom kotoroe uje sapomnino v base dannih,
ono doljno ne sapominatsy v basu dannih i ne vidavat oshibki,
a generirovat novie/novoe chisla/chislo dla povtornogo sapominaniya.
V etom sluchae doljno sapominatsy po 3 chisla.
Ya privoju sdes moi script s soedineniem s basoi dannih i tablizu v kotoroi vse sapominaetsya.

Jdu pomoshi, spasibo.

//Basa dannih
/*
CREATE TABLE tabelle_1 (
  id int(10) unsigned NOT NULL auto_increment,
  nums varchar(100) NOT NULL default \'\',
  aktiv varchar(7) NOT NULL default \'"no"\',
  date date NOT NULL default \'0000-00-00\',
  PRIMARY KEY  (id),
  UNIQUE KEY nums (nums)
) TYPE=MyISAM;
*/

class object {};
$CFG = new object;

   $CFG->dbhost = "";
   $CFG->dbname = "";
   $CFG->dbuser = "";
   $CFG->dbpass = "";

$link=mysql_connect($CFG->dbhost,$CFG->dbuser,$CFG->dbpass);
mysql_select_db($CFG->dbname) or die ("Error:");

function send_sql($sql)
{
 if (! $res=mysql_query($sql)){
    echo mysql_error();
   exit;
}
return $res;
}

// Funkziya dla generirovanya chisel.
   function number ($begin, $end) {
        for (; $i < 1; $i++) {
         $nums = rand ($begin, $end);
         return $nums;
      }
   }


   for (; $i < 3; $i++) {
   $begin = 10;
   $end = 99;
   $num_block_1=number($begin,$end);
   $num_block_2=number($begin,$end);
   $num_block_3=number($begin,$end);
   $num_block_4=number($begin,$end);
   $nums_blocks=$num_block_1.$num_block_2.$num_block_3.$num_block_4;    
   $arr = explode(" ", $nums_blocks);
   foreach ($arr as $nums_blocks)
    // Esli chisla kotorie budut generirovatsya mejdu soboi povtoryautsya ne pokasivat.
    if (!$cnt[$nums_blocks]++) {
        $sql = "insert into tabelle_1 values (\'\', \'$nums_blocks\', \'no\', \'$today\')";
         $res=send_sql($sql);
        echo "Start of Generator $nums_blocks.\\n
";
    }
    elseif ($cnt[$nums_blocks]++) {
             unset($nums_blocks);
            echo "";
     }
     echo "
";
   }

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Pomogite... ya saputalsy v sobstvenom sintakse i nemogu proiti dalshe...
« Ответ #1 : 26 Февраля 2003, 15:24:29 »
Ээээ... Объясни тупому мне, что должна делать вот эта конструкция
Цитировать
function number ($begin, $end) {
for (; $i < 1; $i++) {
$nums = rand ($begin, $end);
return $nums;
}
}
TANSTAAFL

Оффлайн Hong

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.hong.de
Pomogite... ya saputalsy v sobstvenom sintakse i nemogu proiti dalshe...
« Ответ #2 : 26 Февраля 2003, 16:05:19 »
eta funkziya generiruet odno dvoinoe chislo v diapasone ot 10 do 99, k primeru 55.
No t. k. funkziya visivaetsya 4 rasa poluchaetsy 8 snachnoe chislo, kstati sabil skasat, ismenyat funkziy ne jelatelno.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Pomogite... ya saputalsy v sobstvenom sintakse i nemogu proiti dalshe...
« Ответ #3 : 26 Февраля 2003, 16:11:46 »
Аааа... Слушай, а нельзя сразу генерить число в диапазоне от 10000000 до 99999999?
Во-вторых, конструкция
$arr = explode(" ", $nums_blocks); бессмыслена т.к. у тебя числа слиты цельно-едино без пробелов.
TANSTAAFL

Оффлайн Hong

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.hong.de
Pomogite... ya saputalsy v sobstvenom sintakse i nemogu proiti dalshe...
« Ответ #4 : 26 Февраля 2003, 16:35:00 »
Chisla generirovat в диапазоне от 10000000 до 99999999 nelsya t.k budet legche rasgodat logicheskuyu zepochku.
A конструкция
$arr = explode(" ", $nums_blocks);
v prinzipe mojno ubrat, ona tolko nujna kogda eta chast pervii ras sosdaet chisla shtobi oni mejdu soboi ne povtoralis (v ne basi dannih): mojno i tak napisat:
   for (; $i < 3; $i++) {
   $begin = 10;
   $end = 99;
   $num_block_1=number($begin,$end);
   $num_block_2=number($begin,$end);
   $num_block_3=number($begin,$end);
   $num_block_4=number($begin,$end);
   $nums_blocks=$num_block_1.$num_block_2.$num_block_3.$num_block_4;    
        $sql = "insert into tabelle_1 values (\'\', \'$nums_blocks\', \'no\', \'$today\')";
         $res=send_sql($sql);
        echo "Start of Generator $nums_blocks.\\n
";
   echo "
";
   }

Glavnoe shtobi proishodil sapros posle sosdaniy chisel is basi dannih, net li odinakovih.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28