Можно ли пользоваться Ajax с помощью SQL?

Ссылка скопирована
1 ответ

Можно ли использовать Ajax с SQL, а не с PHP?(Вообще не знаю, но читал, типо PHP обрабатывает данные аякса, а SQL так может?)

Дополнительно:

У вас три разных инструмента написано: одно для мягкого, другое - для теплого, а третье - для широкого.
Какую задачу хотите решить?

  • alexalexes, конкретнее? Просто отправку на сервер, как пример, чтобы все пользователи видели то, что там какой-то один пользователь пишет
  • Ajax решает проблему на стороне клиента "оставаться на той же странице имея возможность отправлять запросы на сервер".
    PHP решает проблемы на стороне сервера "прием и передача запросов от клиента" и "прием и передача запросов в СУБД".
    SQL решает задачу описания сути запроса от серверного скрипта к СУБД.
  • В зависимости от требования к скорости доставки изменений для всех пользователей, то эту задачу можно решить разными способами.
    1. Низкие требования к скорости оповещения - "когда пользователь решит сам обновить или перейти на другую страницу, тогда и выведем новое состояние (новый статус, новое сообщение)".
    Классическая форма взаимодействия браузера с сервером.
    Один пользователь набирает сообщение в обычной форме (без ajax). Отправляют его на сервер. Сервер сохраняет его в любой форме. Когда другие пользователи запрашивают у сервера страницу с сообщением или статусом, то они получают новое состояние, если сами сделали какое-то действие, связанное с переходом на другую страницу.
    Так работают старые веб почтовики и форумы 2000-х годов.
    2. Средние требования к скорости оповещения - "пользователь не должен предпринимать никаких действий, чтобы он получил новое состояние, но получать состояние можно раз в несколько минут и более".
    Один пользователь набирает сообщение, отправляет на сервер. А другие пользователи запрашивают новое состояние страницы у сервера по технологии ajax. Проблема в том, что инициатором получения изменений от первого пользователя являются клиентская часть приложения пользователей, которые ждут изменений на сервере, а не приложение сервера. Поэтому когда первый пользователь отправит сообщение, то другие пользователи получат его не сразу, а когда наступит следующий период опроса сервера.
    Это требование подходит для интернет магазинов, чтобы отслеживать статус заказа, новые почтовики.
    3. Высокие требования к скорости оповещения - "пользователь должен незамедлительно получать изменения от сервера, как только другой пользователь сделает действие".
    Вот тут уже на стороне ожидающих пользователей работает технология websocket. Клиентская часть этих пользователей создает соединение с сервером и ждет от него отклика, когда другой пользователь напишет сообщение. Постоянные опросы состояния, как в случае 2 таким пользователям проводить не нужно.
    Но для websocket есть ограничения, что не каждый веб сервер для него годится. Например, с PHP его сложнее подружить, чем с NodeJS. Вся проблема в том, что PHP не приспособлен для обработки множества запросов на одно соединение, в NodeJS и других средах, где такая концепция заложена изначально, проблем не будет с реализацией.
    С такими требованиями работают современные чаты в любых мессенджерах.

    Если я все правильно понял, то нужна СУБД с работой через HTTP, например firebase realtime database или mongodb

    • И где тут SQL?
    • Ипатьев, это телепатия работает. Автор же на самом деле другой вопрос задает.
    • Автор задаёт именно тот вопрос, который написан. И вопрос совершенно логичный, для его уровня знаний. Ответ совсем не обязательно должен быть строго положительный.
      Иногда надо не завязываться буквой зю, чтобы хоть как-то ответить, а просто ответить "нет, нельзя".
      А то получится как в том анекдоте,
      — Папа, почему надкушенное яблоко коричневеет?
      — Дело в том, сынок, что при нарушении целостности клеточной оболочки содержащаяся в клетках заменимая аминокислота тирозин под воздействием фермента тирозиназы вступает с атмосферным кислородом в реакцию, продуктом которой является пигмент меланин.
      ...
      — Папа, а ты с кем сейчас разговаривал?
    • Ипатьев, автор хочет БД без отдельной разработки бэкэнда, такие решения есть, в т.ч. облачные (и бесплатные). То, что он назвал СУБД SQL - это вот для его уровня знаний простительно. Если же принять эту замену, то вопрос логичный и нормальный, ответ на него я написал.

    https://postgrest.org/en/stable/tutorials/tut0.html

    • И где тут SQL?

    Нет, нельзя.
    Вопрос не имеет смысла.
    SQL - это язык запросов к базе данных. База данных находится на сервере базы данных.
    РНР - это язык для формирования динамических ответов на НТТР сервере. РНР может обращаться к серверу базы данных, используя язык SQL.
    РНР не "обрабатывает данные аякса". РНР обрабатывает НТТР запросы. Любые, сделанные как напрямую браузером, так и через AJAX. И особой разницы между ними не видит.
    AJAX - это технология выполнения запросов к НТТР серверу из программы на Яваскрипте, исполняющейся в браузере. Браузер может обратиться только к НТТР серверу, но не к серверу баз данных.
    Чтобы из Яваскрипта в браузере обратиться к базе данных, надо запросить НТТР сервер, который запустит программу на РНР (или другом серверном языке), которая обратится к серверу БД, получит результат, и вернёт его в ответ на НТТР запрос.

    Как всегда говорим о сферическом SQL... (ворчу)

    Обычно так не делают. Просто БД предоставляет слишком много доступа для ползователя. Тут надо решать вопросы и SQL инжекций и инфобезопасности. А то так любой дурак сделает 'drop database' просто получив в руки браузер.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Артём Dev Ответ

    Да, можно использовать Ajax с помощью SQL для создания динамических веб-приложений. Ajax (Asynchronous JavaScript and XML) позволяет отправлять асинхронные запросы на сервер без необходимости перезагрузки страницы, а SQL (Structured Query Language) используется для работы с базами данных.

    Для использования Ajax с SQL вам потребуется написать код на стороне клиента (обычно с использованием JavaScript) для отправки запросов на сервер и получения данных. На серверной стороне вы будете использовать язык программирования (например, PHP) для обработки запросов и выполнения операций с базой данных с помощью SQL запросов.

    Пример использования Ajax с SQL на стороне клиента (JavaScript):

    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        document.getElementById("demo").innerHTML = this.responseText;
      }
    };
    xhttp.open("GET", "get_data.php", true);
    xhttp.send();

    var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", "get_data.php", true); xhttp.send();

    Пример обработки запроса на сервере с использованием PHP и SQL:

    connect_error) {
      die("Connection failed: " . $conn->connect_error);
    }
     
    // Выполнение SQL запроса
    $sql = "SELECT id, name, email FROM users";
    $result = $conn->query($sql);
     
    if ($result->num_rows > 0) {
      // Вывод данных
      while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>";
      }
    } else {
      echo "0 results";
    }
    $conn-&gt;close();
    ?&gt;

    connect_error) { die("Connection failed: " . $conn-&gt;connect_error); } // Выполнение SQL запроса $sql = "SELECT id, name, email FROM users"; $result = $conn-&gt;query($sql); if ($result-&gt;num_rows &gt; 0) { // Вывод данных while($row = $result-&gt;fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>"; } } else { echo "0 results"; } $conn-&gt;close(); ?&gt;

    При использовании Ajax с SQL важно обеспечить безопасность вашего приложения, например, с помощью подготовленных запросов (prepared statements) для предотвращения SQL инъекций. Также следует учитывать производительность, чтобы минимизировать количество запросов к базе данных и оптимизировать их выполнение.

    Надеюсь, это ответ поможет вам использовать Ajax с SQL для создания интерактивных и эффективных веб-приложений. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно