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

Форум MySQL

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

 

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

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

тема: записи из базы в двумерный массив
 
 автор: Blizard   (20.04.2008 в 17:31)   письмо автору
 
 

Есть база данных вида:

id login pass
1 vasja 123
2 egor 234
3 misha 456

Мне нужно чтобы эти записи хранились в двумерном массиве вида $dan[0][]0] == 1 $dan[2][2] == 456

Я понимаю как записать одну строчку в одномерный массив


include("includess.php");

 $dan = array();
 
  $query = "SELECT * FROM host-mail WHERE id!=''"; 
   $result = mysql_query($query); 
   while ($dann = mysql_fetch_array($result)){ 
        $dan[0] = $dann[id];
        $dan[1] = $dann[login];
        $dan[2] = $dann[pass];
       }


А подскажите как это все запихнуть в двумерный как вот я написал выше чтобы был вида $dan[0][0] или $dan[0][id]

   
 
 автор: sim5   (20.04.2008 в 17:51)   письмо автору
 
   для: Blizard   (20.04.2008 в 17:31)
 

А вы ничего не путаете? Вы же и так получите двумерный массив: $dann[n][m], где n, это номер строки записи в таблице, а m, это поле данной таблицы. Зачем же его перезаписывать.

   
 
 автор: Valick   (20.04.2008 в 17:52)   письмо автору
 
   для: Blizard   (20.04.2008 в 17:31)
 

include("includess.php"); 

 $dan = array(); 
  
  $query = "SELECT * FROM host-mail WHERE id!=''";  
   $result = mysql_query($query);  
   while ($dann = mysql_fetch_array($result)){  
        $dan[$dann['id']]['login'] = $dann['login']; 
        $dan[$dann['id']]['pass'] = $dann['pass']; 
       }


Попробуйте.

   
 
 автор: Blizard   (20.04.2008 в 18:04)   письмо автору
 
   для: Valick   (20.04.2008 в 17:52)
 

так тоже не получается

   
 
 автор: Valick   (20.04.2008 в 18:16)   письмо автору
 
   для: Blizard   (20.04.2008 в 18:04)
 

А что получается?

   
 
 автор: Blizard   (20.04.2008 в 18:41)   письмо автору
 
   для: Valick   (20.04.2008 в 18:16)
 

пытаюсь вывести один элемент массива и пусто, у меня помнится был код который выполняет эту операцию и он был короче приведенного выше и удобнее, просто затерялся....

   
 
 автор: Blizard   (20.04.2008 в 18:43)   письмо автору
 
   для: Blizard   (20.04.2008 в 18:41)
 

и еще вот по этому примеру $dan[$dann['id']]['login'] ---------- $dann['id'] там же цифры могут быть не по порядку и могут быть утеренными например если из базы удалю строку с id=3 то тогда такого id с таким номером уже не будет, поэтому имхо этот код все равно не подходит

   
 
 автор: Valick   (20.04.2008 в 18:51)   письмо автору
 
   для: Blizard   (20.04.2008 в 18:43)
 

А что id у вас в базе для понта??? Вот именно что связь id login и pass должна сохраняться.
По-вашему что из себя представляет двумерный массив? А то из всего вышеописанного создаётся впечатление, что вы слабо себе это представляете в пространстве.

   
 
 автор: Blizard   (20.04.2008 в 19:06)   письмо автору
 
   для: Valick   (20.04.2008 в 18:51)
 

именно поэтому я на этом форуме, потому что слабо представляю себе это в пространстве, так бы не стал бы дергать других своими проблемами если бы все знал и представлял

   
 
 автор: Blizard   (20.04.2008 в 19:07)   письмо автору
 
   для: Blizard   (20.04.2008 в 19:06)
 

просто напишите как то что в базе вызывать $dan['1']['1'] например и всё что я прошу, а там если код будет работать уже разберусь сам что к чему

   
 
 автор: Valick   (20.04.2008 в 19:17)   письмо автору
 
   для: Blizard   (20.04.2008 в 19:07)
 

А вот и не разберётесь. Представляете что я наворочу по причине того что я не совсем представляю, что в конечном итоге вы хотите получить.
Двумерный массив - это прямоугольник (квадрат). Турнирную таблицу представляете? Это и есть двумерный массив.

Код который я написал читать надо не $dan['1']['1'], а $dan['1']['login'] и $dan['1']['pass'] (если 1 есть такой идентификатор.
Хотите $dan['1']['1'] щас сделаю.

   
 
 автор: Valick   (20.04.2008 в 19:22)   письмо автору
 
   для: Blizard   (20.04.2008 в 19:07)
 


include("includess.php");  

 $dan = array();  
   
  $query = "SELECT * FROM host-mail WHERE id!=''";   
   $result = mysql_query($query); 
    $x=0;
     while ($dann = mysql_fetch_array($result))
      { 
        $y=0;
        $dan[$x][$y] = $dann['id'];
        $dan[$x][$y+1] = $dann['login'];  
        $dan[$x][$y+2] = $dann['pass'];
        $x=$x+1
      }

   
 
 автор: Blizard   (20.04.2008 в 20:03)   письмо автору
 
   для: Valick   (20.04.2008 в 19:22)
 

нет, не работает

а когда задается массив $dan = array(); то тут это без разницы и для двумерного так и для одномерного?

   
 
 автор: Апельсин   (20.04.2008 в 21:07)   письмо автору
 
   для: Valick   (20.04.2008 в 19:22)
 

Добрый вечер!

Если я правильно понял вопрос, это может быть решением:

    $query = "SELECT * FROM host-mail WHERE id!=''"; 
    $result = mysql_query($query);  
    while($dan[]=mysql_fetch_row($query));


После чего мы можем пользоваться двумерным массивом $dan.

   
 
 автор: Blizard   (20.04.2008 в 22:13)   письмо автору
 
   для: Апельсин   (20.04.2008 в 21:07)
 

у меня уже нервы сдают

вот так делаю


$dan = array();   
    
$co = mysql_connect('localhost', 'host-mail', 'mail123');
if (!$co) exit ("Ошибка соеденения<br>");
$db = "host-mail";
$rd = mysql_select_db($db);

mysql_query ("set character_set_client='cp1251'"); 
mysql_query ("set character_set_results='cp1251'"); 
mysql_query ("set collation_connection='cp1251_general_ci'");

if (!$rd) exit ("Ошибка соеденения");

  $query = "SELECT * FROM host-mail WHERE id!=''";    
   $result = mysql_query($query);  

 while($dan[]=mysql_fetch_row($result));

    
echo $dan["0"]["0"];



и не выводит $dan["0"]["0"] !

   
 
 автор: Valick   (20.04.2008 в 22:21)   письмо автору
 
   для: Blizard   (20.04.2008 в 22:13)
 

А так?
echo $dan[0][0]; 


:-)

   
 
 автор: Апельсин   (20.04.2008 в 22:29)   письмо автору
 
   для: Blizard   (20.04.2008 в 22:13)
 

Дайте пожалуйста вар дамп переменной $dan.

   
 
 автор: Blizard   (20.04.2008 в 22:52)   письмо автору
 
   для: Апельсин   (20.04.2008 в 22:29)
 

пробовал и $dan[0][0]

кстате в логах ругается на синтаксис $query = "SELECT * FROM host-mail WHERE id!=''";

   
 
 автор: Blizard   (20.04.2008 в 23:06)   письмо автору
 
   для: Blizard   (20.04.2008 в 22:52)
 

надаже )) сделал вот так $query = "SELECT * FROM `host-mail` WHERE `id`!=''"; и заработало,
спасибо Valick, спасибо Апельсин )

   
 
 автор: Valick   (20.04.2008 в 23:06)   письмо автору
 
   для: Blizard   (20.04.2008 в 22:52)
 

У меня код работает.

   
Rambler's Top100
вверх

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