|
|
|
|
<?php
$result = mysql_query("SELECT author,date FROM test",$hj);
$myrov = mysql_fetch_array($result);
do {
printf (" <p>%s</p> <p> %s</p> ", $myrov["date"], $myrov["author"]);
}
while ($myrov = mysql_fetch_array($result));
?>
|
Вывод происходит по принципу
Текст1
Текст2
Текст3
Текст4
И т.д.
Можно сделать вот так
Текст1 Текст2 Текст3
Текст4 Текст5 Текст6
Текст7 Текст8 Текст9
И т.д | |
|
|
|
|
|
|
|
для: Ozz99
(04.01.2009 в 21:54)
| | можно и чо. | |
|
|
|
|
|
|
|
для: Ozz99
(04.01.2009 в 21:54)
| | можно таблицей, можно еще как-нибудь, тут главное либо цикл в цикле сделать, либо 1 цикл с шагом 3 и выводом инфы, соответственно, 3 раза... | |
|
|
|
|
|
|
|
для: ddhvvn
(04.01.2009 в 22:16)
| | Да не, зачем кучу циклов?
Как то так:
<?
while ($myrov = mysql_fetch_array($result));
{
$i++
printf (" %s %s ", $myrov["date"], $myrov["author"]);
if(($i%3) == 0) echo "<br>";
}
|
| |
|
|
|
|
|
|
|
для: Николай2357
(04.01.2009 в 22:21)
| | Спасибо будем пробовать | |
|
|
|
|
|
|
|
для: Ozz99
(04.01.2009 в 22:53)
| | Вот что пишет
Parse error: syntax error, unexpected T_STRING in Z:\home\localhost\www\zv\test1.php on line 35
35 строка вот
printf (" %s %s ", $myrov["date"], $myrov["author"]);
|
| |
|
|
|
|
|
|
|
для: Ozz99
(04.01.2009 в 23:23)
| | Ну я же только принцип написал. Я вообще никогда не юзал printf, не нравится он мне...
напишите вместо него к примеру
<?
echo $myrov["date"]." ".$myrov["author"];
|
А ошибка там простая - нет точки с запятой. Я тут писал - прохлопал ушами. Извините.
| |
|
|
|
|
|
|
|
для: Николай2357
(04.01.2009 в 23:29)
| | Спасибо. вроде всё работает | |
|
|
|
|
|
|
|
для: Ozz99
(04.01.2009 в 23:48)
| | Всё работает, да немного не так. Если в таблице 10 строк, то показывает 11.
Строка пустая и становится всегда впереди. Она бы не мешала, но как только пишешь Автор.
То выводится так
Автор Автор Андрей Автор Артур
Автор Петя Автор Вася и т.д. | |
|
|
|
|
|
|
|
для: Ozz99
(05.01.2009 в 01:43)
| | Не, это у Вас что то где то напутано. Такого в принципе быть не может. Код в студию. (В смысле дамп) | |
|
|
|
|
|
|
|
для: Николай2357
(05.01.2009 в 08:31)
| | Вот он
<?php
$result = mysql_query("SELECT title,id,description,author,date FROM test ORDER BY id",$fg);
do {
$i++;
printf (" Автор %s Ещё %s", $myrov["author"], $myrov["date"] );
if(($i%3) == 0) echo "<br><br>";
}
while ($myrov = mysql_fetch_array($result));
?>
|
Если делаю вот так
<?php
$result = mysql_query("SELECT title,id,description,author,date FROM test ORDER BY id",$fg);
while ($myrov = mysql_fetch_array($result));
do {
$i++;
printf (" Автор %s Ещё %s", $myrov["author"], $myrov["date"] );
if(($i%3) == 0) echo "<br><br>";
}
while ($myrov = mysql_fetch_array($result));
?>
|
Выводится только Автор Ещё - и больше ничего.
<?php
$result = mysql_query("SELECT title,id,description,author,date FROM test ORDER BY id",$fg);
do {
$i++;
echo "Проба - $myrov[date]"." ".$myrov["author"];
if(($i%3) == 0) echo "<br><br>";
}
while ($myrov = mysql_fetch_array($result));
?>
|
этот вариант - всё тоже самое | |
|
|
|
|
|
|
|
для: Ozz99
(05.01.2009 в 13:18)
| | Зачем вы используете конструкцию do while? Вам так больше нравится или вы по-другому не умеете?
Если больше нравится, тогда внимательно посмотрите свое первое сообщение, на предмет того, что вы забыли напиать в этом.
Если же иначе не умеете, тогда открывайте учебник и читайте чем do while отличается от простого цикла while. Иначе, вам и впредь будет также сложно переделывать чужой код на свой лад. | |
|
|
|
|
|
|
|
для: Drago
(05.01.2009 в 14:28)
| | Тут был слух, что какая-то дрянь выпустила видеокурс, в котором для расхлебывания результата запроса к БД был представлен этот do - while .
Вот теперь огребаем по полной программе. Это ж не первый случай на форуме, и даже не десятый . | |
|
|
|
|
|
|
|
для: Trianon
(05.01.2009 в 15:52)
| | Так вот оно в чем дело. Тоже слышал про этот видеокурс, но даже не предлпологал что все настолько серьезно. | |
|
|
|
|
|
|
|
для: Drago
(05.01.2009 в 16:01)
| |
$myrov = mysql_fetch_array($result);
|
Вот эту строчку судя по всему забыл написать. Спасибо. Правда я уже вот так сделал..
<?
$result = mysql_query("SELECT author,id FROM test",$fg);
$myrov = mysql_fetch_array($result);
echo "<table border='2' cellpadding='4' cellspacing='4' bordercolor='#CC6633'>";
$final = 0;
do{
if($final == 0) echo "<tr>";
printf ("<td width='150' height='150' align='center' class='viv_tb'><a href='uroc.php?id=%s'>%s</a></td>", $myrov["id"], $myrov["author"] );
$final++;
if($final == 2)
{
echo "</tr>";
$final = 0;
}
}
while ($myrov = mysql_fetch_array($result));
echo "</table>";
?>
|
Он выложен в форуме, но разобраться в нём я смог только после обсуждения с Николаем его варианта. За что Николаю очень большое спасибо. А так я даже не знал, что и где менять.
Что касается того видеокурса, что поделать - там всё понятно и доступно. До него я даже не знал, что PHP не так сложно. Кстати это он даёт ссылку на ваш форум и сообщает, что книги довольно у вас нужные. Но в наш век кто читает книги?
Всё таки в чём принципиальная разница между do while и просто while? В двух словах можно? Потому, что подругому я не умею, а учиться без видеокурса довольно сложно. Ещё раз спасибо всем за помощь. | |
|
|
|
|
|
|
|
для: Ozz99
(07.01.2009 в 17:12)
| | А вот зря Вы не прислушались... Цикл do... while предполагает, что один виток будет совершен обязательно. А у Вас это не факт. Так что как говорят - фтопку этот курс. Ну или это место из него хотя бы. | |
|
|
|
|
|
|
|
для: Ozz99
(07.01.2009 в 17:12)
| | Вот тоже самое:
<?
$result = mysql_query("SELECT author,id FROM test",$fg);
echo "<table border='2' cellpadding='4' cellspacing='4' bordercolor='#CC6633'><tr>";
while ($myrov = mysql_fetch_array($result));
{
$i++;
printf ("<td width='150' height='150' align='center' class='viv_tb'><a href='uroc.php?id=%s'>%s</a></td>", $myrov["id"], $myrov["author"] );
if(($i%2) == 0) echo "</tr><tr>";
}
echo "</tr></table>";
| Правда не очень красиво оставлять пустой ряд, если к-во кратное 2, но такова логика Вашего кода. И кстати вообще всё поплывёт. Что так, что эдак. | |
|
|
|
|
|
|
|
для: Николай2357
(07.01.2009 в 17:19)
| | Можно на этом подробнее, что и куда поплывёт. У меня пока не плывёт, в опере и в Е проверял. Может в каких старых версиях Е или ещё где поплывёт. У меня всё это выгружается в таблицу у которой параметр ширины стоят 600px/ Может в ней не должно поплыть? Делалось это для вывода фото. Пробовал и по 3 и по 4 и по 2. И с постраничной навигацией и кратное разным числам. Всё красиво получается. Там где всего 2 фото они по центру. Если кратно 3 то законченая табличка 3x1, 3x2, 3x3, 3x4, если например 8 фото, то строится три ряда в котором последняя ячейка пустая - что не критично. Вроде не плывёт. Может я как ламер ещё не понимаю каких моментов и они всплывут в других версиях браузера? | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 14:51)
| | Меняю свой код на Ваш и
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\zv\test4.php on line 34 - вот эта строка - while ($myrov = mysql_fetch_array($result));
и в низу табличка 150 на 150, что не так? | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 15:02)
| | Рано мне ещё тот видеокурс в топку. А сайту предложил бы выпустить своих пачку видеокурсов. И что бы их можно было скачать за СМС. Присылаешь СМС вам код и качаешь. Создание сайта может занять до 30 уроков. Соответственно 30 СМС. Но надо что бы было расписано в кратце какой урок для чего и надпись, например, вам фото альбом на сайте не нужен переходите на урок №17. Что бы весь курс мог не в 30 СМС а в 10 Сmc войти. Стоимость Сmc выбирайте сами. Если идея будет востребована, то требую процент в виде видеоуроков - бесплатно. Если ещё кто-то воспользуется советом не забудьте поблагодарить в личку и можете предложить бесплатно, то что у вас будет платно. | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 15:12)
| | простите, а для чего?
Что этот курс будет позволять сделать?
Урок "Как сделать фотоальбом на сайте, не зная как его делать, и так и не узнав как его делать.
Гарантируется работающий фотоальбом и пустая голова как до так и после прохождения курса"
? | |
|
|
|
|
|
|
|
для: Trianon
(08.01.2009 в 15:33)
| | Пустых голов не бывает, разве что у скелетиков. И если Вы считаете, что заполнение лучше начать с чтения книг, то это верно, но вот многим легче когда им разжуют по видео, а потом глядишь и книги легче усвоить. А видеокурс для того, что бы деньги заработать. Ну если они вам не надо, можете отдавать их мне или может вы не хотите их таким образом зарабатывать - это другой вопрос. | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 15:02)
| | >Меняю свой код на Ваш и.....
>и в низу табличка 150 на 150, что не так?
Не знаю что не так, это у Вас в базе что то не то, я базу не трогал )))) | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 14:51)
| | Вот по полочкам, какой будет вывoд при трёх записях в таблице:
1. Тут вопросов нет рисуется шапка.
<table border='2' cellpadding='4' cellspacing='4' bordercolor='#CC6633'>
|
2. Если $final = 0, то открывается ряд:
3. Первый виток цикла:
<td width='150' height='150' align='center' class='viv_tb'>
<a href='uroc.php?id=%s'>%s</a></td>
|
4. Второй виток:
<td width='150' height='150' align='center' class='viv_tb'>
<a href='uroc.php?id=%s'>%s</a></td>
|
5. Так как $final = 2, закрывается ряд
6. Третий виток .$final = 0, открывается ряд:
<tr>
<td width='150' height='150' align='center' class='viv_tb'>
<a href='uroc.php?id=%s'>%s</a></td>
|
7. Всё, записи кончились. Значит закрывается таблица.
Теперь складываем то, что получилось и имеем:
<table border='2' cellpadding='4' cellspacing='4' bordercolor='#CC6633'>
<tr>
<td width='150' height='150' align='center' class='viv_tb'>
<a href='uroc.php?id=%s'>%s</a></td>
<td width='150' height='150' align='center' class='viv_tb'>
<a href='uroc.php?id=%s'>%s</a></td>
</tr>
<tr>
<td width='150' height='150' align='center' class='viv_tb'>
<a href='uroc.php?id=%s'>%s</a></td>
</table>
|
Ещё как поплывёт. | |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2009 в 15:12)
| | </tr> - нет. Как поправить это дело? | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 16:21)
| | ></tr> - нет.
Не только. у Вас в нижнем ряду одна ячейка, а в верхнем две.
Как поправить это дело
Послушать Trianon'a и переписать код. | |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2009 в 16:25)
| | >Как поправить это дело
>Послушать Trianon'a и переписать код.
Не-не-не, Дэвид Блэйн!
Я - пас!
Только через видеокурс! | |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2009 в 16:25)
| | Так он ведь не хочет видеоурок сделать. А прочитав все книги. Если они печатные, то возможно смогу через пару месяцев или пару лет. Если в электронном виде, тогда и править ничего не надо будет - не актуально - глаза подарю компу. Придется контроль держать по количеству фото, а там посмотрим. Ещё можно попробовать без таблиц - фото и так должны стать рядками. Сейчас попрбую.
А всё таки поплывёт как? У меня всё вроде нормально. Где это вылезет и когда? | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 16:47)
| |
<?
echo "<div class='st'>";
$result = mysql_query("SELECT id,mini FROM test ORDER BY id DESC LIMIT $start, $num",$fg);
if (!$result) {echo "<p>Ошибка на странице. Сообщите пожалуйста администратору:</p>";
exit(mysql_error());}
if (mysql_num_rows($result) > 0)
{
$myrov = mysql_fetch_array($result);
do {
$i++;
printf ("<span class='sta'><a href='fot.php?id=%s'>%s</a></span>", $myrov["id"], $myrov["mini"] );
if(($i%3) == 0) echo "<br><br>";
}
while ($myrov = mysql_fetch_array($result));
echo "</div>";
|
Какие замечания по этому варианту? Вроде всё работает. Меня смущает тег span - взял первый попавшийся, может надо было какой другой? | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 16:47)
| | >последняя ячейка пустая - что не критично.
Вот останавливает меня на медне гаишник, и говорит: а какого, простите меня, вместо шплинта в рулевой тяге гвоздь? Так оно вроде не критично... Пока держится. Если Вы будете так же рассуждать, то в один прекрасный момент может так критично стать, что уже и поправить ничего будет невозможно. Как говорил мой хороший знакомый, делать стараться надо всё хорошо, плохо оно само получится.
<?php
$result = mysql_query("SELECT `id`, `author` FROM test", $fg);
echo "<table border='2' cellpadding='4' cellspacing='4' bordercolor='#CC6633'>
<tr>";
$row = mysql_num_rows($result);
$row = (($row%2) == 0)? $row:$row+1;
for($i=1; $i <= $row; $i++)
{
$author = (@mysql_result($result,($i-1),1))?
"<a href='uroc.php?id=".$id."' >".@mysql_result($result,($i-1),1)."</a>":" ";
echo "
<td width='150' height='150' align='center' class='viv_tb'>".
$author.
"</td>";
if(($i%2) == 0 )
echo "
</tr>
<tr>";
}
echo "
</tr>
</table>";
?>
|
| |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2009 в 18:09)
| | Буду пробовать. Это я понимаю, что может стать худо. Вот и бьюсь над этим скриптом и Вас прошу помочь. | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 18:14)
| | Всё работает. Хотя мне там не всё понятно.
Я сделал вывод под три таблицы заменив вот тут
И теперь ищу подводные камни. Проверил HTML код вроде нормально. Засады нет в этом месте
<?
$row = (($row%2) == 0)? $row:$row+1;
for($i=1; $i <= $row; $i++)
{
$author = (@mysql_result($result,($i-1),1))?
|
может 3 надо где то прописать или дополнить чего. | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 18:41)
| |
<?
"<a href='uroc.php?id=".$id."' >".@mysql_result($result,($i-1),1)."</a>":" ";
|
$id не подстовляет при нажатии на ссылку происходит пшик. | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 18:57)
| | Я же говорю - само получится )))
<?
"<a href='uroc.php?id=".@mysql_result($result,($i-1),0)."' >".@mysql_result($result,($i-1),1)."</a>":" ";
|
| |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2009 в 19:02)
| | Замечательно. В очередной раз спасибо и очень большое. Надеюсь на этот раз всё. | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 18:57)
| | >Я сделал вывод под три таблицы заменив вот тут
Вот не зря Trianon чурается ))). Вы поймите, это ведь не видеокурс, тут маленько надо думать, а не подставлять наугад что попало куда попало. Если надо на 3 ячейки, совсем другая логика должна быть. | |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2009 в 19:07)
| | Я так и подумал, что логика должна быть другая. Поэтому и выложил этот кусок. Написал бы он видео курс и народ бы у него покупал и логику осваивал. А так мучаемся. | |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2009 в 19:07)
| | Довели.
вот вам на произвольное число ячеек.
<?php
$result = mysql_query("SELECT `id`, `author` FROM test", $fg);
echo "<table border='2' cellpadding='4' cellspacing='4' bordercolor='#CC6633'>\r\n";
$rows = mysql_num_rows($result);
$columns = 5;
$cells = $columns * intval(($rows+$columns-1)/$columns);
for($i=0; $i < $cells;)
{
if($i % $columns == 0) echo "<tr>";
$v = " ";
if($i < $rows)
{
$row = mysql_fetch_assoc($result);
$author = htmlspecialchars($row['author']);
$id = intval($row['id']);
$v = "<a href='uroc.php?id=$id' >$author</a>";
}
echo "<td width='150' height='150' align='center' class='viv_tb'>$v</td>\r\n";
if(++$i % $columns == 0) echo "</tr>\tr";
}
echo "</table>\r\n";
?>
|
UPD. | |
|
|
|
|
|
|
|
для: Trianon
(08.01.2009 в 19:23)
| | Спасибо. вот тут ошибка похоже.
.Исправил.
Я так понимаю меняем просто $columns = 5; или 4 или 3.
Хотя у меня выскакивает в конце несколько пустых ячееке, но это может из за базы, на другой пока не пробовал. Убегаю. Попобую позже.
А всё таки уважаемые знатоки, что вы скажете по варианту 10 сообщений назад я его предоставил. Там я сделал всё то же самое только без таблиц??? Могу я его использовать или есть там засадки? | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 19:37)
| | ну да. руа дрогнула. echo "</tr>\r\n";
>что вы скажете по варианту 10 сообщений назад я его предоставил.
в 17:21? Там где несколько раз закрывается однажды открытый div? | |
|
|
|
|
|
|
|
для: Trianon
(08.01.2009 в 19:23)
| | >Довели.
Свет, звук, камера, мотор, поехали! Кадр 8, дубль 12!
И так, начинаем наш видеокурс! )))) | |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2009 в 20:25)
| | Если уж у профи рука дрожит, то что говорить о ламерах. Я редактировал само сообщение и не туда вставил. Он у меня в самом конце стоит.
while ($myrov = mysql_fetch_array($result)); echo "</div>";
|
вот так. Ошибки ошибками а код работоспособный или на помойку?
Смех,смехом, но разницы нет как в тебя вливают инфу через видео или книгу вопрос только в том какую инфу. Снято, всех блогадарю за участия в съёмках))) | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 23:07)
| | Постойте не расходитесь, я запорол плёнку.
Получается если я ставлю 3 колонки - внизу даёт 2 дополнительные пустые клетки. Ставлю 4 - 3 пустые и т.д. Бонус так сказать. Опять чего-то недовертел. Может из-за постраничной навигации? а зачем вот эта функция - htmlspecialchars в этом коде. Я её удалил, не давала фотки выводить. | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 23:22)
| | Посмотрел я книги и вот такой отзыв увидел.
В книге демонстрируются методы написания программ "на коленке" и "в лоб". Плохие однотипные примеры вдалбливают подходы, которые потом ни один программист использовать не будет.
И это всё на 948 страницах! В своё время очень пожалел о покупке этой книги, теперь отдал бы и даром.
Начинающим программистам советую читать книги с названиями вроде "Профессиональное программирование PHP", "PHP профессионалам". Ничего особо профессионального и сложного там обычно нет (обычное завлечение покупателей), зато примеры поизящнее и учат думать.
Как теперь покупать?
Денис Колисниченко
PHP 5/6 и MySQL 6. Разработка Web-приложений
вот такую книгу нашёл. Купил бы почитал. Но как представлю доставка, на почты бегай. А в Беларусию есть доставка? | |
|
|
|
|
|
|
|
для: Ozz99
(08.01.2009 в 23:07)
| | >Он у меня в самом конце стоит.
А что стоит то? У Вас див открывается только один раз, а закрываете Вы его по числу строк... И уж однозначно на помойку в этои случае цикл do... while.
А руки у всех эпизодически дрожат ;) Дело не в руках. Разруха в головах, а не в клозетах ))). Книги можно читать любые, даже самые бестолковые. Смотря как читать, иногда интересные релизы попадаются. Главное структуру понять и принцип действия. Я вот ооооочень многого еще не понимаю... | |
|
|
|
|
|
|
|
для: Николай2357
(08.01.2009 в 23:57)
| | в HTML коде один раз закрыт - после 4 строк - так что немогу принять этот упрёк. Специально перенёс его выше как в коде с ошибкой. Тогда всё рухнуло. и закрывает после каждой строки. А так один раз закрыл и вообще там можно без div обойтись я его туда для рамки всунул нет рамки и ничего страшного. А вот от do... while не могу избавится. Когда по читаю умную книгу может и получится, а так не работает у меня ничего без этого, не знаю я другого принципа, надеюсь пока. Судя по всему это не очень страшно или я чего не понял? Вот так мне было сказано - Зачем вы используете конструкцию do while? Вам так больше нравится или вы по-другому не умеете?
Если больше нравится, тогда .... | |
|
|
|
|
|
|
|
для: Ozz99
(09.01.2009 в 00:38)
| | Всё нормально в Вашем коде теперь с дивами. А цикл do... while отличается от просто while тем, что в нем сначала выполняется выражение, потом проверяется условие. То есть по русски:
<?
do{
echo "При любых обстоятельствах эта запись появится хотя бы один раз";
}
while("что бы здесь не произошло");
| А цикл while работает так:
<?
while("Если здесь произойдет то, что нам нужно")
{
echo "То только тогда появится эта надпись.";
}
|
| |
|
|
|
|
|
|
|
для: Николай2357
(09.01.2009 в 10:16)
| | Спасибо Николай в очередной раз. По-русски так всё понятно и ясно. Буду эксперементировать. | |
|
|
|