PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (7): [1] 2 3 4 5 6 7 »

> Найдено сообщений: 95
jonmodem Отправлено: 27 Апреля, 2013 - 13:24:13 • Тема: Подправьте обновление БД • Форум: Вопросы новичков

Ответов: 13
Просмотров: 395
caballero пишет:
я тебе написал чтобы ты исправил свою писанину (если не можешь привести весомый аргумент почему имена таблиц и полей в переменных) прежде чем кто то начнет в этом рыться и водить пальцем по всему твоему коду. А ты с тупым упрямством гнешь свое. То ли ты не понимаешь что тебе пишут то ли вообще ничего не понимаешь. Вывод SQL запроса на экран хоть осилил?
(Добавление)
Цитата:
И да спробуйте испольнить етот код

думаю написание функций и область видимости переменных для него тоже неведомая галактика.


Имена таблиц в переменных сделаны для упрощения установки этого дополнения к CMS. Чтобы пользователь изменял только один файл вместо всех. Я в тупике и не знаю что мне делать. Рассчитываю на вашу помощь
jonmodem Отправлено: 27 Апреля, 2013 - 10:24:39 • Тема: Подправьте обновление БД • Форум: Вопросы новичков

Ответов: 13
Просмотров: 395
caballero пишет:
Цитата:
В таблице пользователей записаны все строки, как баланса, так ID, логин, фамилия, имя, дата последнего платежа. Нужно лишь вычитать из текущего баланса стоимость услуги и обновлять значения в строке баланса и по такому же алгоритму обновить дату последнего платежа. Все это происходит при нажатии на кнопку «Оплатить» и форма направляется на этот скрипт и далее происходит редирект на страницу профиля.

еще раз - как из этого вытекает необходимость выносить имя таблицы и имена полей в переменные вместо записать ее в запросе чтобы нормальный человек (в том числе люди на этом форуме к которым ты обращаешся за помощью ) могли нормально прочитать твой код? я уже не говорю о потенциальных ошибках в запросе не только изза логики а изза того что такая переменная где то окажется непроинициализированной.
ты вообще понимаешь значение слова "переменная" и для чего они служат в программах?


dbLogin.php
PHP:
скопировать код в буфер обмена
  1. $tableUsers = "lbrtrz_users";
  2.  
  3. $fieldBalanse = "user_balance";
  4. $fieldPayDay = "user_payday";
  5. $fieldMessages = "user_messages";
  6. $fieldRegistered = "user_registered";
  7.  
  8. $userID = get_current_user_id();
  9. $userPayDay = time();
  10.  
  11. $link = mysql_connect($dbHost, $dbUser, $dbPassw0rd);
  12.  
  13. mysql_select_db($dbName, $link);


PHP:
скопировать код в буфер обмена
  1.         ini_set('display_errors',1);
  2.         error_reporting(E_ALL);
  3.        
  4.         include("dbLogin.php");
  5.  
  6.         $queryBalance = "SELECT $fieldBalanse FROM $tableUsers WHERE id = $userID";
  7.         $requestBalance = mysql_query($queryBalance, $link);
  8.         $resultBalance = mysql_fetch_array($requestBalance);
  9.  
  10.         $queryPayDay = "SELECT $fieldPayDay FROM $tableUsers WHERE id = $userID";
  11.         $requestPayDay = mysql_query($queryPayDay, $link);
  12.         $resultPayDay = mysql_fetch_array($requestPayDay);
  13.  
  14.         if ( $resultBalance[$fieldBalanse] >= 0 ) {
  15.                 $payTake = "UPDATE $tableUsers SET $fieldBalance = $resultBalance[$fieldBalanse] + 20 WHERE id = $userID";
  16.                 $payAsk = mysql_query($payTake, $link);
  17.                 $payAns = mysql_fetch_array($payAsk);
  18.                 echo mysql_error();
  19.         } else {
  20.                 echo "<span>Недостаточно денег</span>";
  21.         }
jonmodem Отправлено: 26 Апреля, 2013 - 23:43:56 • Тема: Подправьте обновление БД • Форум: Вопросы новичков

Ответов: 13
Просмотров: 395
caballero пишет:
Цитата:
Я в разных файлах создаю разные запросы и отображаю их в разных местах сайта, этот скрипт производит вычитание из текущего баланса пользователя стоимость услуги

и как их этого следует что имя таблицы юзеров надо засунуть в переменную чтобы потом вместо прочитать SQL запрос выискивать по всему коду где имя таблицы присваивается переменной.


В таблице пользователей записаны все строки, как баланса, так ID, логин, фамилия, имя, дата последнего платежа. Нужно лишь вычитать из текущего баланса стоимость услуги и обновлять значения в строке баланса и по такому же алгоритму обновить дату последнего платежа. Все это происходит при нажатии на кнопку «Оплатить» и форма направляется на этот скрипт и далее происходит редирект на страницу профиля.
jonmodem Отправлено: 26 Апреля, 2013 - 23:25:08 • Тема: Подправьте обновление БД • Форум: Вопросы новичков

Ответов: 13
Просмотров: 395
Я в разных файлах создаю разные запросы и отображаю их в разных местах сайта, этот скрипт производит вычитание из текущего баланса пользователя стоимость услуги
jonmodem Отправлено: 26 Апреля, 2013 - 23:09:39 • Тема: Подправьте обновление БД • Форум: Вопросы новичков

Ответов: 13
Просмотров: 395
caballero пишет:
Цитата:
Вот что пишут: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 20 + 20 WHERE id = 1' at line 1

Не знаю как исправить.

ну сначала прочитать что пишут.

и на фига присваивать имена таблиц и полей переменным а потом эти переменные лепить в SQL? Чтобы говнокод стал нечитаемым даже для его автора?


так проще составлять систему взаимодействующих файлов
jonmodem Отправлено: 26 Апреля, 2013 - 23:03:45 • Тема: Подправьте обновление БД • Форум: Вопросы новичков

Ответов: 13
Просмотров: 395
EuGen пишет:
http://phpfaq.ru/debug


Для меня MySQL это совсем новая галактика, для меня это самый трудный и непреодолимый момент в работе, и Я не особо понимаю что делать.
jonmodem Отправлено: 26 Апреля, 2013 - 22:46:56 • Тема: Подправьте обновление БД • Форум: Вопросы новичков

Ответов: 13
Просмотров: 395
Вот что сделал, но к сожалению не работает:
PHP:
скопировать код в буфер обмена
  1.         include("dbLogin.php");
  2.  
  3.         $queryBalance = "SELECT $fieldBalanse FROM $tableUsers WHERE id = $userID";
  4.         $requestBalance = mysql_query($queryBalance, $link);
  5.         $resultBalance = mysql_fetch_array($requestBalance);
  6.        
  7.         $queryPayDay = "SELECT $fieldPayDay FROM $tableUsers WHERE id = $userID";
  8.         $requestPayDay = mysql_query($queryPayDay, $link);
  9.         $resultPayDay = mysql_fetch_array($requestPayDay);
  10.        
  11.         if ( $resultBalance[$fieldBalanse] >= 0 ) {
  12.                 $payTake = "UPDATE $tableUsers SET $fieldBalance = $resultBalance[$fieldBalanse] + 20 WHERE id = $userID";
  13.                 $payAsk = mysql_query($payTake, $link);
  14.                 $payAns = mysql_fetch_array($payAsk);
  15.                 echo mysql_error();
  16.         } else {
  17.                 echo "<span>Недостаточно денег</span>";
  18.         }

Вот что пишут: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 20 + 20 WHERE id = 1' at line 1

Не знаю как исправить.

Раньше было так:
PHP:
скопировать код в буфер обмена
  1.         $userPayDay = time();
  2.         $tableUsers = "lbrtrz_users";
  3.         $fieldPayDay = "user_payday";
  4.         $fieldBalance = "user_balance";
  5.         $user_id = get_current_user_id();
  6.  
  7.         $paydayTake = "SELECT $fieldPayDay FROM $tableUsers WHERE id=$user_id";
  8.         $paydayAsk = mysql_query($paydayTake, $link);
  9.         $paydayAns = mysql_fetch_array($paydayAsk);
  10.         echo mysql_error();
  11.  
  12.         $balansTake = "SELECT $fieldBalance FROM $tableUsers WHERE id=$user_id";
  13.         $balanceAsk = mysql_query($balansTake, $link);
  14.         $balanceAns = mysql_fetch_array($balanceAsk);
  15.         echo mysql_error();
  16.        
  17.         if ( $balanceAns[$fieldBalance] >= 20 ) {
  18.                 $payTake = "UPDATE $tableUsers SET $fieldBalance=$balanceAns[$fieldBalance]-20 WHERE id=$user_id";
  19.                 $payAsk = mysql_query($payTake, $link);
  20.                 $payAns = mysql_fetch_array($payAsk);
  21.                 echo mysql_error();
  22.         } else {
  23.                 echo "<span>Недостаточно денег</span>";
  24.         }
jonmodem Отправлено: 17 Апреля, 2013 - 16:12:54 • Тема: Вычитание и обновление даты • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 46
avtor.fox пишет:

http://mizter[dot]ru/workroom/getpages
Бросайте. Бросайте это дело..


Что не так?
jonmodem Отправлено: 17 Апреля, 2013 - 14:10:45 • Тема: Вычитание и обновление даты • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 46
LIME пишет:
INSERT vs UPDATE
http://dev.mysql.com/doc/refman/5.6/en/update.html

Изменил, все работает, но при этом еще и ошибку выдаёт. Вот код:
PHP:
скопировать код в буфер обмена
  1.         $userPayDay = time();
  2.         $tableUsers = "lbrtrz_users";
  3.         $fieldPayDay = "user_payday";
  4.         $fieldBalance = "user_balance";
  5.         $user_id = get_current_user_id();
  6.  
  7.         $paydayTake = "SELECT $fieldPayDay FROM $tableUsers WHERE id=$user_id";
  8.         $paydayAsk = mysql_query($paydayTake, $link);
  9.         $paydayAns = mysql_fetch_array($paydayAsk);
  10.         mysql_error();
  11.         echo $paydayAns[$fieldPayDay];
  12.  
  13.         $balansTake = "SELECT $fieldBalance FROM $tableUsers WHERE id=$user_id";
  14.         $balanceAsk = mysql_query($balansTake, $link);
  15.         $balanceAns = mysql_fetch_array($balanceAsk);
  16.         mysql_error();
  17.         echo $balanceAns[$fieldBalance];
  18.        
  19.         if ( $balanceAns[$fieldBalance] >= 20 ) {
  20.                 $payTake = "UPDATE $tableUsers SET $fieldBalance=$balanceAns[$fieldBalance]-20 WHERE id=$user_id";
  21.                 $payAsk = mysql_query($payTake, $link);
  22.                 $payAns = mysql_fetch_array($payAsk);
  23.                 mysql_error();
  24.         } else {
  25.                 echo "<span>Недостаточно денег</span>";
  26.         }
jonmodem Отправлено: 16 Апреля, 2013 - 20:42:54 • Тема: Вычитание и обновление даты • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 46
Вот собственно код:
PHP:
скопировать код в буфер обмена
  1.         $userPayDay = time();
  2.         $tableName = "lbrtrz_users";
  3.         $fieldName = "user_payday";
  4.         $field_name = "user_balance";
  5.        
  6.         $link = mysql_connect($db_host, $db_user, $db_pwd);
  7.         mysql_select_db($db_name, $link);
  8.  
  9.         $query = "INSERT INTO $tableName ($fieldName) VALUES ('$userPayDay') DATE_FORMAT('$userPayDay', '%d.%m.%Y') WHERE id=$user_id";
  10.         $request = mysql_query($query, $link);
  11.         $result = mysql_fetch_array($request);
  12.        
  13.         $counti = "INSERT INTO $tableName ($field_name) VALUES ('-20') WHERE id=$user_id";
  14.         $counting = mysql_query($counti, $link);
  15.         $total = mysql_fetch_array($counting);


Ничего из этого не работает. Задача: при нажатии на кнопку подтверждения в форме, запрос отправляется на файл этого скрипта, в таблице обновляется дата и из строки баланса вычитается цифра 20
jonmodem Отправлено: 04 Апреля, 2013 - 21:04:58 • Тема: Вывод строки из БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 340
biperch пишет:
PHP:
скопировать код в буфер обмена
  1.   $table_name = "lbrtrz_users"; // Имя таблицы профилей
  2.         $field_name = "user_balance"; // Добавляемая строчка
  3.         $user_id = "122"; // незнаю как там у тебя и где но в вордпресе id пользователя в $user_ID
  4. // Подключаемся к mysql серверу
  5.         $link = mysql_connect($db_host, $db_user, $db_pwd);
  6. // Выбираем нашу базу данных
  7.         mysql_select_db($db_name, $link);
  8. // Создаём таблицу customer
  9. // т.е. делаем sql запрос
  10.  
  11.        
  12.         $query = "SELECT $field_name FROM $table_name WHERE id=$user_id";
  13.         $request = mysql_query($query, $link);
  14.         $result = mysql_fetch_array($request);
  15.         echo $result[$field_name];


Мне нужно получить ID текущего пользователя, значит нужно выполнять запрос, а не вписывать цифры.
(Добавление)
Посмотрел документацию, проблема решена, добавил следующее $user_id = get_current_user_id();
jonmodem Отправлено: 04 Апреля, 2013 - 20:16:41 • Тема: Вывод строки из БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 340
biperch пишет:
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT $field_name FROM $table_name WHERE id=$id";
  2. $request = mysql_query($query, $link);
  3. $result = mysql_fetch_array($request);
  4. echo $result[$field_name];

Ничего не получается.
Вот бОльшая часть кода.
PHP:
скопировать код в буфер обмена
  1.         $table_name = "lbrtrz_users"; // Имя таблицы профилей
  2.         $field_name = "user_balance"; // Добавляемая строчка
  3.         $user_id = "ID";
  4. // Подключаемся к mysql серверу
  5.         $link = mysql_connect($db_host, $db_user, $db_pwd);
  6. // Выбираем нашу базу данных
  7.         mysql_select_db($db_name, $link);
  8. // Создаём таблицу customer
  9. // т.е. делаем sql запрос
  10.         $quest = "SELECT $user_id FROM $table_name";
  11.         $asq = mysql_query($quest, $link);
  12.         $answer = mysql_fetch_array($asq);
  13.        
  14.         $query = "SELECT $field_name FROM $table_name WHERE id=$answer[$user_id]";
  15.         $request = mysql_query($query, $link);
  16.         $result = mysql_fetch_array($request);
  17.         echo $result[$field_name];

Данный код является отдельным файлом, который подключается на сайт, использую движок WordPress. Так что запрос на ID текущего пользователя в этот файл вывести не могу. Получается, что запрос, который Я выполнил выше, ничего не меняет и результат остается прежним.
jonmodem Отправлено: 04 Апреля, 2013 - 19:12:10 • Тема: Вывод строки из БД • Форум: Вопросы новичков

Ответов: 6
Просмотров: 340
Вот то, что выводит строку баланса.
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT $field_name FROM $table_name";
  2. $request = mysql_query($query, $link);
  3. $result = mysql_fetch_array($request);
  4. echo $result[$field_name];

но это выводит результат вне зависимости от пользователя.
У каждого пользователя есть свой ID и user_login.
Выводиться строка user_balance только первого пользователя, вне зависимости от того какой пользователь зашел в систему
Нужно как то связать значения вошедшего пользователя и выводимых данных баланса.
как это сделать.
jonmodem Отправлено: 29 Марта, 2013 - 12:58:13 • Тема: Считывание define() из файла находящегося в другом месте • Форум: Вопросы новичков

Ответов: 2
Просмотров: 127
Например файл находиться: http://example[dot]com/config.php
Его примерное содержание:
PHP:
скопировать код в буфер обмена
  1. define('DB_NAME', 'base');
  2. define('DB_USER', 'user');
  3. define('DB_HOST', 'mysql.example.com');
  4. define('DB_PASSWORD', '0000');


Например нам нужно в скрипте авторизоваться в базе, потом запросить данные.
Как провести процесс авторизации, точнее вот что у меня есть, но не работает.
PHP:
скопировать код в буфер обмена
  1. $db_host = DB_HOST;
  2. $db_user = DB_USER;
  3. $db_pwd = DB_PASSWORD;
  4. $db_name = DB_NAME;
  5. $table_name = $table_prefix . $_POST['table_name'];
  6. ...
  7. $dbhost = $db_host;
  8. $dbuser = $db_user;
  9. $dbpassword = $db_pwd;
  10. $dbname = $db_name;
  11.  
  12. $link = mysql_connect($dbhost, $dbuser, $dbpassword);
  13. mysql_select_db($dbname, $link);
jonmodem Отправлено: 29 Марта, 2013 - 12:28:36 • Тема: Проблемы с удалением дирректории • Форум: Вопросы новичков

Ответов: 8
Просмотров: 277
DelphinPRO пишет:
jonmodem пишет:
вот полный путь к директории /public_html/laboratorize/instal l
как его узнавать автоматически?


самое простое

PHP:
скопировать код в буфер обмена
  1. $dir = $_SERVER['DOCUMENT_ROOT'] . '/laboratorize/install';
  2. echo $dir;

Я создаю плагин, мне стало интересно, как можно удалять папку инсталляции

Страниц (7): [1] 2 3 4 5 6 7 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB