[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Структура PHP
Yoja
Добрый день
Подскажите пожалуйста как правильней организовать работу с БД MySQL

Делаю сайт, нужно сделать выборку товара.
и тут появилось несколько вопросов.
1. Слева на сайте каталог товара, это ссылки.
как подключить запрос к конкретному пункту меню, или нужно переделать все в кнопки?
т.е. например onclick или есть более безопасный способ?
2. Подключение к БД и отключение от БД осуществлять один раз при входе/выходе на сайт или непосредственно при каждом запросе?
или может сделать что то вроде такого:
На каждый пункт каталога товара подвесить через case определенный файл типа code_00.php c SQL запросом и при нажатии на пункт каталога делать include файла?
3. Т.к. Подключение к БД осуществляется автоматически то следовательно логин и пароль храниться в файле php. Как обезопасить этот файл?

Спасибо большое за разумные ответы.
Игорь_Vasinsky
Цитата
как подключить запрос к конкретному пункту меню, или нужно переделать все в кнопки?


одним запросом вытаскиваете все пункты из бд в массив, далее в цикле строите html разметку

 Подключение к БД и отключение от БД осуществлять один раз при входе/выходе на сайт или непосредственно при каждом запросе?


Подключение к БД создаётся 1 раз. в вашем примере - точно.

? вы уверены что не торопитесь для написания какого либо каталога?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Yoja
Уверен.
Попался мне такой код, все хорошо работает.
 
//соединение с базой данных при помощи функции mysql_connect()
//в аргументах функции укажите имя сервера, логин и пароль.

$db = mysql_connect("localhost","admin","admin");
//функция mysql_select_db() выбирает текущую
//базу данных с именем "MyBD"

mysql_select_db("MyBD" ,$db);

//функция mysql_query() выполняет запрос на выборку данных
//результирующий набор данных хранится в переменной $sql

$sql = mysql_query("SELECT * FROM suite" ,$db);
//после получения данных начнём формирование HTML-таблицы
echo ("<table border ='1'>");
//выводим строку заголовков
echo ("<tr><td>ID</td><td>Name</td></tr>");
//функция mysql_fetch_row() извлекает одну строку из результата
//и сохраняет её в массиве $tablerows

while ($tablerows = mysql_fetch_row($sql))
{
//теперь в цикле для каждой полученной строки сделаем вывод
//$tablerows[1] соответствует полю "url"
//$tablerows[2] соответствует полю "description"
//echo("$tablerows[1]");

echo("<tr><td>$tablerows[0]</td><td>$tablerows[1]</td></tr> ");
}
echo "</table>";

//закрытие соединение (рекомендуется)
mysql_close($db);



Yoja
2. Одним махом вытаскиваю все из БД.
Как осуществить это вытаскивание по нажатию на пункте каталога?
список каталога должен состоять из кнопок чтобы чтобы обработать команду OnСlick() через GET или POST запрос? или обработать все это через Java ? Как правильней, удобней и с меньшей нагрузкой на сервер? (записей в БД будет до 10 000)
Игорь_Vasinsky
Цитата
Уверен.
Попался мне такой код, все хорошо работает.
Цитата
$tablerows[1]

при соответствующем уровне ошибок error_reporting() - получите нотисы.
ключи обрамляются в одинарные кавычки.

вот здесь более предметно расписан алгоритм работы с БД
http://phpforum.ru/index.php?showtopic=51151

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Yoja
Спасибо!
А вопрос по поводу выполнения запроса по клику на пункт каталога?
Игорь_Vasinsky
кликаешь по пункту из меню каталога - переходишь в раздел каталога - вот там уже запрос на выборку из БД

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Yoja
ну это понятно, я имел ввиду Можно пример кода


Onclick='Select_BD()'



function Select_BD()
{
$ff= '';
}
Игорь_Vasinsky
обычная ссылка.

php не реагирует на клики - php - работает на стороне сервера
клики - происходят в браузере - на стороне клиента - а это уже JS - но он не работает с JS

можно писать гибридно JS (либо использовать AJAX)+PHP, но вам бы простые моменты освоить.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Yoja
Это понятно, я пример прошу (только рабочий)
Игорь_Vasinsky
Цитата
Onclick='Select_BD()'



function Select_BD()
{
$ff= '';
}


ещё раз говорю. PHP не отреагирует на onclick()

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Yoja
то что PHP не реагирует на OnClick я знаю. Я прошу пример, как реализовать запрос выборки из БД по клику на ссылку(кнопку).
Вот я делал установку кука. Мне важно увидеть как записывается запрос в JS или в приведенном вами примере.

<form method = "post">
<input
onclick="SetCk(1)" class="design" type = "submit" value ="<?php echo $ln_rus?>" >
<form>

<script language="JavaScript" type="text/javascript">

function SetCk(_numb){
if (_numb == 1)
{
var ws=new Date();
ws.setDate(30+ws.getDate());
document.cookie="l=1; path=/; expires="+ ws.toGMTString();
}

}

</script>
Игорь_Vasinsky
уф.

с куками может работать и PHP и JS

с onclick() тока один вариант

<button onclick="location.href='path/to/file.php'">click<button>

file.php - там делай выборку.

тока это делается проще

<a href="path/to/file.php">click</a>

Другое дело если это AJAX

<script type="text/javascript">
function getData () {
var xmlhttp;
if ( window.XMLHttpRequest ) {
// IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// IE6, IE5
xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" );
}
// обрабатываем ответ
xmlhttp.onreadystatechange = function () {
// если запрос к скрипту удачный
if ( xmlhttp.readyState == 4 ) {
//Будет выводиться в id="data">
document.getElementById("data").innerHTML=xmlhttp.responseText;

}
}

// в файл getdata.php - делаешь выборку из БД
xmlhttp.open ( "GET", "getdata.php?rand="+Math.random(), true );
xmlhttp.send ();
}
</script>

<
button onclick="getData()">click</button>


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.