Загрузка массива Javascript с данными базы данных MYSQL

предположим, что у меня есть массив javascript «userName». Я хочу загрузить его из таблицы базы данных с именем «пользователь».

Может ли кто-нибудь помочь с идеей или образцом кода?

благодаря

Используйте ajax и php в качестве промежуточного:

  1. Определите пустой массив JS:

    var myarray = new Array();

  2. используйте ajax для вызова вашего php-скрипта, javascript будет оценивать вывод PHP (обратите внимание, что использует библиотеку прототипов):

      new Ajax.Request('myfile.php', { onSuccess : function(xmlHTTP) { eval(mlHTTP.responseText); } }); 
  3. Напишите свой PHP-код для захвата данных и печати JS-кода (он должен быть действительным javscript!):

     $i=0; $q=mysql_query('select ..'); while($row=mysql_fetch_array($q)){ echo "myarray[".$i."]='".$row['data']."';"; $i++; } в $i=0; $q=mysql_query('select ..'); while($row=mysql_fetch_array($q)){ echo "myarray[".$i."]='".$row['data']."';"; $i++; } 
  4. Вы можете проверить, что ваш массив Js содержит данные:

     alert(myarray.length); 

надеюсь это поможет.

Это создает глобальную user переменную на вашей странице.

 <?php $user = /* get information from database the way you usually do */; // $user == array('id' => 1, 'name' => 'foo', ...); ?> <script type="text/javascript" charset="utf-8"> var user = <?php echo json_encode($user); ?>; </script> 

Если вы ищете динамическое решение AJAXy, следуйте инструкциям по AJAX.

Вам нужно будет использовать функции mysql_connect() , mysql_select_db() в PHP для подключения к вашему db. После этого используйте mysql_query() для выбора полей в вашей пользовательской таблице (если ваша таблица пользователя имеет имена полей и идентификатор, SELECT name, id FROM user ). Затем вы можете получить всю информацию из db с помощью mysql_fetch_assoc() или любой другой функции извлечения mysql. Теперь вам нужно echo данные в javascript на вашем сайте, отформатированные как массив. Это сложно сделать правильно, но вы можете получить помощь от json_encode .

Чтобы заполнить ваш массив именами пользователей, вы бы сделали что-то вроде этого.

 <html> <head> <script type="text/javascript"> var userName = <?php // Connect to MySQL //mysql_connect(); //mysql_select_db(); $d = mysql_query( "SELECT name, id FROM user" ) or die( mysql_error() ); $usernames = array(); while( $r = mysql_fetch_assoc($d) ) { $usernames[] = $r['name']; } echo json_encode( $usernames ); ?>; // Do something with the userName array here </script> </head> 

Лучший способ сделать это – получить ваши данные в вашем php-коде, а затем «написать» код javascript для генерации массива в php.

Короткий пример:

 echo "a = new Array();"; foreach($row in $results) { echo "a[$row[0]] = $row[1];"; } 

Мой код может быть совершенно неправильным, просто дать вам быстрый пример.

Вы также можете сделать это более элегантно, используя json.