Re: Вивчаю базу даних MySql
$result->data_seek(0); там взагалі не потрібно
прибрав $result->data_seek(0); з обєктного стилю,- точно теж працює.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Бази даних → Статті → Вивчаю базу даних MySql
Сторінки Попередня 1 2 3 4 5 6 7 … 13 Наступна
Для відправлення відповіді ви повинні увійти або зареєструватися
$result->data_seek(0); там взагалі не потрібно
прибрав $result->data_seek(0); з обєктного стилю,- точно теж працює.
На шляху створення статті "Вибірка даних з таблиць БД, об'єкт даних"
Питання до спільноти, які є варіанти щоб вивести одне значення даного з БД?
Мої варіанти поки що:
обєктно-орієнтований стиль програмування<?php $con->connect("localhost","my_user","my_password","my_db"); // Отримуємо об'єкт $result $result = $con->query("SELECT Town_from FROM Transit WHERE Id=1003"); //Отримуємо результуючу вибірку даного $row = $result->fetch_assoc(); printf ("Місто відправлення:%s \n", $row["Town_from"]); $con->close(); ?>
та процедурний
<?php $con=mysqli_connect("localhost","my_user","my_password","my_db"); // Отримуємо об'єкт $result $sql="SELECT Town_from FROM Transit WHERE Id='1003'"; $result=mysqli_query($con,$sql); //Отримуємо результуючу вибірку даного $row=mysqli_fetch_assoc($result); printf ("Місто відправлення:%s \n", $row["Town_from"]); mysqli_close($con); ?>
А де, власне, в об`єктно-орієнтованому варіанті створення об`єкта?
власне я розумію під об'єктом, дані що ми отримуємо з БД
наприклад, якщо розглядати дані, то
4 - число ,
'mars' - строковий тип даного,
2, 4, 45, 2, 56, 5 - масив даних,
малюнок знизу презентує обєкт, тобто це якась суть що має декілька параметрів
А де, власне, в об`єктно-орієнтованому варіанті створення об`єкта?
в моєму прикладі обєктом буде $result - саме він складається з набору різних даних
У вашому прикладі php видасть помилку на $con, як неозначену змінну.
У вашому прикладі php видасть помилку на $con, як неозначену змінну.
ось сторінка з живими даними і прикладами, все виводить і все працює,
можливий варіант, що я помилився коли код презентував для перегляду, але сам код php на сервері запит до відповідних даних виконує та виводить дані на сторінку сайту
що ж до $con, то я не переймався код працює кінцевий результат є; можливо він і виконується некоректно і десь там в логах помилку фіксує, чи ще яким чином, то наразі я не знаю
Процитований вами код, не може працювати.
Ви звертаєтеся до методу об`єкта $con->connect
Але ви НЕ ІНІЦАЛІЗУЄТЕ сам об`єкт $con, чи то пак mysqli.
Якщо б ви цей код записали собі в блокнот і нікому не показували, то нехай собі був би "працює" але ви викладаєте апріорі неробочий код як приклад.
Процитований вами код, не може працювати.
Ви звертаєтеся до методу об`єкта $con->connect
Але ви НЕ ІНІЦАЛІЗУЄТЕ сам об`єкт $con, чи то пак mysqli.Якщо б ви цей код записали собі в блокнот і нікому не показували, то нехай собі був би "працює" але ви викладаєте апріорі неробочий код як приклад.
Дякую Sensetivity, перепрошую; працює, але в такому варіанті, напевно про що мова і була
$con = new mysqli("localhost","my_user","my_password","my_db");
$con->set_charset("utf8");
$result = $con->query("SELECT Town_from FROM Transit WHERE Id=3");
$row = $result->fetch_assoc();
printf ("Місто відправлення:%s \n", $row["Town_from"]);
$con->close();
дописав нарешті сторінку "Шаблон вибірки даних з таблиць Бази Даних", приємно
P.S. Я правда ледь в'їхав в об'єктний та процедурний стиль, а PDO розгляну дещо пізніше
P.S.S. Будуть пропозиції, зауваження, побажання буду вдячний
Проста задачка SQL. Розглядаю задачку
1. Вивести значення id, cpu, memory комп'ютерів в яких об'єм памяті 3000 Mb.
2. Мінімальний об'єм жорсткого диску, що є на складі. Вивести hdd.
3. Кількість комп'ютерів з мінімальним об'ємом жорсткого диску, що є на складі. Вивести count, hdd.
і відразу ж практикую в зв'язці "сторінка сайту-PHP-БД" - сторінка з завданням
так ще вчора розглядав яким чином можна виводити результати запитів на сторінку веб-сайту, але якщо розглядати 2 частину завдання, де SQL-запит має вигляд
SELECT min(hdd)
FROM PC ;
то скажімо результат виконання кодування мене влаштовує, але чи є він досить коректним, while здається тут лишній???
$con = new mysqli("localhost","my_user","my_password","my_db");
$con->set_charset("utf8");
$result = $con->query("SELECT min(hdd) AS min_hdd FROM PC;");
while ($row = $result->fetch_assoc())
{
echo " Min hdd: ". $row['min_hdd'].'<br>' ;
}
$con->close();
переписав так
<?php
$con = new mysqli("localhost","my_user","my_password","my_db");
$con->set_charset("utf8");
$result = $con->query("SELECT min(hdd) AS min_hdd FROM PC;");
$row = $result->fetch_assoc();
echo " Min hdd: ". $row['min_hdd'].' Gb <br>' ;
$con->close();
?>
А як взагалі краще назвати розділ, можливо щоб і краще було для оптимізації веб-сайту?
Задачі з Базою Даних, Завдання по Базі Даних, Рішення задач БД, Приклади рішень завдань по СКБД MYSQL чи яким іншим чином?
Нехай буде поки "Задачі MySQL"
P.S. Відмічу, що задачку я розглядаю, аналізую, створюю живу веб-сторінку, щоб перевірити чи справді запити та кодування працює, але все ж можливо будуть неточності у викладенні; тому по можливості приклади буду залишати на форумі для Незалежного Зовнішнього Оцінювання
Необхідно вивести значення моделі PC та її вартість з таблиці Product_PC;
замінити відсутнє значення ціни на повідомлення "Модель відсутня"
<?php
$con = new mysqli("localhost","my_user","my_password","my_db");
$result = $con->query("
SELECT DISTINCT Product_PC.model,
CASE
WHEN price IS NULL
THEN 'Модель відсутня'
ELSE price
END price
FROM Product_PC;");
while ($row = $result->fetch_assoc())
{ echo $row['model'].' '. $row['price']. "<br>";};
$con->close();
?>
- Може хтось прокоментувати чому не виконується умова "Якщо ціна NULL, то не виводить повідомлення модель відсутня" ?
якщо я вибираю NULL значення іншим чином, видає (більше ніж один варіант вибору значення зрозуміло ж - 2 рядки NULL значень)
код, щоб скоректувати
SELECT model,price,
CASE price
WHEN (SELECT MAX(price) FROM Product_PC) THEN 'Найбільша ціна'
WHEN (SELECT MIN(price) FROM Product_PC) THEN 'Найменша ціна'
WHEN (SELECT price FROM Product_PC WHERE price IS NULL) THEN 'Модель відсутня'
ELSE 'Середня ціна'
END comment
FROM Product_PC;
Напевно, проблема в тому, що має бути лише один варіант відповіді оператора CASE для price, якщо більше ніж один варіант то все це має бути в ELSE
А як взагалі краще назвати розділ, можливо щоб і краще було для оптимізації веб-сайту?
Задачі з Базою Даних, Завдання по Базі Даних, Рішення задач БД, Приклади рішень завдань по СКБД MYSQL чи яким іншим чином?Нехай буде поки "Задачі MySQL"
P.S. Відмічу, що задачку я розглядаю, аналізую, створюю живу веб-сторінку, щоб перевірити чи справді запити та кодування працює, але все ж можливо будуть неточності у викладенні; тому по можливості приклади буду залишати на форумі для Незалежного Зовнішнього Оцінювання
Необхідно вивести значення моделі PC та її вартість з таблиці Product_PC;
замінити відсутнє значення ціни на повідомлення "Модель відсутня"<?php $con = new mysqli("localhost","my_user","my_password","my_db"); $result = $con->query(" SELECT DISTINCT Product_PC.model, CASE WHEN price IS NULL THEN 'Модель відсутня' ELSE price END price FROM Product_PC;"); while ($row = $result->fetch_assoc()) { echo $row['model'].' '. $row['price']. "<br>";}; $con->close(); ?>
Таку перевірку можна зробити вже при виводі даних (в php),чи вам такий варіант не підходить?
Логічно припустити що такі перевірки можна виконати і в php, але я більше орієнтований на SQL.
Тай розглядаю поки що SQL, тому рішення потрібно реалізувати через коректний SQL-запит.
SELECT model,price,
CASE price
WHEN (SELECT MAX(price) FROM Product_PC) THEN 'Найбільша ціна'
WHEN (SELECT MIN(price) FROM Product_PC) THEN 'Найменша ціна'
WHEN (SELECT price FROM Product_PC WHERE price IS NULL) THEN 'Модель відсутня'
ELSE 'Середня ціна'
END comment
FROM Product_PC;
SELECT price FROM Product_PC WHERE price IS NULL
Поверне 2 значення. Костиль:
SELECT price FROM Product_PC WHERE price IS NULL LIMIT 1;
Правильніше рішення:
WHEN NULL THEN 'Модель відсутня'
Правда перевірте синтаксис, не знаю, NULL чи is NULL.
які ще варіанти
WHEN price IS NULL THEN 'Модель відсутня'
загуглив синтаксис