Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2016, 16:59   #1
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию Немного веба

Есть файл index.php, где идет подключение к бд, запрос к бд на выбор полей. Выбрали поля, записали в массив, перевели в json. Дальше мне надо эти данные перенести в мое angular приложение. И как это сделать ?
Есть некое app.js, куда я хочу получить этот массив. В голову приходит только вариант с echo, но это js файл, там чисто фронтенд.
Praud вне форума Ответить с цитированием
Старый 24.08.2016, 17:28   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

я не в теме с Angular,
но обычно процесс такой - клиент запрашивает данные - сервер формирует данные и отдаёт их на клиент. Либо целиком страничкой, либо (более удобно/модно/популярно) клиент через AJAX запрос (тут как раз JS обращается к серверу, сервер возвращает данные, JS их обрабатывает/размещает куда надо).
Перезагрузка страницы в этом случае не нужна и не выполняется.

извините, если я не так Вас понял...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.08.2016, 17:39   #3
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Кусок php

Код:
<?php 
include "views/app.html";

$host = "mysql.hostinger.com.ua";
$db = "u853455514_tw";
$user = "u853455514_root";
$pass = "eg1sh9t9ys4imm";

$mysqli = new mysqli($host, $user, $pass, $db); 

if (mysqli_connect_errno()) { 
   printf("Подключение к серверу MySQL невозможно. Код ошибки: %s\n", mysqli_connect_error()); 
   exit; 
} 

if ($result = $mysqli->query('SELECT name FROM users')) { 

    /* Выбираем результаты запроса: */ 
    while( $row = $result->fetch_assoc() ){ 
         $names[] = $row['name'];
    } 
  
    /* Освобождаем память */ 
    $result->close(); 
} 

/* Закрываем соединение */ 
$mysqli->close();
Кусок js
Код:
 $http({
      method: 'GET',
      url: 'index.php'
   }).then(function (response) {
       $scope.star = response.data;
   });   
   console.log($scope.star);
Получаю вот undefined
Praud вне форума Ответить с цитированием
Старый 24.08.2016, 18:08   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

то, что получили в PHP нужно вернуть.

попробуйте сделать как в этом примере - http://www.w3schools.com/json/json_example.asp
см. The PHP Code on the Server
Код:
<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");

$result = $conn->query("SELECT CompanyName, City, Country FROM Customers");

$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "[") {$outp .= ",";}
    $outp .= '{"Name":"'  . $rs["CompanyName"] . '",';
    $outp .= '"City":"'   . $rs["City"]        . '",';
    $outp .= '"Country":"'. $rs["Country"]     . '"}'; 
}
$outp .="]";

$conn->close();

echo($outp);
?>

или, как тут описано:
Код:
<?php
$servername = "localhost:3306";
$username = "root";
$password = "root";
$dbname = "myDB";

$conn = mysqli_connect($servername, $username, $password, $dbname);
if(!$conn){
	die("Connection failed: " .mysqli_connecet_error());
}

$showData = "SELECT id FROM myDB";
$data = array();
$result = mysqli_query($conn, $showData);

if(mysqli_num_rows($result) > 0){
	while($row = mysqli_fetch_assoc($result)){
		$data[] = $row;
	}
} else {
	echo "0 results";
};
print json_encode($data);
mysqli_close($conn);
echo($outp);
?>
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.08.2016, 19:39   #5
Praud
Форумчанин
 
Аватар для Praud
 
Регистрация: 11.10.2012
Сообщений: 409
По умолчанию

Спасибо, данные отловил, только как сделать чтобы echo на страницу их не выводил ?
Изображения
Тип файла: png Безымянный.png (30.1 Кб, 142 просмотров)
Praud вне форума Ответить с цитированием
Старый 24.08.2016, 19:56   #6
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,455
По умолчанию

Создаешь сессию которая истекает за пару секунд

Код:
<?
	
	
	define('SID', md5($_SERVER['REMOTE_ADDR'] . substr(time(), 0, -2)));
	
    //..... какой то код
    
	if (!empty($_POST))
	{
		if (!empty($_POST['sid'])) && $_POST['sid'] == SID)
		{
			$servername = "localhost:3306";
			$username = "root";
			$password = "root";
			$dbname = "myDB";

			$conn = mysqli_connect($servername, $username, $password, $dbname) or 
			die("Connection failed: " .mysqli_connecet_error());

			$showData = "SELECT id FROM myDB";
			$data = array();
			
			$result = mysqli_query($conn, $showData);

			if(mysqli_num_rows($result) > 0)
			{
				while($row = mysqli_fetch_assoc($result)) {
				    $data['response'][] = $row;
				}
			} else {
				$data['error'][] = "Результат пуст";
			}
			echo json_encode($data);
			mysqli_close($conn);
		}
	}
	
//.... какой то код

?>
</script>
 $http({
      method: 'POST',
      url: 'index.php',
      data: 'sid=<?=SID?>',
      headers: {'Content-Type': 'application/json'}
   }).then(function (response) {
       $scope.star = response.response;
   });   
   console.log($scope.star);
</script>

Последний раз редактировалось uberchel; 24.08.2016 в 21:50.
uberchel вне форума Ответить с цитированием
Старый 25.08.2016, 20:42   #7
Andreyjora
 
Регистрация: 25.08.2016
Сообщений: 5
По умолчанию

и мне помогли с ответом, тоже такое было, очень признателен
Andreyjora вне форума Ответить с цитированием
Старый 09.03.2022, 07:53   #8
oli123
Новичок
Джуниор
 
Регистрация: 09.03.2022
Сообщений: 1
По умолчанию

The answer is really helpful and thanks for the great help.
oli123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсер веба и С++ RussDragon Общие вопросы по программированию, компьютерный форум 7 18.06.2013 18:03
немного циклов -=Andriushka=- Общие вопросы C/C++ 9 20.03.2013 21:11
немного 3Д Антонн C# (си шарп) 0 03.11.2012 01:22
Немного тригонометрии Hexy C# (си шарп) 0 14.06.2012 11:54
Проверка данных из Веба на соответствие заданному условию без вставки их на лист Snekich Microsoft Office Excel 6 23.11.2011 20:18