PHP.SU

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

Страниц (1): [1]

> Найдено сообщений: 11
8Apollon8 Отправлено: 12 Февраля, 2015 - 16:45:36 • Тема: INSERT • Форум: Работа с СУБД

Ответов: 4
Просмотров: 731
Sail пишет:
Вместо:
PHP:
скопировать код в буфер обмена
  1. else
  2.             return FALSE;

Напишите:
PHP:
скопировать код в буфер обмена
  1. else {
  2.   echo mysql_error().'<br>'.$query;
  3.   return FALSE;
  4. }

и увидите.

Спасибо еще раз! Я все правильно понял.
8Apollon8 Отправлено: 12 Февраля, 2015 - 15:59:49 • Тема: INSERT • Форум: Работа с СУБД

Ответов: 4
Просмотров: 731
Благодарю
(Добавление)
Sail пишет:
8Apollon8 пишет:
Ну почеммуу???

Особенности обработки неинициализированных переменных.
Цитата:
Хотя в PHP и нет необходимости инициализировать переменные, это считается очень хорошей практикой. Неинициализированные переменные принимают значение по умолчанию в зависимости от их типа, который определяется из контекста их первого использования: булевы принимают значение FALSE, целые и числа с плавающей точкой - ноль, строки (например, при использовании в echo) - пустую строку, а массивы становятся пустыми массивами.

И, кстати:
Цитата:
В случае работы с неинициализированной переменной вызывается ошибка уровня E_NOTICE, за исключением случая добавления элементов в неинициализированный массив. Для обнаружения инициализации переменной может быть использована языковая конструкция isset().

С нулями и пустыми строками все ясно. Основной вопрос почему же функция возвращает false.
Я полагаю, совершив опечатку '$nameeeee' php инициализирует ее как строковую переменную (она в кавычках значит строка), значение которой не задали, значит пустая строка . В случае же с опечатками $phoneeeee и $ageeeee php инициализирует их как неизвестные переменные, то есть
PHP:
скопировать код в буфер обмена
  1. ...VALUES('$name', $phoneeeee, $ageeeee)"
равносильно . А значит сам запрос не верный, потому и false.
Я правильно понимаю?
8Apollon8 Отправлено: 12 Февраля, 2015 - 15:47:38 • Тема: INSERT • Форум: Работа с СУБД

Ответов: 4
Просмотров: 731
Всем Прывет!
Граждане программисты, подскажите новичку, почему при опечатке в запросе:
PHP:
скопировать код в буфер обмена
  1. ...VALUES('$name', $phoneeeee, $ageeeee)"

функции (типы name = varchar; phone, age = int):
PHP:
скопировать код в буфер обмена
  1. function newContact($name, $phone, $age){
  2.         $query = "INSERT INTO test (name, phone, age) VALUES('$name', $phone, $age)";
  3.         $res = mysql_query($query);
  4.        
  5.                 if(mysql_affected_rows() > 0){
  6.                         return TRUE;
  7.                                
  8.                 }
  9.                 else
  10.                         return FALSE;          
  11. }

Она вернет false.
Но если я опечатаюсь так:
PHP:
скопировать код в буфер обмена
  1. ...VALUES('$nameeeee', $phone, $age)";
,
то функция вернет true и в поле name добавит пустую строку.
Или так:
PHP:
скопировать код в буфер обмена
  1. ...VALUES('$name', '$phoneeeee', '$ageeeee')";

функция вернет true и в полях phone и age добавятся нули.
Ну почеммуу??? Однако
(Добавление)
В знаниях моих о PHP начальных образовалась пустота. Так дайте ж ссылку на материал, который заполнит эту брешь.
Ммм да... пора сделать перерыв... Подмигивание
8Apollon8 Отправлено: 06 Февраля, 2015 - 17:40:59 • Тема: Сортировка по значениям, вывод по ключиам • Форум: Вопросы новичков

Ответов: 9
Просмотров: 350
А вот есшо:
PHP:
скопировать код в буфер обмена
  1.  
  2. $array = array('Иванов' => 15, 'Петорв' => 40, 'Сидоров' => 50, 'Пупкин' =>
  3.         18, 'Попов' => 51, 'Орлов' => 38, 'Карпов' => 35);
  4.  
  5.  
  6. foreach($array as $keyAge => $valAge){
  7.                 if ($valAge <= 20) {
  8.                         $age[0][$keyAge] = $valAge;
  9.                         $age1 = implode(", ", array_flip($age[0]));
  10.                 }
  11.                 elseif ($valAge > 20 and $valAge < 45) {
  12.                         $age[1][$keyAge] = $valAge;
  13.                         $age2 = implode(", ", array_flip($age[1]));
  14.                 }
  15.                 else{
  16.                         $age[2][$keyAge] = $valAge;
  17.                         $age3 = implode(", ", array_flip($age[2]));
  18.                 }
  19.         }
  20.  
  21. echo "Возрастная группа до 20: $age1";
  22. echo "<br>Возрастная группа до 45: $age2";
  23. echo "<br>Возрастная группа от 45: $age3";
  24.  
  25.  
8Apollon8 Отправлено: 06 Февраля, 2015 - 17:40:19 • Тема: array • Форум: Регулярные выражения

Ответов: 3
Просмотров: 306
А вот есшо:
PHP:
скопировать код в буфер обмена
  1.  
  2. $array = array('Иванов' => 15, 'Петорв' => 40, 'Сидоров' => 50, 'Пупкин' =>
  3.         18, 'Попов' => 51, 'Орлов' => 38, 'Карпов' => 35);
  4.  
  5.  
  6. foreach($array as $keyAge => $valAge){
  7.                 if ($valAge <= 20) {
  8.                         $age[0][$keyAge] = $valAge;
  9.                         $age1 = implode(", ", array_flip($age[0]));
  10.                 }
  11.                 elseif ($valAge > 20 and $valAge < 45) {
  12.                         $age[1][$keyAge] = $valAge;
  13.                         $age2 = implode(", ", array_flip($age[1]));
  14.                 }
  15.                 else{
  16.                         $age[2][$keyAge] = $valAge;
  17.                         $age3 = implode(", ", array_flip($age[2]));
  18.                 }
  19.         }
  20.  
  21. echo "Возрастная группа до 20: $age1";
  22. echo "<br>Возрастная группа до 45: $age2";
  23. echo "<br>Возрастная группа от 45: $age3";
  24.  
  25.  
8Apollon8 Отправлено: 06 Февраля, 2015 - 10:00:41 • Тема: Сортировка по значениям, вывод по ключиам • Форум: Вопросы новичков

Ответов: 9
Просмотров: 350
Sail пишет:
8Apollon8 пишет:
А ведь Иванову с Пупкиным и 20 нет )))

Группы ведь "до X", а не "от Y до X". Ну и "от MAX" Улыбка
В общем, используйте if() {} elseif() {} else {}

Я так и делал. Просто пропарился с тремя функциями. Можно было обойтись одной
PHP:
скопировать код в буфер обмена
  1.  
  2. function age($i_)// "Возрастная группа до 20: ",age(0);
  3. {
  4.         global $age;
  5.         foreach ($age[$i_] as $key => $value) {
  6.                 echo $key;
  7.         }
  8. }
  9.  

Как я показал выше.
А вот еще способ, который мне показал пользователь "hrushachka"
PHP:
скопировать код в буфер обмена
  1.  
  2. $array = array('Иванов' => 15, 'Петров' => 40, 'Сидоров' => 50, 'Пупкин' =>
  3.         18, 'Попов' => 51, 'Орлов' => 38, 'Карпов' => 35);
  4. asort($array);
  5. echo "Возрастная группа до 20: ";
  6. $CASE=1;
  7. foreach ($array as $key=>$value)
  8. switch (true)
  9. {
  10. case($value < 20):
  11. echo " $key";
  12. break;
  13. case ($value >=20 and $value <45):
  14. if ($CASE===1)
  15.         {
  16.         echo "<br>Возрастная группа до 45:";
  17.         $CASE=2;
  18.         }
  19. echo " $key";
  20. break;
  21. case ($value >=45):
  22. if ($CASE===2)
  23.         {
  24.         echo "<br>Возрастная группа от 50:";
  25.         $CASE=3;
  26.         }
  27. echo " $key";
  28. }
  29.  

(Добавление)
Sail пишет:
8Apollon8 пишет:
А ведь Иванову с Пупкиным и 20 нет )))

Группы ведь "до X", а не "от Y до X". Ну и "от MAX" Улыбка
В общем, используйте if() {} elseif() {} else {}

Ну да не обратил внимание на условие
8Apollon8 Отправлено: 05 Февраля, 2015 - 21:19:59 • Тема: Сортировка по значениям, вывод по ключиам • Форум: Вопросы новичков

Ответов: 9
Просмотров: 350
Спасибо! Все еще проще чем я думал )
(Добавление)
8Apollon8 пишет:
Спасибо! Все еще проще чем я думал )

Но почему-то вышло так:
Ворастная до 20ИвановПупкин
Ворастная до 45ИвановПеторвПупкинОрловКарпов
Ворастная до 50СидоровПопов
А ведь Иванову с Пупкиным и 20 нет )))
8Apollon8 Отправлено: 05 Февраля, 2015 - 21:04:22 • Тема: array • Форум: Регулярные выражения

Ответов: 3
Просмотров: 306
Спасибо. Как раз к этому я сейчас и шел. Почти доделал, но не успел )
8Apollon8 Отправлено: 05 Февраля, 2015 - 20:59:14 • Тема: Сортировка по значениям, вывод по ключиам • Форум: Вопросы новичков

Ответов: 9
Просмотров: 350
DelphinPRO пишет:
отсортировать с помощью usort
вывести одним циклом.
без всяких ваших age* функций

С помощью usort я отсортирую массив в порядке возрастания, а нужно разбить по группам.
"Вывести одним циклом"
Конечно я могу так сделать. Но тогда получится что-то типа:
Возрастная группа до 20: Иванов
Возрастная группа до 45: Петорв
Возрастная группа от 50: Сидоров
Возрастная группа до 20: Пупкин
Возрастная группа от 50: Попов
и т.д.
А нужно вывести в таком формате:
Возрастная группа до 20: Иванов Пупкин
Возрастная группа до 45: Петорв Орлов Карпов
Возрастная группа от 50: Сидоров Попов
(Добавление)
Оказалось все просто:
PHP:
скопировать код в буфер обмена
  1.  
  2. $array = array('Иванов' => 15, 'Петорв' => 40, 'Сидоров' => 50, 'Пупкин' =>
  3.         18, 'Попов' => 51, 'Орлов' => 38, 'Карпов' => 35);
  4.  
  5.         foreach($array as $keyAge => $valAge){
  6.                 if ($valAge <= 20) {
  7.                         $age[0][$keyAge] = $valAge;
  8.                 }
  9.                 elseif ($valAge > 20 and $valAge < 45) {
  10.                         $age[1][$keyAge] = $valAge;
  11.                 }
  12.                 else
  13.                         $age[2][$keyAge] = $valAge;
  14.         }
  15.  
  16. function age($i_)// "Возрастная группа до 20: ",age(0);
  17. {
  18.         global $age;
  19.         foreach ($age[$i_] as $key => $value) {
  20.                 echo $key;
  21.         }
  22. }
  23.  
  24. echo "Возрастная группа до 20: ",age(0);
  25. echo "<br>Возрастная группа до 45: ",age(1);
  26. echo "<br>Возрастная группа от 50: ",age(2);
  27.  
8Apollon8 Отправлено: 05 Февраля, 2015 - 19:58:29 • Тема: Сортировка по значениям, вывод по ключиам • Форум: Вопросы новичков

Ответов: 9
Просмотров: 350
Всем привет! Я новичок в PHP и занимаюсь тем, что ломаю себе голову простыми задачками.
Вот одна из них:
Имеется массив $array = array('Иванов' => 15, 'Петорв' => 40, 'Сидоров' => 50, 'Пупкин' =>
18, 'Попов' => 51, 'Орлов' => 38, 'Карпов' => 35);
Необходимо сделать сортировку по значениям и вывести ключи в список:
Возрастная группа до 20: Иванов Пупкин
Возрастная группа до 45: Петорв Орлов Карпов
Возрастная группа от 50: Сидоров Попов
Решил задачу так:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $array = array('Иванов' => 15, 'Петорв' => 40, 'Сидоров' => 50, 'Пупкин' =>
  4.         18, 'Попов' => 51, 'Орлов' => 38, 'Карпов' => 35);
  5.  
  6.         foreach($array as $keyAge => $valAge){
  7.                 if ($valAge <= 20) {
  8.                         $age[0][$keyAge] = $valAge;
  9.                 }
  10.                 elseif ($valAge > 20 and $valAge < 45) {
  11.                         $age[1][$keyAge] = $valAge;
  12.                 }
  13.                 else
  14.                         $age[2][$keyAge] = $valAge;
  15.         }
  16.  
  17. function age20()
  18. {
  19.         global $age;
  20.         foreach ($age[0] as $key => $value) {
  21.                 echo $key."\n";
  22.         }
  23. }
  24. function age45()
  25. {
  26.         global $age;
  27.         foreach ($age[1] as $key => $value) {
  28.                 echo $key."\n";
  29.         }
  30. }
  31. function age50()
  32. {
  33.         global $age;
  34.         foreach ($age[2] as $key => $value) {
  35.                 echo $key."\n";
  36.         }
  37. }
  38.  
  39. echo "Возрастная группа до 20: ",age20();
  40. echo "<br>Возрастная группа до 45: ",age45();
  41. echo "<br>Возрастная группа от 50: ",age50();
  42.  

Вопрос.
Возможно ли написать менее грамоздкий код без применения такого количества функций?
Если да, то могли бы вы привести пример?
8Apollon8 Отправлено: 05 Февраля, 2015 - 19:38:30 • Тема: array • Форум: Регулярные выражения

Ответов: 3
Просмотров: 306
Всем привет! Я новичок в PHP и занимаюсь тем, что ломаю себе голову простыми задачками.
Вот одна из них:
Имеется массив $array = array('Иванов' => 15, 'Петорв' => 40, 'Сидоров' => 50, 'Пупкин' =>
18, 'Попов' => 51, 'Орлов' => 38, 'Карпов' => 35);
Необходимо сделать сортировку по значениям и вывести ключи в список:
Возрастная группа до 20: Иванов Пупкин
Возрастная группа до 45: Петорв Орлов Карпов
Возрастная группа от 50: Сидоров Попов
Решил задачу так:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $array = array('Иванов' => 15, 'Петорв' => 40, 'Сидоров' => 50, 'Пупкин' =>
  4.         18, 'Попов' => 51, 'Орлов' => 38, 'Карпов' => 35);
  5.  
  6.         foreach($array as $keyAge => $valAge){
  7.                 if ($valAge <= 20) {
  8.                         $age[0][$keyAge] = $valAge;
  9.                 }
  10.                 elseif ($valAge > 20 and $valAge < 45) {
  11.                         $age[1][$keyAge] = $valAge;
  12.                 }
  13.                 else
  14.                         $age[2][$keyAge] = $valAge;
  15.         }
  16.  
  17. function age20()
  18. {
  19.         global $age;
  20.         foreach ($age[0] as $key => $value) {
  21.                 echo $key."\n";
  22.         }
  23. }
  24. function age45()
  25. {
  26.         global $age;
  27.         foreach ($age[1] as $key => $value) {
  28.                 echo $key."\n";
  29.         }
  30. }
  31. function age50()
  32. {
  33.         global $age;
  34.         foreach ($age[2] as $key => $value) {
  35.                 echo $key."\n";
  36.         }
  37. }
  38.  
  39. echo "Возрастная группа до 20: ",age20();
  40. echo "<br>Возрастная группа до 45: ",age45();
  41. echo "<br>Возрастная группа от 50: ",age50();
  42.  

Вопрос.
Возможно ли написать менее грамоздкий код без применения такого количества функций?
Если да, то могли бы вы привести пример?
(Добавление)
Пардон. Ошибся темой.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB