|
|
|
|
|
для: confirm
(23.08.2013 в 12:46)
| | ясно, спасибо что все растолковали, если что обращусь к вам | |
|
|
|
|
|
|
|
для: Habl
(23.08.2013 в 12:40)
| |
<?
$q = mysql_query(...);
if(mysql_num_rows($q)) {
while($row = mysql_fetch_assoc($q)) {
//гарантированный вывод всех рядов полученных запросом
}
}
|
Что еще объяснить, если вы до цикла дважды сместили указатель? Функция mysql_fetch_assoc, как и другие функции получения ряда автоматически смещают указатель ресурса, то есть действие наподобие foreach(). Это и есть причина. | |
|
|
|
|
|
|
|
для: confirm
(23.08.2013 в 12:37)
| | Хорошо, понял что вот из-за этого у меня не выводилась одна строка из базы
if (mysql_fetch_row($result) > 0) {
}
Что то еще мешает выводу еще одной строки
Думаю можно заменить этим mysql_ num_ rows | |
|
|
|
|
|
|
|
для: Habl
(23.08.2013 в 12:28)
| | У вас и до этого есть смещение указателя, сразу после второго запроса у вас - $myrow = mysql_fetch_array($result);, 100% пустое действие, так как далее до второго бесполезного if (mysql_fetch_row($result) > 0) вы не используете $myrow.
Число строк в ресурсе возвращенном запросом получает функция http://www.php.net/manual/ru/function.mysql-num-rows.php
$myrow[text] - это не ошибка, но писать так не стоит, и об этом предупреждают разработчики. Просто в данном случае РНР выполнит бесполезное действие - будет искать такую константу, и не найдя ее, поймет, что вы ошиблись, а значит это строковое значение, то есть $myrow['text']. Это не страшно, лишь впустую потраченное время, но если разработчик зарезервирует это имя, тогда труба - вы не получите ожидаемого. | |
|
|
|
|
|
|
|
для: confirm
(23.08.2013 в 11:49)
| | Хорошо, понял что вот из-за этого у меня не выводилась одна строка из базы
if (mysql_fetch_row($result) > 0) {
}
Что то еще мешает выводу еще одной строки | |
|
|
|
|
|
|
|
для: Habl
(23.08.2013 в 12:13)
| | Вы читали внимательно? Видимо нет, ибо все эти три функции возвращают ряд результата запроса в виде массива, а ни как не число строк который вернул запрос. Кроме этого mysql_fetch_array возвращает либо ассоциативный массив, либо численный массив или оба вместе. Вы используя эту функцию без второго аргумента получаете два одинаковых набора данных, один представленный ассоциативным массивом, другой индексным. А работаете вы в дальнейшем с ассоциативными данными. Спрашивается, а зачем вы тянете лишнее?
Вы своим условием фактически проверяете if(Array) - то есть пустой массив или нет. Дугой информации любая из этих функций вам не вернет, так как, ни mysql_fetch_row ни две другие не возвращают количество строк в результата запроса. А есть ли такая функция? Если прочесть анонсы функций - http://www.php.net/manual/ru/ref.mysql.php, можно ли среди них найти то, что нужно? | |
|
|
|
|
|
|
|
для: confirm
(23.08.2013 в 11:49)
| | mysql_fetch_row проверяю есть ли в базе строки, если нет то в каталоге на сайте вывожу сообщение, что товаров в данной категории нет | |
|
|
|
|
|
|
|
|
для: confirm
(23.08.2013 в 11:39)
| | оооу это ошибочка!
mysql_fetch_row там было, ошибся, но mysql_fetch_row тоже не работает... | |
|
|
|
|
|
|
|
для: Habl
(23.08.2013 в 11:24)
| | Мне неизвестно что вам надо вывести, но ваш единственный запрос возвращает также единственный ресурс, в котором вы смещаете указатель до цикла дважды. Думайте, ваши данные, вам виднее. Например, это что вы хотите узнать mysql_fetch_array($result) > 0 ? Можете объяснить?
http://www.php.net/manual/ru/security.database.sql-injection.php | |
|
|
|
|