Появилась проблемка с использованием цикла while():
Не выводится первое значение с БД. Т.е., допустим в базе у меня 10 строк, выводятся 2, 3, 4...10, первой стоки нету. Что может быть ?
<?php
$result = mysql_query("SELECT id, title, description, date, author FROM data", $db);
$row = mysql_fetch_assoc($result);
if ($row > 0) {
while ($row = mysql_fetch_assoc($result)) {
printf ("<div class='post'>
<h2><strong><a href='view_post.php?id=%s'>%s</a></strong></h2> <br>
<p>%s</p>
<br><p>Постинг: %s | Автор: %s</p> </div>
", $row['id'], $row['title'], $row['description'], $row['date'], $row['author']
);
}
}
else { echo "<strong>Заметок, пока, нет!</strong>";}
?>
Спустя 1 минута, 50 секунд (4.01.2011 - 00:54) inpost написал(а):
Ты шутишь? А не тебе я уже 3 раза говорил пройти курс реабилитации после Попова и исправить код с printf на echo ???
Спустя 8 минут, 49 секунд (4.01.2011 - 01:03) Invis1ble написал(а):
1. Попов детектед =)
2. Двойной fetch_assoc
inpost
2. Двойной fetch_assoc
inpost
Цитата |
пройти курс реабилитации после Попова |
а зачем? вдруг и так помогут =))
Спустя 2 минуты, 45 секунд (4.01.2011 - 01:06) alex12060 написал(а):
$row = mysql_fetch_assoc($result);
if ($row > 0) {
//
Это как понимать?
Наверное функцию спутал)
Спустя 1 минута, 2 секунды (4.01.2011 - 01:07) inpost написал(а):
RCuPeR
А тут тебе не показывали как выводить через while() ?
http://phpforum.su/index.php?showtopic=35750&st=15
Invis1ble
Я носом его ткнул уже 3 раза (в 3х темах), он каждый раз говорит: "да-да", и через день снова Поповщина...
А тут тебе не показывали как выводить через while() ?
http://phpforum.su/index.php?showtopic=35750&st=15
Invis1ble
Я носом его ткнул уже 3 раза (в 3х темах), он каждый раз говорит: "да-да", и через день снова Поповщина...
Спустя 1 минута, 40 секунд (4.01.2011 - 01:08) inpost написал(а):
alex12060
верно подмечено, там должно считать количество строк в БД, а не перещёлкивать =)
верно подмечено, там должно считать количество строк в БД, а не перещёлкивать =)
Спустя 1 минута, 23 секунды (4.01.2011 - 01:10) alex12060 написал(а):
Я в общем скажу)
Далее каким то макаром проверяешь :D
И далее продолжаешь вывод, только 1 запись то уже была сделана в переменную, поэтому, запись начинается со 2 по N
Вот так вот)
$row = mysql_fetch_assoc($result);<- Сюда ты пишешь 1 запись из БД
Далее каким то макаром проверяешь :D
И далее продолжаешь вывод, только 1 запись то уже была сделана в переменную, поэтому, запись начинается со 2 по N
Вот так вот)
Спустя 3 минуты, 14 секунд (4.01.2011 - 01:13) RCuPeR написал(а):
1. Курс прошел, хватит уже надоедать этим Поповым. Использую +++_assoc($result) вместо +++_array($result) + применяю цикл while() вместо do while().
2. printf + маркеры мне, не знаю как кому, очень удобны. Всё с ними работает, вот только тут чёт...Даже не знаю...
3. Я так понял, лишний mysql_fetch_assoc($result) ?
2. printf + маркеры мне, не знаю как кому, очень удобны. Всё с ними работает, вот только тут чёт...Даже не знаю...
3. Я так понял, лишний mysql_fetch_assoc($result) ?
Спустя 5 секунд (4.01.2011 - 01:13) inpost написал(а):
RCuPeR
Есть ли хоть чуточку уважения тем, кто тебе помогает? Глянь сюда одним глазком:
Есть ли хоть чуточку уважения тем, кто тебе помогает? Глянь сюда одним глазком:
![user posted image](http://my.jetscreenshot.com/demo/20110103-250e-44kb.jpg)
Спустя 2 минуты, 6 секунд (4.01.2011 - 01:15) alex12060 написал(а):
RCuPeR
<?php
$result = mysql_query("SELECT id, title, description, date, author FROM data", $db);
$num = mysql_num_rows($result);
if ($num > 0) {
while ($row = mysql_fetch_assoc($result)) {
printf ("<div class='post'>
<h2><strong><a href='view_post.php?id=%s'>%s</a></strong></h2> <br>
<p>%s</p>
<br><p>Постинг: %s | Автор: %s</p> </div>
", $row['id'], $row['title'], $row['description'], $row['date'], $row['author']
);
}
}
else { echo "<strong>Заметок, пока, нет!</strong>";}
?>
Спустя 5 минут, 59 секунд (4.01.2011 - 01:21) RCuPeR написал(а):
inpost, повторяю в сотый раз: курс реабилитации прошёл. Тыкни носом, где у меня ошибки (анти Поповщина), тогда будет приятней говорить.
alex12060, не помогло =(
Спустя 37 секунд (4.01.2011 - 01:22) inpost написал(а):
RCuPeR
Был рождён мальчик, жил поживал, в Х лет решил заняться программированием. Какой-то шарлатан научил писать через printf, одновременно с этим в этот же период встретились ему профессиональные программисты и рассказали, что надо писать через echo (print), а так же многое другое, а так же дали ссылку на: http://irbis-team.com/15/10/5
Маленький мальчик посчитал, что "правильно и легче" писать так, как ему рассказал шарлотан, а не как учат профессионалы, и конкретные доводы проходят мимо ушей.
Вообщем, я посылаю на тебя порчу, теперь любой твой код будет корявым
Был рождён мальчик, жил поживал, в Х лет решил заняться программированием. Какой-то шарлатан научил писать через printf, одновременно с этим в этот же период встретились ему профессиональные программисты и рассказали, что надо писать через echo (print), а так же многое другое, а так же дали ссылку на: http://irbis-team.com/15/10/5
Маленький мальчик посчитал, что "правильно и легче" писать так, как ему рассказал шарлотан, а не как учат профессионалы, и конкретные доводы проходят мимо ушей.
Вообщем, я посылаю на тебя порчу, теперь любой твой код будет корявым
![wacko.gif](http://phpforum.ru/html/emoticons/wacko.gif)
Спустя 37 секунд (4.01.2011 - 01:22) sergeiss написал(а):
Цитата (RCuPeR @ 4.01.2011 - 02:13) |
1. Курс прошел, хватит уже надоедать этим Поповым. |
Я тоже чего-то не понял... Это ТЕБЕ ГОВОРЯТ, что ХВАТИТ НАДОЕДАТЬ ПОПОВЫМ!!! Ты думаешь, просто так было написано "Попов детектед"? Нет, не просто так. Потому что кривой поповский код тебе же и мешает в первую очередь. Ты прошел его курс, но мало что понял, судя по коду и задаваемым вопросам.
И я присоединяюсь к настойчивому пожеланию проявлять хоть немного уважения к тем, кто тебе же и помогает.
Спустя 28 секунд (4.01.2011 - 01:23) Invis1ble написал(а):
RCuPeR
printf используется для форматирования результатов, а не простого вывода.... хотя можно и микроскопом гвозди забивать =)
printf используется для форматирования результатов, а не простого вывода.... хотя можно и микроскопом гвозди забивать =)
Спустя 1 минута, 25 секунд (4.01.2011 - 01:24) sergeiss написал(а):
Цитата (RCuPeR @ 4.01.2011 - 02:21) |
Тыкни носом, где у меня ошибки (анти Поповщина), тогда будет приятней говорить. |
Тыкаю вместо инпоста: использование mysql_fetch_assoc лишний раз, еще до начала цикла чтения - это верный признак поповщины (и не единственный).
printf можно тут использовать... Хотя и не имеет особого смысла
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 1 минута, 52 секунды (4.01.2011 - 01:26) alex12060 написал(а):
<?php
$result = mysql_query("SELECT id, title, description, date, author FROM data", $db);
$num = mysql_num_rows($result);
if ($num > 0) {
while ($row = mysql_fetch_assoc($result)) {
echo "<div class='post'>
<h2><strong><a href='view_post.php?id=".$row['id']."'>".$row['title']."</a></strong></h2> <br>
<p>".$row['description']."</p>
<br><p>Постинг: ".$row['date']." | Автор: ".$row['author']."</p> </div>
";
}
}
else { echo "<strong>Заметок, пока, нет!</strong>";}
?>
Спустя 49 секунд (4.01.2011 - 01:27) alex12060 написал(а):
Если и это не поможет, то что то с базой)
Спустя 57 секунд (4.01.2011 - 01:28) inpost написал(а):
RCuPeR
1. Обращение к БД не обрамляешь `` - этими кавычками, что есть рекомендательно, но не обязательно (это я расписал в своём уроке). -собственно из-за этого может и не проходить правильно запрос, если имена ячеек: desc,date,time,link
2. printf - процес медленный в отличии от обычного вывода данных. printf, если не ошибаюсь, использовали для любого вывода программисты C++, или на каком-то другом языке (не помню, но Котеров про это писал), поэтому они перешли с того языка и тут так же пишут. Ты же учишься с нуля и должен понимать, как писать для эфективной работы, иначе смотря на производительность твоего кода ты делаешь счастливым Рубистов и Пёрлщиков (вечный холивар, когда они поливают грязью ПХП в связи с его медлительностью).
3. Используешь такой вид HTML: class='post' вместо class="post", хотя и не будут w3c стандарт ругаться на одинарную кавычку, но правильнее писать именно через двойную.
4. Надо $num = mysql_num_rows($result); как выше написал Алекс, что по своему роду и подразумевается.
1. Обращение к БД не обрамляешь `` - этими кавычками, что есть рекомендательно, но не обязательно (это я расписал в своём уроке). -собственно из-за этого может и не проходить правильно запрос, если имена ячеек: desc,date,time,link
2. printf - процес медленный в отличии от обычного вывода данных. printf, если не ошибаюсь, использовали для любого вывода программисты C++, или на каком-то другом языке (не помню, но Котеров про это писал), поэтому они перешли с того языка и тут так же пишут. Ты же учишься с нуля и должен понимать, как писать для эфективной работы, иначе смотря на производительность твоего кода ты делаешь счастливым Рубистов и Пёрлщиков (вечный холивар, когда они поливают грязью ПХП в связи с его медлительностью).
3. Используешь такой вид HTML: class='post' вместо class="post", хотя и не будут w3c стандарт ругаться на одинарную кавычку, но правильнее писать именно через двойную.
4. Надо $num = mysql_num_rows($result); как выше написал Алекс, что по своему роду и подразумевается.
Спустя 3 минуты, 13 секунд (4.01.2011 - 01:31) sergeiss написал(а):
И еще. Вот эта часть кода в таком виде не имеет глубокого смысла :)
Потому что если количество строк в выборке равно нулю, то цикл while просто не будет выполнен ни разу.
Поэтому достаточно сделать сравнение типа такого
и не важно, до цикла или после него. А перед циклом никаких ИФов не ставь.
PS. Сравнение "== 0" поторопился, не написал сразу. Очепяточка получилась... Исправил.
if ($num > 0) {
while ($row = mysql_fetch_assoc($result)) {
...
Потому что если количество строк в выборке равно нулю, то цикл while просто не будет выполнен ни разу.
Поэтому достаточно сделать сравнение типа такого
if( mysql_num_rows($result) == 0 )
echo "<strong>Заметок, пока, нет!</strong>";
и не важно, до цикла или после него. А перед циклом никаких ИФов не ставь.
PS. Сравнение "== 0" поторопился, не написал сразу. Очепяточка получилась... Исправил.
Спустя 2 минуты, 20 секунд (4.01.2011 - 01:33) inpost написал(а):
sergeiss
Вот я тоже такое часто видел, а у меня notice выскакивает, когда таблица полностью пустая. Поэтому я и стал проверку делать.
Да и понятнее через if-else (мне).
Вот я тоже такое часто видел, а у меня notice выскакивает, когда таблица полностью пустая. Поэтому я и стал проверку делать.
Да и понятнее через if-else (мне).
Спустя 26 секунд (4.01.2011 - 01:34) alex12060 написал(а):
if( mysql_num_rows($result) )
echo "<strong>Заметок, пока, нет!</strong>";
Или я дурак, или ты не то написал)
Но если функция вернет число (вместе с тру), то он напишет: Заметок, пока, нет!
Спустя 1 минута, 47 секунд (4.01.2011 - 01:36) sergeiss написал(а):
alex12060 ну, блин, конечно :) Поторопился мальца
if( mysql_num_rows($result) == 0 )
Спустя 3 минуты, 12 секунд (4.01.2011 - 01:39) RCuPeR написал(а):
alex12060, ой, не заметил mysql_num_rows($result)/ Большое тебе спасибо !
Фух... Я Вам говорю, что я прошёл курс реабилитации, и все ошибки которые были описаны там не использую в дальнейшем! Меня научили использовать printf в подобных случаях, я этим пользуюсь, в заметках от ирбис-тим о этой функции сказано только, что она используется для форматирования данных, я не думаю, что это повод отказываться от неё в подобных случаях.
inpost, объяснюсь:
1. Не использую `` по банальной причине, не могу найти эти символы на клаве (позор).
2. Ну тут ладно, буду смотреть и в дальнейшем применять echo. Но ты заметь, что в курсе реабилитации от этом толком ничего не сказано, т.е. у меня не было повода НЕ использовать ptintf.
3. Хм... Если я напишу class="post" вместо class='post', то php мне выдаст множество ошибок, так делать нельзя (или я что-то делаю не так) !
4. Ну это уже моя ошибка, из-за которой я создал эту тему, Попов к этой ошибке не имеет никакого отношения.
Фух... Я Вам говорю, что я прошёл курс реабилитации, и все ошибки которые были описаны там не использую в дальнейшем! Меня научили использовать printf в подобных случаях, я этим пользуюсь, в заметках от ирбис-тим о этой функции сказано только, что она используется для форматирования данных, я не думаю, что это повод отказываться от неё в подобных случаях.
inpost, объяснюсь:
1. Не использую `` по банальной причине, не могу найти эти символы на клаве (позор).
2. Ну тут ладно, буду смотреть и в дальнейшем применять echo. Но ты заметь, что в курсе реабилитации от этом толком ничего не сказано, т.е. у меня не было повода НЕ использовать ptintf.
3. Хм... Если я напишу class="post" вместо class='post', то php мне выдаст множество ошибок, так делать нельзя (или я что-то делаю не так) !
4. Ну это уже моя ошибка, из-за которой я создал эту тему, Попов к этой ошибке не имеет никакого отношения.
Спустя 3 минуты, 18 секунд (4.01.2011 - 01:42) alex12060 написал(а):
Вообще я бы так сделал:
<?php
$sql = mysql_query("SELECT * FROM `data`") or die(mysql_error());
if (mysql_num_rows($sql) > 0) {
while($row = mysql_fetch_array($sql, MYSQL_NUM)) {
echo '<div class="post">
<h2><strong><a href="view_post.php?id='.$row[0].'">'.$row[1].'</a></strong></h2> <br />
<p>'.$row[2].'</p>
<br /><p>Постинг: '.$row[3].' | Автор: '.$row[4].'</p> </div>'."\n\r";
}
} else {
echo '<strong>Сообщений не поступало.</strong>';
}
?>
Спустя 1 минута, 44 секунды (4.01.2011 - 01:44) inpost написал(а):
RCuPeR
1. Ё
2. Сказано по той ссылке, которую я написал ранее, надо зацитировать или скрин-шот сделать, или сам найдешь? А так же сказано в моём мини-faq (моя подпись)
3. echo '<div class="post">'; - местами меняешь кавычки.
4. Имеешь отношение именно ты, так как у меня до сих пор в голове его голос рассказывает, что обозначает: $myrow = mysql_fetch_array($result);
1. Ё
2. Сказано по той ссылке, которую я написал ранее, надо зацитировать или скрин-шот сделать, или сам найдешь? А так же сказано в моём мини-faq (моя подпись)
3. echo '<div class="post">'; - местами меняешь кавычки.
4. Имеешь отношение именно ты, так как у меня до сих пор в голове его голос рассказывает, что обозначает: $myrow = mysql_fetch_array($result);
Спустя 7 секунд (4.01.2011 - 01:44) alex12060 написал(а):
Цитата |
3. Хм... Если я напишу class="post" вместо class='post', то php мне выдаст множество ошибок, так делать нельзя (или я что-то делаю не так) ! |
Я бы сказал) Но буду тактичен)
P.S Буква `Ё`
Спустя 3 минуты, 32 секунды (4.01.2011 - 01:48) alex12060 написал(а):
Инпост все сказал за меня)
Не, все начинали с Попова (почти), лично я, да)
Но почитав, обстроившись, я выработал свой стиль и теперь, о Попове вспоминаю лишь так:
Молодец, подтолкнул к программированию)
И все)
Хватит уже поливать его грязью) Хоть и криво рассказал, но и все-же, в некоторых моментах говорил правильно)
Не, все начинали с Попова (почти), лично я, да)
Но почитав, обстроившись, я выработал свой стиль и теперь, о Попове вспоминаю лишь так:
Молодец, подтолкнул к программированию)
И все)
Хватит уже поливать его грязью) Хоть и криво рассказал, но и все-же, в некоторых моментах говорил правильно)
Спустя 4 минуты, 31 секунда (4.01.2011 - 01:52) inpost написал(а):
alex12060
Ещё её называют лябля или лямда... лямба... как-то так =)
SELECT * - по своему смыслу медлительный, лучше указывать все ячейки через запятую, это придаст скорости самому запросу.
Так же не за чем количество строк отправлять в переменную и забивать память, это лишнее, когда данное значение будешь лишь один раз использовать в скрипте
Ещё её называют лябля или лямда... лямба... как-то так =)
SELECT * - по своему смыслу медлительный, лучше указывать все ячейки через запятую, это придаст скорости самому запросу.
Так же не за чем количество строк отправлять в переменную и забивать память, это лишнее, когда данное значение будешь лишь один раз использовать в скрипте
<?php
$result = mysql_query("SELECT `id`,`title`,`description`,`date`,`author` FROM `data`") or die(mysql_error());
if(mysql_num_rows($result) > 0)
while ($row = mysql_fetch_assoc($result))
echo '
<div class="post">
<h2><strong><a href="view_post.php?id='.$row['id'].'">'.$row['title'].'</a></strong></h2><br>
<p>'.$row['description'].'</p><br>
<p>Постинг: '.$row['date'].' | Автор: '.$row['author'].'</p>
</div>';
else
{
echo '<strong>Заметок, пока, нет!</strong>';
}
?>
Спустя 1 минута, 15 секунд (4.01.2011 - 01:53) Invis1ble написал(а):
А мне радоваться, что я не слушал Попова, а сразу начал с Котерова и Костарева? =)
inpost
тильда )
inpost
тильда )
Спустя 2 минуты, 25 секунд (4.01.2011 - 01:56) inpost написал(а):
Invis1ble
Точно, а тот символ где находится и как правильно называется? Или я путаю с математикой? =)
~ - вот тильда =)
Точно, а тот символ где находится и как правильно называется? Или я путаю с математикой? =)
~ - вот тильда =)
Спустя 27 секунд (4.01.2011 - 01:56) RCuPeR написал(а):
Ладно-ладно, хватит уже спорить.
Большое спасибо всем за помощь.
А тебе, inpost, спасибо за пинок под зад, может что-то да и получится, но до мега программиста я ещё не дорос, мне сейчас главное "что бы работало", попробуй меня понять. А искрене сказать спасибо я тебе смогу только когда стану тем самым "программистом", тем, кого ты воспитываешь сейчас.
Большое спасибо всем за помощь.
А тебе, inpost, спасибо за пинок под зад, может что-то да и получится, но до мега программиста я ещё не дорос, мне сейчас главное "что бы работало", попробуй меня понять. А искрене сказать спасибо я тебе смогу только когда стану тем самым "программистом", тем, кого ты воспитываешь сейчас.
Спустя 1 минута, 21 секунда (4.01.2011 - 01:58) RCuPeR написал(а):
Мда... Не далеко я ушёл.
Какой функцией можно обрезать строку до определённого количества символов ?
Какой функцией можно обрезать строку до определённого количества символов ?
Спустя 2 минуты, 3 секунды (4.01.2011 - 02:00) Invis1ble написал(а):
inpost
ты имеешь "лямбду" ? это греческая буква... вот она - λ
на клаве ее нету )
ты имеешь "лямбду" ? это греческая буква... вот она - λ
на клаве ее нету )
Спустя 31 секунда (4.01.2011 - 02:00) inpost написал(а):
Гугл: Туда пишем самое главное PHP и добавляем вопрос: "обрезать строку", что тут сложного?
http://www.google.ru/search?hl=ru&source=h...%D0%B5&gs_rfai=
http://www.google.ru/search?hl=ru&source=h...%D0%B5&gs_rfai=
Спустя 36 секунд (4.01.2011 - 02:01) inpost написал(а):
Invis1ble
А жаль, как красиво звучит...
А жаль, как красиво звучит...
Спустя 42 секунды (4.01.2011 - 02:01) Invis1ble написал(а):
inpost
0x03BB вроде бы в юникоде...
0x03BB вроде бы в юникоде...
Спустя 45 секунд (4.01.2011 - 02:02) inpost написал(а):
Invis1ble
Может быть, но 0x03BB - теряется всё изящество...
Может быть, но 0x03BB - теряется всё изящество...
Спустя 1 минута, 37 секунд (4.01.2011 - 02:04) RCuPeR написал(а):
inpost, ну, думал, уже не отходя от кассы...
Спустя 2 минуты, 9 секунд (4.01.2011 - 02:06) alex12060 написал(а):
inpost
Знаю, просто лень было перечислять нужное)
Знаю, просто лень было перечислять нужное)
Спустя 3 минуты, 35 секунд (4.01.2011 - 02:10) sergeiss написал(а):
Эх и нафлудили...
Насчет Попова - я его вообще не слушал. Мне хватило общения с теми, кто имел неосторожность его слушать.
RCuPeR - у меня в подписи есть ссылка на хэлп по ПХП. Скачай его и просто прочитай его. Последовательно, по порядку. Там содержится ПОЛНОЕ описание языка. Потратишь некоторое время, но зато ты будешь точно знать, что имеется в языке ПХП. Потом тебе надо будет только, может быть, уточнить правильное имя функции да её параметры.
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
Насчет Попова - я его вообще не слушал. Мне хватило общения с теми, кто имел неосторожность его слушать.
RCuPeR - у меня в подписи есть ссылка на хэлп по ПХП. Скачай его и просто прочитай его. Последовательно, по порядку. Там содержится ПОЛНОЕ описание языка. Потратишь некоторое время, но зато ты будешь точно знать, что имеется в языке ПХП. Потом тебе надо будет только, может быть, уточнить правильное имя функции да её параметры.
Спустя 2 минуты, 10 секунд (4.01.2011 - 02:12) sharki написал(а):
sergeiss
Добавь еще русский мануал по PHP вот ссыль, мне вот лично приятнее на русском читать))
http://www.softtime.ru/info/php_ru.php
Добавь еще русский мануал по PHP вот ссыль, мне вот лично приятнее на русском читать))
http://www.softtime.ru/info/php_ru.php
Спустя 12 минут, 18 секунд (4.01.2011 - 02:24) sergeiss написал(а):
sharki - на русском приятнее читать, да. Но только тот мануал, что по моей ссылке, он обновляется чаще, чем делаются русские переводы.
Спустя 14 минут, 51 секунда (4.01.2011 - 02:39) Invis1ble написал(а):
Смотреть всем, особенно ТС http://phpforum.ru/index.php?showtopic=38631
_____________
Гнусный социопат с комплексом Бога.