Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Вывод не верной записи из phpmyadmin

Всем привет! Хочу сделать запись в phpmyadmin, и затем вывести id этой же записи на сайт. Но происходит вывод id только предыдущей записи. Проблема в том, что запись и вывод проходят синхронно. Подскажите, как можно решить этот вопрос. Вывод не верной записи из phpmyadmin.

PHP:

  1. //Подключиться к базе
  2. $mysqli = new mysqli ("...", "...", "...", "...");
  3.  
  4. //Записать заявку
  5. $success = $mysqli->query("INSERT INTO `numbers` (`id`, `user`, `comment`) VALUES (NULL, '$recepient', '$message1251')");
  6.  
  7. //Получить номер последней заявки
  8. $query=($mysqli, "SELECT max(`id`) as `id` FROM `numbers`");
  9. $result = ($query);  // Формируем переменную с исполнением запроса к БД
  10.  
  11. if(($result['id'])){
  12.     echo '<script>alert("Ошибка запроса");</script>';
  13. }else{
  14.     $numzap = $result['id'];
  15.     //echo "Номер: ".$numzap;
  16.     $_SESSION['idmax'] = $numzap;
  17. }
  18.  
  19. //Отправка письма
  20. $pagetitle = "Новая заявка с сайта \"$siteName\"";
  21.  
  22. $message = "Заявка № $numzap \n"."Комментарий: $message \n"."ИНН организации: $inn \n"."ФИО контактного лица: $fio \n"."Телефон контактного лица: $phone \n"."Электронная почта контактного лица: $email";

(Отредактировано автором: 24 Октября, 2017 - 13:49:54)

Ответ:
точно
именно с этой ф-цией и был у меня баг
причем на одной машине
на других и на серверах все было ок
вылечил применяя запрос с LAST_INSERT_ID()
(Добавление)
ytrewq123 и внутрях там происходит еще один запрос


-----
вау
я кажется понял жастЮзера!!!
Вопрос: Запрос на вывод количества записей

Есть запрос:
SQL
1
2
3
4
5
SELECT * FROM patient INNER JOIN oprs ON patient.uid = oprs.uid 
                INNER JOIN n_otd ON oprs.otd = n_otd.otd 
                INNER JOIN n_opr ON oprs.opr = n_opr.opr 
                INNER JOIN N_MPS ON oprs.doc = n_mps.kmp 
                INNER JOIN NP_ANS ON oprs.ans = np_ans.ans
Выводится следующее:
fio -> Врач проводивший операцию
nopr -> Название операции
________________________________________________________________
im | ot | fam | nopor | fio |
________________________________________________________________
Иван|Иванович | Иванов | удаление чего то там | Петров Петр Петрович|
________________________________________________________________

и еще несколько сот подобных строк.

Можно ли через sql добиться вывода типа:

__________________________________________________________________________________________
наименование операции | Петров Петр Петрович | еще врач | и все врачи с запроса|
__________________________________________________________________________________________
удаление чего то там | 2 (количество проводимых операций) | 1 | 5 |
__________________________________________________________________________________________
удаление чего то там | 3 (количество проводимых операций) | 10 | 7 |
__________________________________________________________________________________________

Знаю что можно подсчитать и вывести одно поле следующим образом:
SQL
1
2
3
4
5
6
SELECT fio , opr , COUNT(opr) FROM patient INNER JOIN oprs ON patient.uid = oprs.uid 
                INNER JOIN n_otd ON oprs.otd = n_otd.otd 
                INNER JOIN n_opr ON oprs.opr = n_opr.opr 
                INNER JOIN N_MPS ON oprs.doc = n_mps.kmp 
                INNER JOIN NP_ANS ON oprs.ans = np_ans.ans 
                WHERE n_mps.fio = 'Петров Петр Петрович'  ORDER BY n_opr.opr
Но тогда результат выполнения запроса следующий:
__________________________
fio | count|
__________________________
Петров Петр Петрович| 2 |
__________________________
Или же придется все это дело через datagridview и datatable.select() конструировать.
Спасибо

Добавлено через 32 минуты
C этим вроде разобрался
SQL
1
2
3
4
5
6
7
SELECT fio , nopr , COUNT(*) FROM patient
INNER JOIN oprs ON patient.uid = oprs.uid
INNER JOIN n_otd ON oprs.otd = n_otd.otd
INNER JOIN n_opr ON oprs.opr = n_opr.opr
INNER JOIN N_MPS ON oprs.doc = n_mps.kmp
INNER JOIN NP_ANS ON oprs.ans = np_ans.ans
GROUP BY fio , nopr
Но как объединить повторяющиеся записи (не удалить)?
Ответ:
T-SQL
1
SELECT count(DISTINCT <Name>) ...
Считает не повторяющиеся записи
Вопрос: Вывод количества записей

Уважаемые форумчане, будьте добры подсказать, есть ли возможность вывести в конце таблицы строку, в которой будет записано количество записей в данной таблице?
Либо же в отдельном столбце каждой записи продублировать то же самое (количество записей в таблице)?
Ответ: Не, это просто перемещение между записями. Можно перейти на новую, но это не режим ввода. В режиме ввода уже существующие записи скрываются, и видны только те, которые лично ты ввел с того момента, как перешел в этот режим, и до обновления формы. После обновления - список записей снова пуст.

При добавлении на панель быстрого доступа выглядит так: А вот где она на панелях инструментов - так и не знаю.
Вопрос: Как сделать вывод всех записей, а не одной ?

Выполняю запрос выводиться, только одна запись первая. Как исправить нашел, что нужно использовать GROUP BY, но не понял куда применить.

Код:
SELECT dialogs.id_dialog AS id, clients.name AS name, COUNT( messages.status) AS qt FROM dialogs INNER JOIN clients ON dialogs.id_client = clients.id_client INNER JOIN messages ON dialogs.id_dialog = messages.id_dialog
Ответ: Может быть проблема в том, что только одна запись удовлетворяет этому хитрому условию?
Вопрос: Не работают запросы в phpMyAdmin

Всем привет! Народ, вот такой вопрос, в phpMyAdmin не работает простейший запрос.

Есть таблица:
id name pid (parent_id)
1 Раздел_1 0
2 Раздел_2 0
3 Раздел_3 0
4 Раздел_4 0
5 Подраздел 1.1 1
6 Подраздел 1.2 1
7 Подраздел 1.3 1
8 Подраздел 2.1 2
9 Подраздел 2.2 2
10 Подраздел 1.1.1 5
11 Подраздел 1.1.2 5
12 Подраздел 1.1.2.1 11
13 Подраздел 3.1 3
14 Подраздел 4.1 4
15 Подраздел 4.2 4


Мне надо сделать выборку записей без родителей, с тремя и более потомками, ну т.е. те, у которых pid=0, с 3 и более дочерними узлами, а это только запись "Раздел_1", т.к. на него ссылаются Подраздел 1.1, Подраздел 1.2 и Подраздел 1.3.

Пишу запрос в phpMyAdmin:

SELECT name FROM `catalogue` WHERE pid IN (SELECT id FROM catalogue WHERE pid=0) 
Нормально работает, но только частично решает задачу.

Потом пишу например вот такой запрос:
Set @kol=SELECT COUNT(name) FROM catalogue WHERE pid=0;
SELECT @kol;


Не то, что мне требуется, но даже он не работает. Помогите пожалуйста, это я неправильно запрос составил, или phpMyAdmin может как то надо настроить? Всё на хостинге beget.ru лежит
Ответ:
fenix_63
нужны записи, НА КОТОРЫЕ нет ссылок, и у которых как минимум есть 2 родителя - т.е. условно "отец", и "дед". "Прадеды" и "Пра-прадеды" даже если они и есть - их выводить не нужно.

А теперь в свете этой информации растолкуйте, почему
fenix_63
запись Подраздел 1.1.2.1

названа лишней?
Вопрос: Создать БД в phpmyadmin. Не бесплатно!

Нужно создать БД: Отражающую успеваемость студентов, а так же формы входа для каждого из профилей(Админ, препод, ученик) на таблицы через браузер и вывод таблиц в браузер с возможностью редактирования(привилегии для каждого из профилей) в phpmyadmin. А так же потом рассказать, как это всё работает.
За деньги. Нужно сделать уже сегодня. Очень срочно, выручайте 
Пишите в скайп: live:rosinw
Ответ:
Это не создать БД - это написать систему учета с авторизацией.
Создать БД - это создать БД, в вывод в бразуер - это уже система.

Этот ответ добавлен с нового Винграда - 
Вопрос: Вывести число записей с двух таблиц по условию

Подскажите как сделать вывод числа записей с двух таблиц по условию WHERE. Есть 2 табл t1 и t2 C t1 нужно вывести общей цифрой все записи + t2 только по условию где WHERE `img`='фото'.

Получилось вывести только общее кол-во записей 2-х таблиц:
CODE (SQL):

  1. <?php
  2. $link = mysqli_connect("localhost", "", "", "");
  3. /* проверка подключения */
  4. IF (mysqli_connect_errno()) {
  5.     printf("Не удалось подключиться: %s\n", mysqli_connect_error());
  6.     exit();
  7. }
  8. $query = "SELECT (SELECT COUNT(1) FROM `t1`) + (SELECT COUNT(1) FROM `t2`) AS 'all'";
  9. $result = mysqli_query($link, $query);
  10. /* обычный массив */
  11. $row = mysqli_fetch_array($result, MYSQLI_NUM);
  12. printf ("%s %s\n", $row[0], $row[1]);
  13. /* закрываем подключение */
  14. mysqli_close($link);
  15. ?>


Пытался сделать так, но выводит только все записи с t1:
CODE (SQL):

  1. "SELECT (SELECT COUNT(1) FROM `tab1`) + (SELECT COUNT(1) FROM `tab2` WHERE `img`='фото') AS 'all'


Подскажите пожалуйста где ошибка или может есть другой способ выполнения данного запроса.
Ответ:
Запрос правильный, должен работать. Запустите запрос через консоль и phpmyadmin, посмотрите что выдаст
Вопрос: в phpmyadmin для таблицы установить вручную AUTO_INCREMENT

Всем привет,
А как в phpmyadmin для таблицы установить вручную
AUTO_INCREMENT для таблицы? я имею в виду чтобы при следующем инсерте добавилась строка с ID= MAX_ID+1 от существующих строк?

Или другим способом?
автор
Server version: 5.7.13-0ubuntu0.16.04.2 - (Ubuntu)
phpMyAdmin: 4.5.4.1deb2ubuntu2

Спасибо!
Ответ: Так :
ALTER TABLE `ALLITEMS`
CHANGE COLUMN `itemid` `itemid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;

Или так:
phpMyAdmin Table->structure->Field->A_I - отметить.

Ну или так:
Вопрос: Вывод последних записей

Доброе время суток!
Не могу понять, как вывести последние 15 записей но в обратном порядке? (т.е самая последняя запись должна идти первой, предпоследняя второй и т.д)
Сам вывод выглядит так, но он просто выводит последние 15 значений!
PHP
1
$last = $Functions->db->query("SELECT user,itemid,time,casename,id FROM drops WHERE time > ".intval($_POST['tlast'])." ORDER BY id DESC LIMIT 15");
Ответ: del

Добавлено через 6 минут
Может в эту сторону копать? Немного криво, но должно работать

MySQL
1
SELECT * FROM (SELECT user,itemid,time,casename,id FROM drops WHERE time > '".intval($_POST['tlast'])."' ORDER BY id DESC LIMIT 15) as table1  ORDER by table1.id
Вопрос: Запрос на вывод последних записей подчиненной таблицы

Здаравствуйте.
Есть 2 таблицы: Таб1; Таб2 (подчиненая).
Каждой записи Таб1 соответствует 2-4 записей из Таб2.
Как сформировать запрос (желательно в конструкторе, для понимания принцыпа работы), чтобы он выводил все последние записи Таб2 каждой записи Таб1.

Для примера:
в Таб1 10 записей. Соответственно в Таб2 - 20-40 записей. Запрос выводит 10 записей из Таб2 (по 1 на каждую запись Таб1).

Кликните здесь для просмотра всего текста
Ответ:
Сообщение от RATlius
С SQL запросами пока еще не сильно освоился.
А можно и с двумя сохраненными запросами в конструкторе сделать. Сначала делаете QQ, а затем основной запрос - в конструкторе джойнте QQ с Таблицей2.