Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Заполнение массива из MySQL
 
 автор: sidPR   (05.11.2006 в 16:07)   письмо автору
 
 


$select_sql = "SELECT *  FROM `sub_menu` WHERE `status` = 'ON' ORDER BY id"; 
    $result = MYSQL_QUERY($select_sql); 
    print "<script>";
    WHILE ($sub = mysql_fetch_array($result)) 
           {echo "sub_menu[0]] = new Array('$sub[top_id]','$sub[id]','$sub[name]','$sub[link]');"; }
           print "</script>";
}

я хочю чтоб "sub_menu[0] - сшел отчет автоматически от 0 и до колличества записей
sub_menu[1]
sub_menu[2]
sub_menu[3]
но почемуто не работает когда я указываю скобки пустыми :(

   
 
 автор: Lelik   (05.11.2006 в 17:01)   письмо автору
 
   для: sidPR   (05.11.2006 в 16:07)
 

вообще-то не очень понятно

   
 
 автор: elenaki   (05.11.2006 в 17:04)   письмо автору
 
   для: Lelik   (05.11.2006 в 17:01)
 

sub_menu[0]] - опечатка? зачем две скобки в конце?

   
 
 автор: sidPR   (05.11.2006 в 17:09)   письмо автору
 
   для: elenaki   (05.11.2006 в 17:04)
 



    $select_sql = "SELECT *  FROM `sub_menu` WHERE `status` = 'ON' ORDER BY id"; 
    $result = MYSQL_QUERY($select_sql); 
    print "<script>";
    WHILE ($sub = mysql_fetch_array($result)) 
           {echo "sub_menu[0] = new Array('$sub[top_id]','$sub[id]','$sub[name]','$sub[link]');"; }
           print "</script>";

нужно чтобы само автомато от 0 до последнего сам присваивал номера sub_menu[]

   
 
 автор: Lelik   (05.11.2006 в 17:20)   письмо автору
 
   для: sidPR   (05.11.2006 в 17:09)
 

тогда может цикл for подойдет?

for($i=0; $i<mysql_num_rows($result); $i++){
   echo "sub_menu[".$i."] = new Array('".$sub[top_id]."','".$sub[id]."','".$sub[name]."','".$sub[link]."');";
}

   
 
 автор: sidPR   (05.11.2006 в 17:24)   письмо автору
 
   для: Lelik   (05.11.2006 в 17:20)
 

тогда вывод данных какой будет =\ вместо $sub

   
 
 автор: Lelik   (05.11.2006 в 17:27)   письмо автору
 
   для: sidPR   (05.11.2006 в 17:24)
 

если тебе надо, чтоб sub оставлся замени кавычки:

for($i=0; $i<mysql_num_rows($result); $i++){ 
   echo '$sub_menu['.$i.'] = new Array('.$sub[top_id].','.$sub[id].','.$sub[name].','.$sub[link].');'; 
}

   
 
 автор: Lelik   (05.11.2006 в 17:29)   письмо автору
 
   для: Lelik   (05.11.2006 в 17:27)
 


for($i=0; $i<mysql_num_rows($result); $i++){  
   echo '$sub_menu['.$i.'] = new Array(\''.$sub[top_id].'\',\''.$sub[id].'\',\''.$sub[name].'\',\''.$sub[link].'\');';  
}


так лучше

   
 
 автор: sidPR   (05.11.2006 в 17:33)   письмо автору
 
   для: Lelik   (05.11.2006 в 17:29)
 

нет я всмысле как они совместно с WHILE ($sub = mysql_fetch_array($result)) буду работать ?

   
 
 автор: sidPR   (05.11.2006 в 17:38)   письмо автору
 
   для: sidPR   (05.11.2006 в 17:33)
 

Все спасибо огромное разобрался!

   
 
 автор: Lelik   (05.11.2006 в 18:50)   письмо автору
 
   для: sidPR   (05.11.2006 в 16:07)
 

для цикла while:

$select_sql = "SELECT *  FROM `sub_menu` WHERE `status` = 'ON' ORDER BY id";  
$result = MYSQL_QUERY($select_sql);  
print "<script>"; 
$i = 0;
WHILE ($sub = mysql_fetch_array($result))  
{
echo "sub_menu[$i] = new Array('$sub[top_id]','$sub[id]','$sub[name]','$sub[link]');";
$i++;

print "</script>"; 
}


в таком духе

   
 
 автор: sidPR   (05.11.2006 в 21:20)   письмо автору
 
   для: Lelik   (05.11.2006 в 18:50)
 

еще раз спасибо я сделал так вот так :

    $select_sql = "SELECT *  FROM `sub_menu` WHERE `status` = 'ON' ORDER BY id"; 
    $result = MYSQL_QUERY($select_sql); 
    print "<script>";
    for($i=0; $i<mysql_num_rows($result); $i++){ 
        $sub = mysql_fetch_array($result);
           print "sub_menu[$i] = new Array('$sub[top_id]','$sub[id]','$sub[name]','$sub[link]');";
         }
           print "</script>";

   
 
 автор: sidPR   (05.11.2006 в 21:22)   письмо автору
 
   для: sidPR   (05.11.2006 в 21:20)
 

Кстате тут радился вопрос а какая обработка будет лучше и быстрее обрабатыватся по времени ? моя или ваша ? или одинаково ?

   
 
 автор: Lelik   (05.11.2006 в 21:40)   письмо автору
 
   для: sidPR   (05.11.2006 в 21:22)
 

протестируй:

<?php
$start_time 
gettime();
// Тут вводишь код для цикла, например, for
$stop_time gettime();
$diff_time bcsub($stop_time$start_time6)."<br/>" 
echo $diff_time;
$start_time gettime();
// Тогда здесь код для цикла while
$stop_time gettime();
$diff_time bcsub($stop_time$start_time6)."<br/>" 
echo $diff_time;

function 
gettime()
{
$part_time explode(' 'microtime());
$real_time $part_time[1].substr($part_time[0], 1);
return 
$real_time;
}
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования