Помогите с условием проверки строки из БД?

NetSkyer

Новичок
Есть код:

PHP:
<?php
	// берём данные из базы
	$result = mysql_query("SELECT * FROM jos_autostand_comm WHERE id = $id ORDER BY idcomm");
	// публикуем результат
	while ($row = mysql_fetch_array($result))	{
		echo 	"<div class='acomments_row'>" .
				"<span class='ac_username'>" . $row['user'] . "</span>" . 
				"<span class='ac_date'>" . $row['datetime'] . "</span>" . 
				"<span style='display:block; clear:both;'></span>" . 
				"<span class='ac_text'>" . $row['comment'] . "</span>" . 
				"</div><span style='display:block; clear:both;'></span>";
	}
?>
Я не могу найти решение чтоб производилась следующая проверка: если нет строк с полем 'id' то echo "Нет записей", иначе выполнить то, что написано выше.

Подскажите пожалуйста как можно сделать, какие функции здесь нужно использовать?

Спасибо.
 

NetSkyer

Новичок
Решено. Возможно кому-нибудь пригодится.
PHP:
<?php 
		// берём данные из базы
		$result = mysql_query("SELECT * FROM jos_autostand_comm WHERE id = $id ORDER BY idcomm");
		// посчитал выбранные строки
		$rowscount = mysql_num_rows($result);
		if ($rowscount != 0) {
			// публикуем результат если есть строки
			while ($row = mysql_fetch_array($result)) {
				echo 	"<div class='acomments_row'>" .
						"<span class='ac_username'>" . $row['user'] . "</span>" . 
						"<span class='ac_date'>" . $row['datetime'] . "</span>" . 
						"<span style='display:block; clear:both;'></span>" . 
						"<span class='ac_text'>" . $row['comment'] . "</span>" . 
						"</div><span style='display:block; clear:both;'></span>";
			}
		} else {
			// если нет строк
			echo "Пусто!";
		}
?>
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
NetSkyer
Спасибо, но это вряд ли кому пригодится, с учетом того, что ты забыл проескейпить данные в запросе.
 

NetSkyer

Новичок
c0dex
Я так понимаю, имеется ввиду - mysql_escape_string?
А что в этом случае экранировать, если в запросе есть только $id который равен целому числу?
И я думал что экранировать необходимо только UPDATE или INSERT.
Ошибался?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
NetSkyer
Я не знаю как у тебя получаются и обрабатываются данные, если целое число, то делаем

PHP:
$sql = ' ... col = ' . (int) $id;
 

NetSkyer

Новичок
Данные с таким запросом (как выше) выводятся корректно. А добавляются в базу вот так:

PHP:
$ins_id		 	= mysql_real_escape_string($id);
$ins_user	 	= mysql_real_escape_string($username);
$ins_email		= mysql_real_escape_string($usermail);
$ins_datetime	= mysql_real_escape_string($datetime);
$ins_comment	= htmlspecialchars($usertext, ENT_QUOTES, "UTF-8");

mysql_query("INSERT INTO jos_autostand_comm (id, user, email, datetime, comment) VALUES ('$ins_id', '$ins_user', '$ins_email', '$ins_datetime', '$ins_comment')");
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
MonoLife
Нужно всегда проверять данные на соответствие типу, если ты используешь их в запросе простого драйвера mysql
 
Сверху