mysql_query('SELECT * FROM messages WHERE login="$user" AND status="2"');
не работает ... где то я накосячил...
Спустя 6 минут, 21 секунда (29.03.2011 - 01:39) Nikitian написал(а):
Это должно вывести всё, что соответствует вашему запросу.
$result=mysql_query('SELECT * FROM messages WHERE login="'.mysql_real_escape_string($user).'" AND status="2"');
$arr=array();
if(is_resource($result) && mysql_num_rows($result)>0){
while($arr[]=mysql_fetch_assoc($result)){}
}
print_r($arr);
Спустя 4 минуты, 35 секунд (29.03.2011 - 01:43) shmali написал(а):
Спасибо я попробую, если не затруднит подскажите что в моей формулировке не так ,чтоб я понял в чем дело.
Спустя 2 минуты, 38 секунд (29.03.2011 - 01:46) Nikitian написал(а):
В ней не видно как вы получаете данные. Есть подозрение, что там ошибка. Нет экранирования переменной, а что в ней так же неизвестно.
Так же подозреваю, что ошибка может быть в логике sql-запроса, но это не сказать точно, не зная что вам надо и что в базе есть )
Так же подозреваю, что ошибка может быть в логике sql-запроса, но это не сказать точно, не зная что вам надо и что в базе есть )
Спустя 4 минуты, 51 секунда (29.03.2011 - 01:51) shmali написал(а):
в базе таблица "messages" С полями "login","status","text","from","date"
Вот весь код.
Вот весь код.
$user = $_SESSION['login'];
$result=mysql_query('SELECT * FROM messages WHERE login="$user" AND status="1"');
{while($myrow=mysql_fetch_array($result))
printf('
<table class="table">
<tr>
<td><br>от: %s</td>
</tr>
<tr>
<td><br>Дата: %s</td>
</tr>
<tr>
<td><br>Текст:<br> %s</td>
</tr>
</table>
',$myrow['from'],$myrow['date'],$myrow['text']);
}
Спустя 17 минут, 50 секунд (29.03.2011 - 02:09) waldicom написал(а):
надо или конкатенирвать строку или изначально оборачивать запрос в двойные кавычки.
Т.е. типа
или
И конечно не забывать экранировать переменные
Т.е. типа
$result=mysql_query("SELECT * FROM messages WHERE `login`='$user' AND `status`='1'");
или
$result=mysql_query('SELECT * FROM messages WHERE `login`="' . $user . '" AND `status`="1"');
И конечно не забывать экранировать переменные
Спустя 18 минут, 21 секунда (29.03.2011 - 02:27) shmali написал(а):
не работает ни так ни этак ....
Спустя 4 минуты, 8 секунд (29.03.2011 - 02:31) Nikitian написал(а):
В чём заключается неработоспособность? Ошибку выдаёт? Какую? Что-то ещё непредвиденное? что? В шарады играть будем или проблему решать?
Подозреваю, что запрос неверно составлен и ничего не возвращает. Но это этого надо знать какие данные в таблице и что необходимо получить.
Подозреваю, что запрос неверно составлен и ничего не возвращает. Но это этого надо знать какие данные в таблице и что необходимо получить.
Спустя 8 минут, 26 секунд (29.03.2011 - 02:40) shmali написал(а):
В первом случае Не выводит ничего но ошибки нету.
Во втором случае выдает ошибку.
вот таблица:
login: Имя пользователя (например Вася)
from: от кого(Например от Феди)
status:1 или 2 (1-Новое сообщение , 2- Старое Сообщение. Изначально 1 потом inc - но это не важно)
date:Дата написания сообщения(12.10.2001)
text:Текст сообщения.
Запрос должен выбрать из таблицы сообщения которые относятся к пользователю "Вася" со статусом 1 то есть новые.
Имя пользователя берется из сессии . Вроде все расписал детально .
Во втором случае выдает ошибку.
вот таблица:
login: Имя пользователя (например Вася)
from: от кого(Например от Феди)
status:1 или 2 (1-Новое сообщение , 2- Старое Сообщение. Изначально 1 потом inc - но это не важно)
date:Дата написания сообщения(12.10.2001)
text:Текст сообщения.
Запрос должен выбрать из таблицы сообщения которые относятся к пользователю "Вася" со статусом 1 то есть новые.
Имя пользователя берется из сессии . Вроде все расписал детально .
Спустя 2 минуты, 39 секунд (29.03.2011 - 02:42) Invis1ble написал(а):
shmali
Цитата |
Во втором случае выдает ошибку |
какую? Из тебя слова нужно клещами вытаскивать? )
Спустя 1 минута, 2 секунды (29.03.2011 - 02:43) Invis1ble написал(а):
Вобще-то, как я вижу, тут Попов detected =)
Спустя 1 минута, 40 секунд (29.03.2011 - 02:45) Invis1ble написал(а):
Цитата |
{while($myrow=mysql_fetch_array($result)) printf(' <table class="table"> <tr> <td><br>от: %s</td> </tr> <tr> <td><br>Дата: %s</td> </tr> <tr> <td><br>Текст:<br> %s</td> </tr> </table> ',$myrow['from'],$myrow['date'],$myrow['text']); } |
А что это за бред с фигурными скобками?
Спустя 14 секунд (29.03.2011 - 02:45) shmali написал(а):
Сорри это моя вина я там промазал и 1 символ упустил . Нету ошибки ни в 1 ни во втором .
просто ничего не выводит и не понятно почему вроде все правильно .....
просто ничего не выводит и не понятно почему вроде все правильно .....
Спустя 1 минута, 33 секунды (29.03.2011 - 02:47) shmali написал(а):
Цитата (Invis1ble @ 28.03.2011 - 23:45) | ||
А что это за бред с фигурными скобками? |
Этого нету там . Я просто пробовал if (); и на момет написания сообщения выделил больше чем надо еще раз сорри
Спустя 32 секунды (29.03.2011 - 02:47) Invis1ble написал(а):
добавь or die(mysql_error()) после mysql_query()
Спустя 8 минут, 11 секунд (29.03.2011 - 02:56) shmali написал(а):
Без изменений..
я думаю что проблема в запросе ,если сделать вот так:
выводит все сообщения со статусом 1, теперь надо выводить все со статусом 1 и с логином $user.
я думаю что проблема в запросе ,если сделать вот так:
mysql_qery('SELECT * FROM messages WHERE status="1"');
выводит все сообщения со статусом 1, теперь надо выводить все со статусом 1 и с логином $user.
Спустя 7 минут, 53 секунды (29.03.2011 - 03:03) Invis1ble написал(а):
А я думаю, что ты не следуешь советам, которые тебе дают.
Напиши, что выдаст этот код.
$query =
"SELECT *
FROM `messages`
WHERE `login` = '" . mysql_real_escape_string($user) . "' AND `status` = '2'";
$res = mysql_query($query) or die(mysql_error());
$data = array();
if (mysql_num_rows($res) > 0)
while ($data[] = mysql_fetch_assoc($res)) {}
var_dump($data);
Напиши, что выдаст этот код.
Спустя 4 минуты, 50 секунд (29.03.2011 - 03:08) shmali написал(а):
от:
Дата:
Текст:
от:
Дата:
Текст:
array(3) { [0]=> array(6) { ["id"]=> string(1) "6" ["user"]=> string(6) "shmali" ["status"]=> string(1) "2" ["text"]=> string(19) "Вот второе" ["from"]=> string(8) "shmaliok" ["date"]=> string(10) "2011-03-29" } [1]=> array(6) { ["id"]=> string(1) "7" ["user"]=> string(6) "shmali" ["status"]=> string(1) "2" ["text"]=> string(19) "Вот третье" ["from"]=> string(8) "shmaliok" ["date"]=> string(10) "2011-03-29" } [2]=> bool(false) }
Дата:
Текст:
от:
Дата:
Текст:
array(3) { [0]=> array(6) { ["id"]=> string(1) "6" ["user"]=> string(6) "shmali" ["status"]=> string(1) "2" ["text"]=> string(19) "Вот второе" ["from"]=> string(8) "shmaliok" ["date"]=> string(10) "2011-03-29" } [1]=> array(6) { ["id"]=> string(1) "7" ["user"]=> string(6) "shmali" ["status"]=> string(1) "2" ["text"]=> string(19) "Вот третье" ["from"]=> string(8) "shmaliok" ["date"]=> string(10) "2011-03-29" } [2]=> bool(false) }
Спустя 7 минут (29.03.2011 - 03:15) Invis1ble написал(а):
$query =
"SELECT *
FROM `messages`
WHERE `login` = '" . mysql_real_escape_string($user) . "' AND `status` = '2'";
$res = mysql_query($query) or die(mysql_error());
$data = array();
if (mysql_num_rows($res) > 0)
while ($row = mysql_fetch_assoc($res))
$data[] = $row;
все данные в $data.
Спустя 1 минута, 38 секунд (29.03.2011 - 03:17) Invis1ble написал(а):
Насколько я понял, проблема была в двойных кавычках в запросе
Спустя 2 минуты, 36 секунд (29.03.2011 - 03:19) shmali написал(а):
$user = $_SESSION['login'];
$query = "SELECT * FROM `messages` WHERE `login` = '" . mysql_real_escape_string($user) . "' AND `status` = '2'";
$res = mysql_query($query) or die(mysql_error());
$data = array();
if (mysql_num_rows($res) > 0)
while ($data[] = mysql_fetch_assoc($res))
{printf('
<table class="table">
<tr>
<td><br>от: %s</td>
</tr>
<tr>
<td><br>Дата: %s</td>
</tr>
<tr>
<td><br>Текст:<br> %s</td>
</tr>
</table>
',$data['from'],$data['date'],$data['text']);
}
То что они в $data я понял , почему они не выводятся как надо ? может я просто не вижу где я ошибся ...
Спустя 5 минут, 13 секунд (29.03.2011 - 03:25) Invis1ble написал(а):
shmali
Ты вобще видишь, чем отличается этот код
от этого
??
Сделай так:
Ты вобще видишь, чем отличается этот код
if (mysql_num_rows($res) > 0)
while ($data[] = mysql_fetch_assoc($res)) {}
от этого
if (mysql_num_rows($res) > 0)
while ($row = mysql_fetch_assoc($res))
$data[] = $row;
??
Сделай так:
if (mysql_num_rows($res) > 0)
while ($row = mysql_fetch_assoc($res))
printf('
<table class="table">
<tr>
<td><br>от: %s</td>
</tr>
<tr>
<td><br>Дата: %s</td>
</tr>
<tr>
<td><br>Текст:<br> %s</td>
</tr>
</table>
',$row['from'], $row['date'], $row['text']);
Спустя 1 минута, 43 секунды (29.03.2011 - 03:26) Invis1ble написал(а):
А вобще, советую тебе пройти эти курсы, потому как ты основных вещей толком не понимаешь и пытаешься прыгнуть выше головы.
Спустя 4 минуты, 55 секунд (29.03.2011 - 03:31) shmali написал(а):
Спасибо большое , все работает и 1000 извинений за нервы и время )) так оно по началу у все было я думаю. И про Попова правда, я по его курсам начал.
Из того что я на форуме прочел ,тут все его недолюбливают )))
Может когда стану специалистом, тоже буду его недолюбливать )))
Пока кроме его курсов мало чего успел выучить.
Еще раз всем спасибо!!!
Из того что я на форуме прочел ,тут все его недолюбливают )))
Может когда стану специалистом, тоже буду его недолюбливать )))
Пока кроме его курсов мало чего успел выучить.
Еще раз всем спасибо!!!