Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вывод email
 
 автор: liberty   (23.05.2013 в 06:23)   письмо автору
 
 

<?php
if (!empty($myrow3 ['email'])) {
       
printf ("<p><span class='kp_main'>E-mail:</span> <a href='mailto:%s'>%s</a></p>"
      
$myrow3["email"], $myrow3["email"]);
       }
 
 if (!empty(
$myrow3 ['email2'])) {
       
printf ("<p><span class='kp_main'>Дополнительный e-mail:</span> %s</p>"
       
$myrow3["email2"]);
       }
?>


выводится в 2 строки.
а как вывести в одну строку? kastcoleg@mail.ru , forumkast@mail.ru
с проверкой на существование?

Заодно уж напишите, плиз, правильно ли оформлен код.

  Ответить  
 
 автор: confirm   (23.05.2013 в 08:09)   письмо автору
 
   для: liberty   (23.05.2013 в 06:23)
 

Есть два стиля написания конструкций, первый, это скобки конструкции пишут после объявления конструкции с отступом, причем открывающая и закрывающая скобки располагаются с одинаковым отступом (в одной колонке), а тело конструкции с отступом в этих скобках:
<?
if($a)
    {
        print 
$a;       
    }
На мой "вкус" такой стиль с "дырами" и не экономичен. )

Мне нравится стиль java, так как вы и пишите, но только закрывающую скобку нужно писать по краю объявления конструкции:
<?
if($a) {
    print 
$a;   
}
Иначе при сложной структуре конструкции не видно "что" закрывает конструкцию:
<?
//это плохо
if($a) {
    print 
$a;
    }
else exit;
//это хорошо
if($a) {
    print 
$a;   
} else {
    if(
$b) {
       
$n++; $k++;
    }
}

Выше просто примеры, но если конструкция содержит одно выражение, то заключать ее в скобки не обязательно, и даже излишне.
Можно написать if(), а можно if (), но вот "отрывать" от имени массива его ключ, так этого не стоит делать - $array['key'], а не $array ['key'].

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

  Ответить  
 
 автор: liberty   (24.05.2013 в 07:43)   письмо автору
 
   для: confirm   (23.05.2013 в 08:09)
 

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

  Ответить  
 
 автор: confirm   (24.05.2013 в 08:44)   письмо автору
 
   для: liberty   (24.05.2013 в 07:43)
 

Вы понимаете о чем я пишу или нет?
А написал я буквально следующее:

а) если это обработка в цикле mysql-ресурса, и эти проверяемые поля принадлежат разным записям (что это означает?), то нужно запоминать результат проверки с последующим объединением (как объединяются строки в РНР?);

б) если это обработка в цикле mysql-ресурса, и эти проверяемые поля принадлежат одной записи (что это означает?), то условие проверки должно быть иным (каким, если учитывать что пустые строки не должны помещаться в базу, а пустая строка возвращает false?) и сразу следует объединение (как объединяются строки в РНР?) двух переменных в одной строке.

  Ответить  
 
 автор: DangerBay   (24.05.2013 в 10:30)   письмо автору
 
   для: liberty   (23.05.2013 в 06:23)
 

<?php
$output 
'<p><span class="kp_main">E-mail:</span> ';

if (isset(
$myrow3 ['email'])) $mail1 $myrow3 ['email'];
if (isset(
$myrow3 ['email2'])) $mail2 $myrow3 ['email2'];

$output .= $mail1 ? ('<a href="mailto:'$mail1 .'">'$mail1 .'</a>') : '';
$output .= $mail2 ? ( ($mail1 ', ' '') . '<a href="mailto:'$mail2 .'">'$mail2 .'</a>') : '';

if (!
$mail1 && !$mail2$output .= 'нет';

$output .= '</p>';

echo 
$output;
?>


empty лучше не использовать - в php 5.3 и 5.4 ведет себя по-разному.

  Ответить  
 
 автор: confirm   (24.05.2013 в 11:20)   письмо автору
 
   для: DangerBay   (24.05.2013 в 10:30)
 

Что-то вы лишнего накарякали, даже пусть это и из формы пришло.

  Ответить  
 
 автор: liberty   (24.05.2013 в 14:22)   письмо автору
 
   для: confirm   (24.05.2013 в 11:20)
 

так что имеено лишнее.
давайте сравним ваш вариант.

  Ответить  
 
 автор: confirm   (24.05.2013 в 14:36)   письмо автору
 
   для: liberty   (24.05.2013 в 14:22)
 

А самому подумать? Вы на вопросы ответили?

  Ответить  
 
 автор: Lotanaen   (24.05.2013 в 14:26)   письмо автору
 
   для: liberty   (23.05.2013 в 06:23)
 

Вы же каждый раз новый параграф выводите <p> ... </p> - поэтому и перенос строк получается на странице

  Ответить  
 
 автор: liberty   (25.05.2013 в 07:19)   письмо автору
 
   для: Lotanaen   (24.05.2013 в 14:26)
 

спасибо.
вот сделал
<?php 
echo "<p>";
if (!empty(
$myrow3 ['email'])) {
     
printf ("<span class='kp_main'>E-mail:</span> <a href='mailto:%s'>%s</a>"
     
$myrow3["email"], $myrow3["email"]);}
 
 if (!empty(
$myrow3 ['email2'])) {
     
printf ("<span class='kp_main'>, </span><a href='mailto:%s'>%s</a>"
     
$myrow3["email2"], $myrow3["email2"]);}
  echo 
"</p>";
?>

  Ответить  
 
 автор: mihdan   (05.06.2013 в 09:23)   письмо автору
 
   для: liberty   (23.05.2013 в 06:23)
 

Вам для начала надо html подучить

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования