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

Форум MySQL

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

 

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

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

тема: мультивыборочная форма (chosen plugin)
 
 автор: Ph_mx   (23.09.2013 в 15:59)   письмо автору
 
 

решил опробовать интересный плагин chosen, где в селект форма имеет строку поиска и где можно выбрать несколько записей сразу(в моем случае, это адресаты) так вот у меня вопрос, как заносить в БД несколько по сути одинаковых переменных?
исходники
запрос к БД( мне бы его модифицировать)
$query = "SELECT * FROM usermessages";
$query = "INSERT INTO usermessages (`nomer`, `to`, `from`, `date`, `title`, `message`, `new`) VALUES ('$nr', '$to', '$user', '$date', '$titles', '$messages', '$novo')";
$result=mysql_query($query, $link) or die(" Error returned if any: ".mysql_error());
}


код селекта
<select data-placeholder="Кому..." class="chosen-select" multiple style="width:300px;" tabindex="4" name="to"> 
<?php 
      
global $link;
      
$query "SELECT id, name, surname FROM `users` 
WHERE `id` IN (SELECT IF(`user_invited` = 
$user_id, `user_inviter`, `user_invited`)FROM `users_status` WHERE (`user_inviter` = $user_id OR `user_invited` = $user_id) AND `stat_val_id` = 2)";
 
   
$result=mysql_query($query$link) or die(" Error returned if any: ".mysql_error());
   
   
   while (
$myrow mysql_fetch_array($result)){
           
            
             

echo 
"<option value='".$myrow['id']."'> ".$myrow['name']."  ".$myrow['surname']." </option>"


echo 
"</select>"?>


поясню - при выборе нескольких адресатов ($to) мне необходимо составить запрос к скуль, который внесет либо несколько записей в БД, либо одну, но с несколькими адресатами одновременно.

Спасибо за внимание и заранее благодарю за помощь

  Ответить  
 
 автор: Jovidon   (23.09.2013 в 17:07)   письмо автору
 
   для: Ph_mx   (23.09.2013 в 15:59)
 

Добавляй []
<select name="to[]">


В цикле занеси в базу

  Ответить  
 
 автор: Ph_mx   (23.09.2013 в 18:02)   письмо автору
 
   для: Jovidon   (23.09.2013 в 17:07)
 

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

скрипт получателя сообщения
<?php
global $link;
$query "SELECT * FROM usermessages where `to`='$user_id' order by id desc";
$result mysql_query($query$link);
echo 
"<table  border=\"0\">";
echo 
"<tr><td width=\"70\"> от кого </td><td width=\"100\">время</td><td width=\"200\">заголовок
</td><td width=\"100\"></td></tr>"
;
while (
$rows mysql_fetch_array($result))
{
$new "$rows[new]";
if(
$new=='yes')
{
  echo 
"<tr><td><b><a href=\"member.php?id=$rows[from]\">$rows[from]</a></b></td><td><b>$rows[date]</b></td><td><b><a href=\"viewmessage.php?id=$rows[nomer]\">$rows[title]</a></b></td>&nbsp; &nbsp;&nbsp; &nbsp;<td></td></tr>";
}
else
{
  echo 
"<tr><td><a href=\"member.php?id=$rows[from]\">$rows[from]</a></td><td>$rows[date]</td><td><a href=\"viewmessage.php?id=$rows[nomer]\">$rows[title]</a></td><td></td></tr>";
}
}
echo 
"</table>";
?>


и если можно - подскажите пожалуйста как составить запрос к БД, что б в $rows[from] отображались имя и фамилия(from 'users' where id=$rows[from]). ведь по сути нельзя в запросе MySQL указывать массив. благодарю за оказанное внимание и прошу прощения за мою некомпетентность в вопросах масивов и PHP в целом))

  Ответить  
 
 автор: Jovidon   (24.09.2013 в 09:02)   письмо автору
 
   для: Ph_mx   (23.09.2013 в 18:02)
 


<select name="to[]">
    <?php
        
.....
        while(
$myrow mysql_fetch_array($result)){
            echo 
'<option value="'.$myrow['id'].'">'.$myrow['name'].' '.$myrow['surname'].'</option>';
        }
    
?>
</select>


скрипт получателя сообщения
<?
    
for($i=0$i<count($to); $i++){
        
$query "SELECT * 
                  FROM usermessages
                  WHERE `to` = " 
$to[$i] . "
                  ORDER BY id
                  DESC"
;
        
// и выводите сообщение
    
}


>и если можно - подскажите пожалуйста как составить запрос к БД, что б в $rows[from] отображались имя и фамилия(from 'users' where id=$rows[from])

то есть вы хотите $rows[form] отображались имя и фамилия а потом запрос в бд говорите где id = имя и фамилия ?
Вы сами свой вапрос поняли?

  Ответить  
 
 автор: Ph_mx   (24.09.2013 в 13:07)   письмо автору
 
   для: Jovidon   (24.09.2013 в 09:02)
 

>и если можно - подскажите пожалуйста как составить запрос к БД, что б в $rows[from] отображались имя и фамилия(from 'users' where id=$rows[from])

>то есть вы хотите $rows[form] отображались имя и фамилия а потом запрос в бд говорите где id = имя и фамилия ?
Вы сами свой вапрос поняли?
поясню, в $rows[from] у меня отображается id пользователя, а мне нужно использовать этот id для запроса к другой таблице, где данному id соответствуют имя и фамилия пользователя.
я пробовал даже что то типа такого

$id = mysql_query("SELECT id FROM users WHERE id=' "$rows[from] " ' ",$link);
    $from_id = mysql_fetch_array($id, MYSQL_NUM);
    $from_id = $from_id[0];
SELECT * FROM users WHERE id=' "$from_id " ' ",$link

но все равно не выходит

  Ответить  
 
 автор: Jovidon   (24.09.2013 в 14:02)   письмо автору
 
   для: Ph_mx   (24.09.2013 в 13:07)
 

То есть вы выбираете id из таблицы users гдае id = id
и еще раз выбыраете все(*) из того же таблицы users где id = id ???

  Ответить  
 
 автор: Ph_mx   (24.09.2013 в 14:05)   письмо автору
 
   для: Jovidon   (24.09.2013 в 14:02)
 

лоханулся, простите. но даже без последнего запроса, скуль не кушает массив. ругается что синтакс еррор.
вот у меня и возникает вопрос, как избежать отправки "$rows[from]"? по сути наверняка можно составить одновременный запрос к двум таблицам, но каким же тогда должен быть цикл, чтоб выводить этот компот на одной странице циклом?

  Ответить  
 
 автор: Jovidon   (24.09.2013 в 14:08)   письмо автору
 
   для: Ph_mx   (24.09.2013 в 14:05)
 

Покажи скрипт отправки и обработчик

  Ответить  
 
 автор: Ph_mx   (24.09.2013 в 14:20)   письмо автору
 
   для: Jovidon   (24.09.2013 в 14:08)
 

отправка в БД
if(isset($_POST['send_mess'])) { 


$titles = $_POST['titles'];
$titles = preg_replace("/</","&lt;",$titles);
$titles = preg_replace("/>/","&gt;",$titles);
$titles = trim($titles); #убираем пробелы по краям, если они есть
 if(empty($titles)) echo "clean"; #если пустая, выводим Пусто!
 else { #не пустая
  
 }
 
$messagez = $_POST['messagez'];
$messagez = preg_replace("/</","&lt;",$messagez);
$messagez = preg_replace("/>/","&gt;",$messagez);
$messagez = nl2br($messagez);
$messages = $messagez;
if(empty($messages)) echo "clean"; #если пустая, выводим Пусто!
 else { #не пустая
  
 }
 $ida= uniqid('message');
     $ida2= uniqid('$ida');
    $nr= uniqid($ida);//
    
    $date = $_POST['date'];//
    if(empty($date)) echo 'Clean!'; #если пустая, выводим Пусто!
 else { #не пустая
  
 }
$user = $_POST['user'];//
$novo = $_POST['new'];
$to = $_POST['to'];
global $link;

$query = "SELECT * FROM usermessages";
$query = "INSERT INTO usermessages (`nomer`, `to`, `from`, `date`, `title`, `message`, `new`) VALUES ('$nr', '$to', '$user', '$date', '$titles', '$messages', '$novo')";
$result=mysql_query($query, $link) or die(" Error returned if any: ".mysql_error());
}
    ?>

<table><form action="message.php" method="post">
<input type="hidden" name="new" value="yes">
<input type="hidden" name="user" value="<?php print $user_id ;?>">
<input type="hidden" name="date" value="<?php echo $date=date('j.m.Y'); ?>">
<tr><td>кому :</td><td><select data-placeholder="Кому..." class="chosen-select" multiple style="width:300px;" tabindex="4" name="to[]"> 
<?php 
      
global $link;
      
$query "SELECT id, name, surname FROM `users` 
WHERE `id` IN (SELECT IF(`user_invited` = 
$user_id, `user_inviter`, `user_invited`)FROM `users_status` WHERE (`user_inviter` = $user_id OR `user_invited` = $user_id) AND `stat_val_id` = 2)";
 
   
$result=mysql_query($query$link) or die(" Error returned if any: ".mysql_error());
   
   
   while (
$myrow mysql_fetch_array($result)){
           
            
             

echo 
"<option value='".$myrow['id']."'> ".$myrow['name']."  ".$myrow['surname']." </option>"

?>
</select> </td></tr>
<tr><td>заголовок :</td>
<td><input type="text" name="titles" class="input" value="Без темы <?php @print $titles?>"></td><tr>
<tr><td><label for="messagez">тема :</label></td> 
<td><TEXTAREA NAME="messagez" COLS="40" ROWS="8" class="textinput">
</TEXTAREA></td></tr>

<tr><td></td><td><input type="submit" name="send_mess" class="btm"  value="<?php echo $lang_write;?>" ></td></tr>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
  <script src="js/chosen.jquery.js" type="text/javascript"></script>
  <script src="docsupport/prism.js" type="text/javascript" charset="utf-8"></script>
  <script type="text/javascript">
    var config = {
      '.chosen-select'           : {},
      '.chosen-select-deselect'  : {allow_single_deselect:true},
      '.chosen-select-no-single' : {disable_search_threshold:10},
      '.chosen-select-no-results': {no_results_text:'Oops, nothing found!'},
      '.chosen-select-width'     : {width:"95%"}
    }
    for (var selector in config) {
      $(selector).chosen(config[selector]);
    }
  </script></form></table>
    


код, который выводит все входящие
<?php
 
global $link;
    for(
$i=0$i<count($to); $i++){ 
        
$query "SELECT *  
                  FROM usermessages 
                  WHERE `to` = " 
$to[$i] . 
                  ORDER BY id 
                  DESC"

        
    }

$result mysql_query($query$link);
echo 
"<table  border=\"0\">";
echo 
"<tr><td width=\"70\"> от </td><td width=\"100\">дата</td><td width=\"200\">$lang_title
</td><td width=\"100\"></td></tr>"
;
while (
$rows mysql_fetch_array($result))
{
$new "$rows[new]";
if(
$new=='yes')
{
  echo 
"<tr bgcolor=\"#cccccc\"><td><b><a href=\"member.php?id=$rows[from]\">$rows[from]</a></b></td><td><b>$rows[date]</b></td><td><b><a href=\"viewmessage.php?id=$rows[nomer]\">$rows[title]</a></b></td>&nbsp; &nbsp;&nbsp; &nbsp;<td></td></tr>";
}
else
{
  echo 
"<tr><td><a href=\"member.php?id=$rows[from]\">$rows[from]</a></td><td>$rows[date]</td><td><a href=\"viewmessage.php?id=$rows[nomer]\">$rows[title]</a></td><td></td></tr>";
}
}
echo 
"</table>";
?>

  Ответить  
 
 автор: Jovidon   (24.09.2013 в 14:50)   письмо автору
 
   для: Ph_mx   (24.09.2013 в 14:20)
 

Когда вам сказал выводите в цикле имел виду вот так!
<?
    
for($i=0$i<count($to); $i++)
    {
        
$query "SELECT * 
                        FROM usermessages
                        WHERE `to` = " 
$to[$i] . "
                        ORDER BY id
                        DESC"
;
        
$result mysql_query($query) or die("Ощибка при выборке из таблыцы usermessages" mysql_error());
        if(
mysql_num_rows($result) > 0)
        {
            while(
$rows mysql_fetch_array($result))
            {
                if(
$rows['new'] == 'yes')  // выводите что то;
                
else // выводите что то;
            
}
        }
        else echo 
'Данный ползователь не оставил никаких сообщение.';
    }

  Ответить  
 
 автор: confirm   (24.09.2013 в 15:05)   письмо автору
 
   для: Jovidon   (24.09.2013 в 14:50)
 

Вот так как раз и не стоит )

  Ответить  
 
 автор: Ph_mx   (24.09.2013 в 15:30)   письмо автору
 
   для: confirm   (24.09.2013 в 15:05)
 

а как лучше тогда?

  Ответить  
 
 автор: confirm   (24.09.2013 в 15:47)   письмо автору
 
   для: Ph_mx   (24.09.2013 в 15:30)
 

Одним запросом к базе. Если у вас есть входной массив значений ID, то нужно его представить строкой для конструкции IN:
<?
//к примеру на входе имеем POST массив $_POST['id'], который содержит id записей
//обработаем значения этого массива для безопасного запроса
//и сформируем из него строку для IN()
$ids implode(','array_map('intval'$_POST['id']));
//и выбираем все записи принадлежащие этим id
$query "SELECT * FROM table WHERE id IN("$ids ")   
                  ORDER BY id DESC"
;
//то же самое можно делать и для строковых значений
//например, если поля to вашей таблицы, это строки
//то нужно лишь изменить обработку этих значений
//и обрамить их в кавычки
$to '"'implode('","'array_map('mysql_real_escape_string'$_POST['to'])) . '"'
$query "SELECT *  
                  FROM usermessages 
                  WHERE `to` IN(" 
$to ") 
                  ORDER BY id DESC"
;
//а далее поучаем и выводим записи
if($query && mysql_num_rows($query))  {
    while(
$row mysql_fetch_assoc($query))  {
        
//вывод значений
    
}
}

  Ответить  
 
 автор: Jovidon   (24.09.2013 в 15:44)   письмо автору
 
   для: confirm   (24.09.2013 в 15:05)
 

Почему???

  Ответить  
 
 автор: confirm   (24.09.2013 в 15:48)   письмо автору
 
   для: Jovidon   (24.09.2013 в 15:44)
 

Потому, что терроризировать базу запросами вредно. )

  Ответить  
 
 автор: Ph_mx   (24.09.2013 в 16:00)   письмо автору
 
   для: confirm   (24.09.2013 в 15:48)
 

а вот такой вопрос возник, если в базе вместо айдишек сидит array, т е прям так и написано, это нормально?

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

  Ответить  
 
 автор: confirm   (24.09.2013 в 16:09)   письмо автору
 
   для: Ph_mx   (24.09.2013 в 16:00)
 

Это каким образом в базе "сидит" array?

Что означает "проблема отображения имени и фамилии юзеров"?
Если они есть в другой таблице, то эти данные можно связать с таблицей, из которой происходит выборка, по id юзеров, и сделав в этом запросе объединение с таблицей их имен и фамилий, получите все необходимое.

  Ответить  
 
 автор: Ph_mx   (24.09.2013 в 16:18)   письмо автору
 
   для: confirm   (24.09.2013 в 16:09)
 

ну там так и написано array)) вот подскажите пожалуйста, как мне этот запрос составить, прям как для чайника. и, общею, если все заработает - отстану от всех и буду благодарен по гроб жизни)))
парой сообщений выше я скинул исходники. там, например, во входящих сообщениях в поле от кого, пишется $rows[from] который является просто id пользователя, мне нужно использовать этот id для запроса по поводу имени и фамилии к БД users. проблема в том, что чтобы я не пытался делать результата никакого. я так понимаю, что проблема из-за того, что сообщения выводятся циклом

  Ответить  
 
 автор: confirm   (24.09.2013 в 16:55)   письмо автору
 
   для: Ph_mx   (24.09.2013 в 16:18)
 

Где это так написано, в инструкции по пользованию чайником? Не может поле таблицы содержать array, нет в mysql такого типа данных. Массив в поле можно содержать только в виде сериализованном или JSON, что и то, и другое является строкой.

Чего вам надо - получая сообщения пользователей из одной таблицы, получить и имена их авторов из другой таблицы? Ну я же написал как.

Пусть у вас есть две таблицы: mss - сообщения, и usr - пользователи. Для примера вот их дампы:
--
-- Структура таблицы `mss`
--

CREATE TABLE IF NOT EXISTS `mss` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(11) NOT NULL,
  `msg` varchar(500) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=8 ;

--
-- Дамп данных таблицы `mss`
--

INSERT INTO `mss` (`id`, `uid`, `msg`) VALUES
(1, 10, 'Привет!'),
(2, 11, 'Привет!'),
(3, 10, 'Как живешь?'),
(7, 11, 'Хреново.');

--
-- Структура таблицы `usr`
--

CREATE TABLE IF NOT EXISTS `usr` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(40) NOT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=12 ;

--
-- Дамп данных таблицы `usr`
--

INSERT INTO `usr` (`uid`, `name`) VALUES
(10, 'Колян'),
(11, 'Вован');


Импортируйте их. А далее как и говорилось - нужно сделать в запросе вложенный запрос для получения имен пользователей:

<?
$q 
mysql_query("SELECT *, (SELECT name FROM usr WHERE uid=mss.uid) name FROM mss ORDER BY id") or die (mysql_error());

if(
mysql_num_rows($q)) {
   while(
$r mysql_fetch_assoc($q)) echo '<p>'.$r['msg'].' '.$r['name'].'</p>'
}


Выполните этот запрос. Что получаете?

  Ответить  
 
 автор: Ph_mx   (26.09.2013 в 00:07)   письмо автору
 
   для: confirm   (24.09.2013 в 16:55)
 

ну вот подписал под себя и выдает ошибку
$query = "SELECT *, (SELECT name, surname FROM users WHERE id=usermessages.id) name, surname FROM usermessages where `to`='$user_id' order by id desc"; 
$result = mysql_query($query, $link);
echo "<table  border=\"0\">";
echo "<tr><td width=\"70\"> от </td><td width=\"100\">дата</td><td width=\"200\">$lang_title
</td><td width=\"100\"></td></tr>";
while ($rows = mysql_fetch_assoc($result))
{
$new = "$rows[new]";
if($new=='yes')
{
  echo "<tr bgcolor=\"#cccccc\"><td><b><a href=\"member.php?id=$rows[from]\">$rows[name] $rows[name]</a></b></td><td><b>$rows[date]</b></td><td><b><a href=\"viewmessage.php?id=$rows[nomer]\">$rows[title]</a></b></td>&nbsp; &nbsp;&nbsp; &nbsp;<td></td></tr>";
}
else
{
  echo "<tr><td><a href=\"member.php?id=$rows[from]\">$rows[from]</a></td><td>$rows[date]</td><td><a href=\"viewmessage.php?id=$rows[nomer]\">$rows[title]</a></td><td></td></tr>";
}
}
echo "</table>";

  Ответить  
 
 автор: confirm   (26.09.2013 в 01:00)   письмо автору
 
   для: Ph_mx   (26.09.2013 в 00:07)
 

Ну еще бы не выдавало. Я бы мог написать так:
(SELECT name FROM usr WHERE uid=mss.uid) AS name

где выражение AS предписывает вернуть результат в массиве под ключом 'name', в противном случае это значение будет иметь имя ключа равное строке запроса. Просто выражение AS можно опускать.
Что у вас? У вас возвращается два значения, которым вы хотите сопоставить одному имени ключа (а этого быть не может), надеясь, что mysql второму значению присвоит имя ключа 'surname'. И зря, этого не произойдет, mysql будет искать поле surname в таблице основного запроса.
Вам нужно объединить значения вложенного запроса в одно (CONCAT или CONCAT_WS):
"SELECT *, (SELECT CONCAT_WS(' ', name, surname) FROM users WHERE id=usermessages.id) name FROM usermessages WHERE `to`=$user_id ORDER BY id DESC"

Если $user_id это цифра, то обрамлять ее в кавычки не надо, но обязательно обработать перед вставкой в запрос.

  Ответить  
 
 автор: Ph_mx   (26.09.2013 в 02:29)   письмо автору
 
   для: confirm   (26.09.2013 в 01:00)
 

намного понятнее стало, исправил usermessages.id на usermessages.from - только вот все равно не выводит и не понятно почему кавычки пустые (' ', и точно ли в отобразится в $row[name]?

  Ответить  
 
 автор: confirm   (26.09.2013 в 06:07)   письмо автору
 
   для: Ph_mx   (26.09.2013 в 02:29)
 

Да уж, видно как вам понятно. И зачем заменили? usermessages.from будет означит следующее - найти в таблице "usermessages" поле "from". Слово FROM является зарезервированным словом, а так как по этому вопросу много рассказывать, а вы простых вещей не понимаете, то скажу кратко - не используйте такие слова. Тем более что у вас разве есть поле такое?
Если вы точно представили данные таблиц, и именно так нужно выборку сделать, то все должно работать. Если нет, значит ваши исходные данные не верны.

  Ответить  
 
 автор: Ph_mx   (26.09.2013 в 09:05)   письмо автору
 
   для: confirm   (26.09.2013 в 06:07)
 

ну именно в поле from у меня хрянятся id отправителей, которые соответствуют id в таблице users, именно $row[from] отображает цифру id, и именно вместо $row[from] оочень хочу видеть имя с фамилией, а не цифру
ведь usermessages.id никак не соответствует users.id

  Ответить  
 
 автор: confirm   (26.09.2013 в 10:08)   письмо автору
 
   для: Ph_mx   (26.09.2013 в 09:05)
 

Значит так, я вам написал о зарезервированных словах. Такие слова в запросах нужно обрамлять так, как это вы делаете и с полем to
`from`

Учтите, что не со всеми зарезервированными словами прокатит. Так что, если вы не знаете или не понимаете много, то переименуйте это поле, благо в английском языке слов достаточно для выражения "эмоций".

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

  Ответить  
 
 автор: Ph_mx   (26.09.2013 в 16:55)   письмо автору
 
   для: confirm   (26.09.2013 в 10:08)
 

спасибо большое)! все работает. есть только одно НО, два значения заносятся в одну переменную, и получается, что отображаются они слитно

  Ответить  
 
 автор: confirm   (26.09.2013 в 18:30)   письмо автору
 
   для: Ph_mx   (26.09.2013 в 16:55)
 

Вы думаете я обязан догадаться о каких своих значениях и переменной вы говорите? )

  Ответить  
 
 автор: Ph_mx   (26.09.2013 в 19:58)   письмо автору
 
   для: confirm   (26.09.2013 в 18:30)
 

и name и surname, из таблицы users "слипаются" в $rows[name]

  Ответить  
 
 автор: confirm   (26.09.2013 в 20:21)   письмо автору
 
   для: Ph_mx   (26.09.2013 в 19:58)
 

А вы выше внимательно читали? Я же вам объяснял, что вы написали ахинею, думая что mysql вам автоматом поименует ключи как вы задумали, и как выход написал что сделать - ОБЪЕДИНИТЬ одной из двух функций, что и делается в запросе

"SELECT *, (SELECT CONCAT_WS(' ', name, surname) FROM users WHERE id=usermessages.id) name FROM usermessages WHERE `to`=$user_id ORDER BY id DESC"

Поэтому и объединяется. Эти два значения name и surname принадлежать разным пользователям что ли, почему они раздельно должны быть?

Открывайте учебники и изучать!

  Ответить  
 
 автор: Ph_mx   (26.09.2013 в 23:28)   письмо автору
 
   для: confirm   (26.09.2013 в 20:21)
 

мне всего лишь нужно запустить между ними пробел

а учебники читал, как раз софттаймовские

  Ответить  
 
 автор: confirm   (27.09.2013 в 00:06)   письмо автору
 
   для: Ph_mx   (26.09.2013 в 23:28)
 

CONCAT_WS(' ', name, surname) и соединяет через пробел (первый аргумент функции).
Этот же эффект будет, если применить CONCAT, в этом случае должно быть так:
CONCAT(name, ' ', surname)

  Ответить  
 
 автор: Ph_mx   (27.09.2013 в 01:32)   письмо автору
 
   для: confirm   (27.09.2013 в 00:06)
 

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

  Ответить  
 
 автор: Ph_mx   (24.09.2013 в 16:00)   письмо автору
 
   для: confirm   (24.09.2013 в 15:48)
 

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

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

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