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

Форум PHP

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

 

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

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

тема: Создание формы добавления комментариев!
 
 автор: Users   (02.01.2010 в 22:04)   письмо автору
 
 

Люди помогите пожалуйста сделать нормальную форму!!!! Фишка в чем! Форма как таковая у меня уже есть!!! После того как комментарий вывелся на страницу, видно имя автора ,дата добавления и текст комментария!!! Но в базе данных и в форме есть поле для добавления сайта автора!!!Т.е. сайт автора в базу попадает но правильно сформировать код ,что бы имя автора в комменте было ссылкой на его сайт у меня не получается (я только учусь PHP)!!! У меня либо все имена авторов являются ссылками, либо все обычные без ссылки!!!
Форма:

<form action="comment.php" method="post" name="form_comment">
<fieldset><legend><strong>ДОБАВИТЬ КОММЕНТАРИЙ</strong></legend><br><img src="img/png4.gif">
<p class="poz"><label class="color"> Имя*: </label><input class="name" name="author" type="text" size="20" maxlength="30"></p>
<p class="poz"><label class="color"> Сайт: </label><input class="sait" name="blog" type="text" size="28" maxlength="30"></p>
<p class="poz"><label class="color"> Е-mail: </label><input class="e-mail" name="email" type="text" size="28" maxlength="30"></p>
<p class="poz"><label><textarea class="coment" name="text" cols="37" rows="7"></textarea></label></p><p class="poz2">
<img src="<? echo $myrow4["img"]; ?>"><input class="capcha" style='margin-top:4px;' name="pr" type="text" size="6" maxlength="7">
<input name="id" type="hidden" value="<? echo $id?>"></p><br>
<p class="poz"><input class="but" name="sub_com" type="submit" value="Отправить"></fieldset></p>
</fieldset>
</form>

Код когда имя ссылкой не является:

$result3 = mysql_query ("SELECT * FROM coments WHERE post='$id'",$db);

if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);
do
{
printf ("<strong>%s</strong> <span class='span'>(%s)</span><div class='border'><p>%s</p>
       
</div>",$myrow3["author"],$myrow3["date"],$myrow3["text"]);    

}
while ($myrow3 = mysql_fetch_array($result3));
}


Помогите пожалуйста сформировать цикл правильно , что бы при заполненном поле blog , имя автора коммента было ссылкой, а при пустом обычное имя!!!!!!!!!

  Ответить  
 
 автор: neadekvat   (02.01.2010 в 23:32)   письмо автору
 
   для: Users   (02.01.2010 в 22:04)
 

Нифига не понял в предоставленном коде..приведу пример:
пусть $array - массив, возвращаемый из бд
$array['name'] - имя человека
$array['site'] - сайт

<?php
if ( !empty ( $array['site'] ) ) {
 echo 
'<a href="' $array['site'] . '">' $array['name'] . '</a>';
} else {
 echo 
$array['name'];
}

  Ответить  
 
 автор: XazzzI   (02.01.2010 в 23:43)   письмо автору
 
   для: neadekvat   (02.01.2010 в 23:32)
 

да , верно . но еще это нужно пихнуть в цикл .

$ans=mysql_query('SELECT * FROM yourtable;'); //ваш запрос
$num=mysql_num_rows($ans); //считаем кол-во результатов
for($i=0;$i<$num;$i++){ //прогоняем цикл
  if ( !empty ( mysql_result($ans,$i,'site') ) ) { //если в строке сайт чтото есть
    echo '<a href="' . mysql_result($ans,$i,'site') . '">' . mysql_result($ans,$i,'name'). '</a>';  //пишем ссылку
  } 
  else { 
    echo mysql_result($ans,$i,'name'); //иначе просто имя автора выводим.
  }
  //еще какието нужные операции
}

  Ответить  
 
 автор: neadekvat   (02.01.2010 в 23:50)   письмо автору
 
   для: XazzzI   (02.01.2010 в 23:43)
 

Зачем так мутить? Если уж с циклом
<?php
$query 
mysql_query("SELECT * FROM comments");
while (
$comment mysql_fetch_assoc $query ) ) {
 if ( !empty ( 
$array['site'] ) ) { 
  echo 
'<a href="' $array['site'] . '">' $array['name'] . '</a>'
 } else { 
  echo 
$array['name']; 
 }
}

А все остальное автор сам добавит.

  Ответить  
 
 автор: XaZzZi   (02.01.2010 в 23:56)   письмо автору
 
   для: neadekvat   (02.01.2010 в 23:50)
 

Да не разбираюсь я в такой вот конструкции :
while ($comment = mysql_fetch_assoc ( $query ) ){

вот и мутю , но так чтобы работало ))

  Ответить  
 
 автор: neadekvat   (03.01.2010 в 00:25)   письмо автору
 
   для: XaZzZi   (02.01.2010 в 23:56)
 

Ну да, и сразу стоит сложить ручки и сидеть на месте.
$query - запрос к бд
$comment = mysql_fetch_assoc ( $query ) - вернуть одну строку из бд, строка представляет из себя массив, массивом естессно будет $comment
while ($comment = mysql_fetch_assoc ( $query ) ) - пока в бд имеются строки и mysql_fetch_assoc ( $query ) будет их возвращать, производить какие-то действия в теле цикла
Что непонятного?

  Ответить  
 
 автор: Users   (03.01.2010 в 07:40)   письмо автору
 
   для: neadekvat   (03.01.2010 в 00:25)
 

neadekvat большое тебе спасибо!!!!!!!!! Сделал как ты написал и все пошло!!!
Вот что получилось:

$result3 = mysql_query ("SELECT * FROM coments WHERE post='$id'",$db);
while ($myrow3 = mysql_fetch_assoc ( $result3 ) ) {
 if ( !empty ( $myrow3['blog'] ) ) { 
  echo '<strong><a href="' . $myrow3['blog'] . '">' . $myrow3['author'] . '</a></strong><span class="span">
(' . $myrow3['date'] . ')</span><div class="border"><p>' . $myrow3['text'] . '</p></div>' ; 
 } else { 
 echo '<strong>' . $myrow3['author'] . '</strong><span class="span">(' . $myrow3['date'] . ')</span><div class="border"><p>' . $myrow3['text'] . '</p></div>' ; 
 }
}

И главное все работает!!!Спасибо!!!!!!

  Ответить  
 
 автор: neadekvat   (03.01.2010 в 14:15)   письмо автору
 
   для: Users   (03.01.2010 в 07:40)
 

Лишний код пишешь, можно так:

<?php
$result3 
mysql_query ("SELECT * FROM coments WHERE post='$id'",$db); 
while (
$myrow3 mysql_fetch_assoc $result3 ) ) { 
 if ( !empty ( 
$myrow3['blog'] ) ) {  
  echo 
'<strong><a href="' $myrow3['blog'] . '">' $myrow3['author'] . '</a></strong>';
 } else {  
  echo 
'<strong>' $myrow3['author'] . '</strong>';
 } 
 echo 
'<span class="span">(' $myrow3['date'] . ')</span>';
 echo 
'<div class="border"><p>' $myrow3['text'] . '</p></div>';
}

То есть та часть, которая выводится вне зависимости от условия if ( !empty ( $myrow3['blog'] ) ), выносится за пределы этого условия, чтобы самому потом не путаться.

  Ответить  
 
 автор: Users   (03.01.2010 в 15:58)   письмо автору
 
   для: neadekvat   (03.01.2010 в 14:15)
 

Понял!!!!!!!! Спасибо, уже исправил!!!!!!!!!!!

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

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