PHP.SU

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

Страниц (29): В начало « ... 18 19 20 21 [22] 23 24 25 26 ... » В конец

> Найдено сообщений: 425
exlant Отправлено: 08 Марта, 2015 - 00:33:31 • Тема: Проблемы с новой версией PHP • Форум: Вопросы новичков

Ответов: 6
Просмотров: 248
ну а что тут подсказывать? Библиотека mysql - Deprecated, значит в следующей версии php будет удалена! Нужно идти в ногу со временем! Изучайте mysqli или pdo, в этих библиотеках ничего сложного нет, если хорошенько разобраться! И есть разные бонусы, если сравнивать с mysql!
Вы же не застрахованы от того, что когда выйдет новая версия php, и ваш сервер установит ее себе, и перестанет поддерживать теперешнюю версию! Тогда ваш сайт вообще работать не будет! Что будете делать? Или искать новый сервер, или учить mysqli/pdo.
exlant Отправлено: 08 Марта, 2015 - 00:12:46 • Тема: форматирование текста • Форум: Вопросы новичков

Ответов: 5
Просмотров: 352
Он наверное решил, что раз ему никто не отвечает, то за код нужно денег требовать Ха-ха
exlant Отправлено: 05 Марта, 2015 - 23:50:26 • Тема: MySQL меня не понимает • Форум: Вопросы новичков

Ответов: 4
Просмотров: 309
я бы еще попробовал || на or заменить!
может там что то с приоритетом не так...
exlant Отправлено: 05 Марта, 2015 - 23:34:48 • Тема: MySQL меня не понимает • Форум: Вопросы новичков

Ответов: 4
Просмотров: 309
так вы с начало и присваиваете $id integer

а потом ее же и выводите
PHP:
скопировать код в буфер обмена
  1. echo '$first = '.$first.' ('.gettype($id).')';


а в ошибке вам говориться, что не integer у вас в переменной а boolean, и это возможно из-за того что вы пишете

а надо
PHP:
скопировать код в буфер обмена
  1.  
  2. $row = mysql_fetch_assoc($first) || die(mysql_error()); // или какая то другая переменная
  3.  

хотя в первый вызов должно было и сработать и вывести, то что надо, а вот в цикле точно выдало бы вам ошибку такая запись
exlant Отправлено: 05 Марта, 2015 - 23:12:05 • Тема: Поисковый запрос к базе mysql • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 29
Цитата:
Никогда так не пишите. Укажите скобками явно, что вы хотите получить: (c1 and c2) or c3 или c1 and (c2 or c3)

спасибо за уточнение, но оно сути к вопросу не имеет! Улыбка

Я так понял, что порядок условий которые идут после WHERE никакого значения не имеет! И если идет запрос с несколько десятками условий, то все строчки в базе данных будут проверяться по всем этим условиям!
exlant Отправлено: 05 Марта, 2015 - 22:14:45 • Тема: Поисковый запрос к базе mysql • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 29
Я хочу уточнить! В запросе типа
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT FROM WHERE colum1=colum1 AND colum2=colum2 OR colum3=colum3
  3.  


с начало выбираются все элементы, где colum1=colum1, затем из этого списка(список №1) выбираются все элементы , где colum2=colum2(список №2), а потом из списка №1 исключаются все элементы списка №2, и из него выбираются все элементы, где colum3=colum3 (список №3), а потом склеиваются список №2 и список №3, и уже отдаются в качестве ответа на sql запрос.

Я правильно понимаю??
exlant Отправлено: 05 Марта, 2015 - 15:55:49 • Тема: Как передать массив через <form> • Форум: Вопросы новичков

Ответов: 13
Просмотров: 681
Xenox пишет:

Т.е. к примеру если бы у меня был какой то html код перед открывающим тегом php сессии бы не работали?

именно

Цитата:
P.S. препод сказал что на нормальном сервере все будет ок, типа это косяки денвера

не повезло вам с преподом... денвер тут не причем

еще может быть эта ошибка из за bom символа в UTF-8
exlant Отправлено: 05 Марта, 2015 - 15:33:38 • Тема: Как передать массив через <form> • Форум: Вопросы новичков

Ответов: 13
Просмотров: 681
да, только строчка "<?php" должна начинаться обязательно с первой строчки файла! Без всяких пробелов
PHP:
скопировать код в буфер обмена
  1.  
  2.  <?PHP // то есть вот так уже будет ошибка
  3.  

если хоть один любой символ будет выведет в браузер перед стартом сессии, то будет ошибка headers alredy sent!

Разве что можно еще включить буферизацию.
exlant Отправлено: 05 Марта, 2015 - 15:03:24 • Тема: Как передать массив через <form> • Форум: Вопросы новичков

Ответов: 13
Просмотров: 681
Ну так, на 1ой странице ввели данные, перешли на вторую, там первые данные записали в сессию, на 2ой ввели еще данные, перешли на следующую страничку, там новые данные добавили в сессию, ввели еще данные, перешли на следующую там опять все в сессию, и т.д.
в конце берем все нужные данные из сессии, и записываем в базу! имхо так логичней!
(Добавление)
а ваш препод не может объяснить что означат ошибка headers alredy sent?
сессию нужно стартовать в самом начале файла, там не должно быть ни единого символа, включая пробелы!
exlant Отправлено: 05 Марта, 2015 - 14:18:35 • Тема: Как передать массив через <form> • Форум: Вопросы новичков

Ответов: 13
Просмотров: 681
А не лучше именно для передачи массива сессии использовать?
Мне даже идеи не приходят, где нужно использовать именно форму для передачи массива!
exlant Отправлено: 05 Марта, 2015 - 02:24:16 • Тема: Как передать массив через <form> • Форум: Вопросы новичков

Ответов: 13
Просмотров: 681
http://lmgtfy[dot]com/?q=%D0%9A%D0%B[dot][dot][dot]D0%B7+%3Cform%3E

а вообще можно еще склеить массив в строчку и передать!

и к слову, так вы передаете не переменную, а значение которое находится в этой переменной!
exlant Отправлено: 04 Марта, 2015 - 02:33:26 • Тема: Сайт гостиницы. • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 94
можно как то так, но это если date1,date2 храниться в формате date, и соответственно $_POST[date] тоже надо с начало проверить на корректность, а потом перевести в Y-m-d
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "SELECT o.*,n.* FROM onerooms o
  3. INNER JOIN Numbers n ON o.id = n.id_number WHERE (o.date1<=".$_POST['date2']." AND o.date2>=".$_POST['date2'].") OR (o.date2>=".$_POST['date1']." AND o.date1<=".$_POST['date1'].") OR (o.date1>=".$_POST['date1']." AND o.date2<=".$_POST['date1'].") GROUP BY n.id_number ORDER BY "поле по какому сортировать"
  4.  
  5.  



и вместо того что бы создавать таблицы на каждую oneRooms, можно было сделать колонку rooms, и указывать там количество комнат!
exlant Отправлено: 03 Марта, 2015 - 22:25:41 • Тема: Сайт гостиницы. • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 94
Я в код особо не вникал, это только то что сразу бросилось в глаза!

как только начал читать увидел
PHP:
скопировать код в буфер обмена
  1.  
  2.         $d1 = date('d-m-Y', strtotime($d1)); //Даты привожу к формату дд-мм-гггг
  3.         $d2 = date('d-m-Y', strtotime($d2));
  4.         $d1 = strtotime($d1); //перевожу для сравнения
  5.         $d2 = strtotime($d2);
  6.        
  7.  

вообще непонятно зачем с начало переводить в формат 'd-m-Y', используя притом функцию strtotime($d1), а потом нигде не использовав переменные переводить опять в timestamp, первые две строчки вообще не нужны!

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

SELECT * FROM вот так вот вообще не правильно писать! вместо * возьмите за правило писать имена столбцов, которые нужны, и вообще можно, даже я бы сказал нужно было все проверки занят/свободен, дублированные номера/не дублированные, сортировку и т.д. перенести в запрос к БД, а не дергать всю базу данных, а потом фильтровать ее средствами php!

потом не понятно зачем нужны первые вот эти две строчки
PHP:
скопировать код в буфер обмена
  1. $query = mysql_query("SELECT * FROM onerooms");
  2.         $row = mysql_fetch_assoc($query);

в function bron_form()! вернее сказать они там вообще не нужны так как не используются потом в функции

потом не понятно зачем постоянно дергать всю БД! Раз уже и дернули всю БД, то сохранили бы ее в каком то массиве, и передавали потом удобным вам способом!

И на последок библиотека mysql давно уже устарела, и в следующей версии php будет удалена! Так что если есть желание дальше изучать этот язык, то нужно переходить с mysql на mysqli или pdo!
exlant Отправлено: 02 Марта, 2015 - 21:38:49 • Тема: Обединение UPDATE INSERT DELETE • Форум: Работа с СУБД

Ответов: 31
Просмотров: 3907
это если не сработает ни один case, то $cost будет 25... эту строчку можно вообще убрать, это так на всякий случай написал!

ведь пользователь может в форме какой то другой период передать...

а вообще все данные из формы нужно проверять!

и вместо mysql использовать mysqli, так как первая уже устарела и будет в следующей версии php удалена!
exlant Отправлено: 02 Марта, 2015 - 21:29:06 • Тема: Обединение UPDATE INSERT DELETE • Форум: Работа с СУБД

Ответов: 31
Просмотров: 3907
как то так можно сделать
PHP:
скопировать код в буфер обмена
  1. $ac_id = (isset($_POST['user_id'])) ? abs((int)$_POST['user_id'] ) : null;
  2. $period = (isset($_POST['period'])) ? abs((int)$_POST['period'] ) : null;
  3.  
  4. switch($period){
  5.   case 1 : $cost = 25;
  6.   break;
  7. case 7 : $cost = 7*25;
  8.   break;
  9. case 31 : $cost = 31*25;
  10.   break;
  11. default: $cost = 25;
  12. }
  13.  
  14. $result1 = mysql_query("UPDATE cp_shards SET shard=shard ".$cost." WHERE acid= $ac_id AND shard >= ".$cost);
  15. //проверяем или хватает денег у юзера
  16.  
  17. mysql_query("INSERT INTO account_premiums (id,setdate,unsetdate) VALUES ('$ac_id',NOW(),NOW() + interval ".$period." day )  ON DUPLICATE KEY UPDATE setdate=NOW(), unsetdate=NOW() + interval ".$period." day");
  18. }else{
  19. echo "не достаточно средств на счете";
  20. }

"-" минус упустил в коде
$result1 = mysql_query("UPDATE cp_shards SET shard=shard -".$cost." WHERE acid= $ac_id AND shard >= ".$cost);

Страниц (29): В начало « ... 18 19 20 21 [22] 23 24 25 26 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB