Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
32 / 25 / 12
Регистрация: 24.01.2011
Сообщений: 564

Передача значений в бд

21.09.2016, 20:11. Показов 1439. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему приходят пустые строки? И почему отправляется только одна запись, чтобы отправить еще, нужно перейти(не обновить) снова на страницу?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
 
define("DB_HOST", "localhost");
define("DB_LOGIN", "root");
define("DB_PASS", "");
define("DB_NAME", "gbook");
$con = mysqli_connect(DB_HOST, DB_LOGIN, DB_PASS, DB_NAME);
if(!$con)
    echo "ERROR";
 
 
if(!isset($_POST['name']) && !isset($_POST['email']) && !isset($_POST['msg']))
{
    $name = trim(strip_tags($_POST['name']));
    $email = trim(strip_tags($_POST['email']));
    $msg = trim(strip_tags($_POST['msg']));
    $sql = "INSERT INTO msgs (name, email, msg) VALUES ('$name', '$email', '$msg')";
    $result = mysqli_query($con, "INSERT INTO msgs (name, email, msg) VALUES ('$name', '$email', '$msg')");
    if(!result)
        echo "ERROR result";
}
 
?>
<h3>Оставьте запись в нашей Гостевой книге</h3>
 
<form method="post" action="<?= $_SERVER['REQUEST_URI']?>">
Имя: <br /><input type="text" name="name" /><br />
Email: <br /><input type="text" name="email" /><br />
Сообщение: <br /><textarea name="msg"></textarea><br />
 
<br />
 
<input type="submit" value="Отправить!" />
 
</form>
<?php
    mysqli_close($con);
?>
Помогите, разобраться, пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2016, 20:11
Ответы с готовыми решениями:

Передача нескольких значений
Есть допустим куча чекбоксов: &lt;input type=&quot;checkbox&quot; value=&quot;1&quot; name=&quot;checkbox&quot; class=&quot;all&quot;&gt; &lt;input type=&quot;checkbox&quot;...

Передача значений методом post
Здравствуйте, помогите пожалуйста Имеется скрипт оплаты: &lt;form method=&quot;post&quot;...

Передача двух значений GET в один скрипт
Доброго времени суток! В связи с моей паранойей встала задача скрыть полный путь к картинки с другого сайта. Суть идеи в том, что бы...

7
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
21.09.2016, 20:39
Лучший ответ Сообщение было отмечено HAIRY как решение

Решение

Цитата Сообщение от HAIRY Посмотреть сообщение
Почему приходят пустые строки?
Куда приходят? В базу?
Цитата Сообщение от HAIRY Посмотреть сообщение
PHP
1
2
3
4
5
6
7
8
9
if(!isset($_POST['name']) && !isset($_POST['email']) && !isset($_POST['msg']))
{
    $name = trim(strip_tags($_POST['name']));
    $email = trim(strip_tags($_POST['email']));
    $msg = trim(strip_tags($_POST['msg']));
    $sql = "INSERT INTO msgs (name, email, msg) VALUES ('$name', '$email', '$msg')";
    $result = mysqli_query($con, "INSERT INTO msgs (name, email, msg) VALUES ('$name', '$email', '$msg')");
    if(!result) echo "ERROR result";
}
Наверное, потому что вы не отправляете туда ничего. Восклицательные знаки уберите перед isset. И в 19 строке перед result знак доллара не стоит.

Добавлено через 4 минуты
Цитата Сообщение от HAIRY Посмотреть сообщение
PHP
1
2
$sql = "INSERT INTO msgs (name, email, msg) VALUES ('$name', '$email', '$msg')";
$result = mysqli_query($con, "INSERT INTO msgs (name, email, msg) VALUES ('$name', '$email', '$msg')");
Зачем вам переменная $sql, если вы ее не используете
PHP
1
2
$sql = "INSERT INTO msgs (name, email, msg) VALUES ('$name', '$email', '$msg')";
$result = mysqli_query($con, $sql);
0
32 / 25 / 12
Регистрация: 24.01.2011
Сообщений: 564
21.09.2016, 20:48  [ТС]
спасибо, все заработало, но пару вопросов осталось
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Наверное, потому что вы не отправляете туда ничего. Восклицательные знаки уберите перед isset. И в 19 строке перед result знак доллара не стоит.
так с восклицательными знаками, это получается как бы проверка, была ли отправлена форма
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
Зачем вам переменная $sql, если вы ее не используете
просто думал может не правильно параметр передаю и решил передать сразу запрос.
Так получается проблема была в восклицательном знаке?
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
21.09.2016, 20:57
Цитата Сообщение от HAIRY Посмотреть сообщение
это получается как бы проверка, была ли отправлена форма
isset возвращает истину, если перемнная установлена, а !isset возвращает истину, если неустановлена
1
32 / 25 / 12
Регистрация: 24.01.2011
Сообщений: 564
22.09.2016, 18:26  [ТС]
а это почему не работает?
PHP
1
2
3
4
5
/* Вывод записей из БД */
$sql_print = "SELECT id, name, mail, msg, UNIX_TIMESTAMP(datetime) as dt FROM msgs ORDER BY id DESC";
$result_print = mysqli_query($con, $sql_print);
echo "$result_print";
/* Вывод записей из БД */
сверху код тот же
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
22.09.2016, 21:31
PHP
1
2
3
4
$result_print = mysqli_query($con, $sql_print);
while( $row = mysqli_fetch_assoc($result_print)){
     echo $row['name'];
}
0
32 / 25 / 12
Регистрация: 24.01.2011
Сообщений: 564
24.09.2016, 14:47  [ТС]
а почему так не работает?
PHP
1
2
3
4
$sql_print = "SELECT id, email, name, msg, UNIX_TIMESTAMP(datetime) as dt FROM msgs ORDER BY id DESC";
$result_print = mysqli_query($con, $sql_print);
$row = mysqli_fetch_assoc($result_print);
echo $row['name'];
Добавлено через 18 часов 29 минут
config.inc.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
define("DB_HOST", "localhost");
define("DB_LOGIN", "root");
define("DB_PASS", "");
define("DB_NAME", "eshop");
define("ORDERS_LOG", "orders.log");
$basket = [];
$count = '';
$connect = mysqli_connect(DB_HOST, DB_LOGIN, DB_PASS, DB_NAME);
if(!$connect)
    echo "ERROR CONNECT";
?>
lib.inc.php
PHP
1
2
3
4
5
6
7
<?php
function addItemToCatalog($title, $author, $pubyear, $price){
    $sql = "INSERT INTO catalog (title, author, pubyear, price) VALUES('$title','$author','$pubyear','$price')";
    $result = mysqli_query($connect, $sql);
    if(!$result)
        echo "Ошибка запроса";
}
save2cat.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
    // подключение библиотек
    require "secure/session.inc.php";
    require "../inc/lib.inc.php";
    require "../inc/config.inc.php";
if(isset($_POST['title']) && isset($_POST ['author']) && isset($_POST['pubyear']) && isset($_POST['price'])){
    $title = trim(strip_tags($_POST['title']));
    $author = trim(strip_tags($_POST['author']));
    $pubyear = trim(strip_tags($_POST['pubyear']));
    $price = trim(strip_tags($_POST['price']));
}
if(!addItemToCatalog($title, $author, $pubyear, $price)){
    echo "Ошибка при добавлении товара";
}else{
    header("Location: add2cat.php");
    exit;
}
почему не передаются значения, вылазит ошибка Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\web\OpenServer\domains\levels2\eshop\ inc\lib.inc.php
первый параметр функции, подключение к БД, но с подключением же все нормально, ошибок об подключении нету.
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
25.09.2016, 16:30
Цитата Сообщение от HAIRY Посмотреть сообщение
вылазит ошибка Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\web\OpenServer\domains\levels2\eshop\ inc\lib.inc.php
первый параметр функции, подключение к БД, но с подключением же все нормально, ошибок об подключении нету.
Читаем внимательно. Тут говорится не об ошибке подключения, а о том, что переменная $connect = null. А все потому что вы не передали эту переменную в функцию.
Почитайте про область видимости переменных.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.09.2016, 16:30
Помогаю со студенческими работами здесь

Передача значений переменных с отдельных форм
Имеется 2 переменные - $имя, $фамилия; и схематично следующая ситуация: Я вывел данные об имени с помощью обычной текстовой бд....

Передача значений в функцию, которая выводит информацию из таблицы БД
Я хочу выводить текст из таблицы БД на несколько страниц, но писать одну и ту же функцию много раз в одном файле не хочется, чтобы не...

Передача значений
Собираю при помощи объекта данные из других форм, и в другой считаю. Вроде делаю всё правильно, но всё равно в результате выдаёт ноль ((...

Передача значений
Здравствуйте, имеется 3 таблицы (отн. многим ко многим). В таблице1 Id_client и &quot;имя&quot; в таблице2 Id_sobitie и &quot;событие&quot; ...

Передача значений!
Здраствуйте! В общем для примера есть прогамма (ScrollBar двигает стрелку на индикаторе (Это чиста для примера)) : #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru