PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 15
VasyaCV Отправлено: 29 Сентября, 2011 - 18:52:26 • Тема: Подсчет одинаковых строк в базе данных • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 69
Всё работает в проблеме разобрался.
VasyaCV Отправлено: 29 Сентября, 2011 - 11:15:50 • Тема: Подсчет одинаковых строк в базе данных • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 69
спасибо щас будем пробовать
(Добавление)
Не получается. Я наверное на правильно объяснил что мне точно надо.
У меня есть список книг. Я делаю поиск. Поиск работает отлично всё находит. Только в базе есть книги одинаковые. И мне выводит все записи, а мне надо чтоб вводило название книги и её количество.
Мой запрос и вывод:
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT * FROM books WHERE (".$fld[0]." like '%".$val[0]."%')
  3. and (".$fld[1]." like '%".$val[1]."%')
  4. and (".$fld[2]." like '%".$val[2]."%')
  5. and (".$fld[3]." like '%".$val[3]."%') GROUP BY title ORDER BY publish_year DESC limit ".$start_pos.", ".$perpage."") or die('<b><h4 align=center>error!</h4>');
  6.  
  7. while ($row = mysql_fetch_array($result)){
  8. echo "<hr/>".++$start_pos.". ".$row['title'].". ".$row['authors']."., ".$row['subtitle'].".: ".$row['editors'].".- ".$row['city']."., ".$row['publisher'].". ".$row['publish_year'].". - ".$row['pages_count']." c. <br>\n";
  9.  
VasyaCV Отправлено: 29 Сентября, 2011 - 10:55:55 • Тема: Подсчет одинаковых строк в базе данных • Форум: Напишите за меня, пожалуйста

Ответов: 3
Просмотров: 69
Добрый день!
У меня такая проблема. Есть база данных в которой есть абсолютно одинаковые строки. Мне нужно посчитать повторяемые строки. Например у меня есть строки
1. Петров
2. Петров
3. Петров
4. Иванов
5. Иванов
6. Иванов
7. Сидоров.
Как мене посчитать и вывести сколько в базе Петров….
Делаю всё запросом
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query("SELECT * FROM table WHERE (".$fld[0]." like '%".$val[0]."%')
  3. and (".$fld[1]." like '%".$val[1]."%')
  4. and (".$fld[2]." like '%".$val[2]."%')
  5. and (".$fld[3]." like '%".$val[3]."%') GROUP BY name ORDER BY year"")

Как дальше делать не знаю. Помогите кто знает.
VasyaCV Отправлено: 11 Июля, 2011 - 11:33:43 • Тема: проблема с формой • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 77
Нашел свою ошибку. Всё работает. Тема закрыта. Всем спасибо.
VasyaCV Отправлено: 11 Июля, 2011 - 08:53:28 • Тема: проблема с формой • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 77
Веб сервер запускаю конечно. Задача у меня такая: с этой формы выбирается количество отображаемых строк при постраничном выводе. Если я делаю так $ppage = $_POST["prpage"]; то выкидывает ошибку: Division by zero.
Посоветуйте как сделать чтоб оно при выборе из списка давало нужный результат.
VasyaCV Отправлено: 08 Июля, 2011 - 15:48:02 • Тема: проблема с формой • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 77
Может кто подскажет.
У меня есть форма:
CODE (html):
скопировать код в буфер обмена
  1. <form method="POST" name="f2">
  2.            <select name=prpage size=1>
  3.             <option value="10">10</option>
  4.             <option value="20" selected>20</option>
  5.             <option value="50">50</option>
  6.             <option value="100">100</option>
  7.            </select>

Как сделать так чтобы при выборе 50, в коде можно было использовать целое число 50 и т.д.
делаю я так:
что то не получается.
VasyaCV Отправлено: 08 Июля, 2011 - 14:55:26 • Тема: передача данных из формы • Форум: HTTP и PHP

Ответов: 12
Просмотров: 6426
спасибо за совет
VasyaCV Отправлено: 08 Июля, 2011 - 14:31:50 • Тема: передача данных из формы • Форум: HTTP и PHP

Ответов: 12
Просмотров: 6426
Добрый день!!!
Я новичок в php.
Может кто подскажет как мне делать.
У меня есть форма
CODE (html):
скопировать код в буфер обмена
  1. <select name=perpage size=1 method="POST">
  2.             <option value="10">10</option>
  3.             <option value="20" selected>20</option>
  4.             <option value="50">50</option>
  5.             <option value="100">100</option>
  6.              </select>

Как сделать так что-бы при выборе 50 передавалось целое число 50 и т.д.
как я понимаю надо делать через POST. Да вот только не получается.
VasyaCV Отправлено: 08 Июля, 2011 - 12:20:40 • Тема: Передача данных между страницами. • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 51
спасибо!
заработало.
VasyaCV Отправлено: 08 Июля, 2011 - 11:57:11 • Тема: Передача данных между страницами. • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 51
Добрый день!
PHP только начал изучать. Делаю постраничный вывод но никак не могу передавать значение значение переменных на следующую страничку. Что собственно я делаю. У меня есть форма поиска из которой мы берём параметры для запроса. Запрос делаем из базы данных. Поиск проходит правильно. Выводит первую страницу с данными. а при переходе на следующую параметры запроса не сохраняются. Пробую делать через сессию только ничего не получается. Прорыл кучу форумов и книжек. Может кто сможет помочь или дать совет как делать или укажет что я делаю не так.
Вот код над которым ломаю голову:
PHP:
скопировать код в буфер обмена
  1.  
  2. /* Соединение, выбор БД */
  3. include ("file/db.php");
  4.  
  5. $sh = $_POST["t1"];
  6. $sh2 = $_POST["t2"];
  7. $sh3 = $_POST["t3"];
  8. $sh4 = $_POST["t4"];
  9.  
  10. $tf1 = $_POST["f1"];
  11. $tf2 = $_POST["f2"];
  12. $tf3 = $_POST["f3"];
  13. $tf4 = $_POST["f4"];
  14.  
  15. /*создаю масивы*/
  16. $fld = array($tf1, $tf2, $tf3, $tf4);
  17. $val = array($sh, $s2, $s3, $s4);
  18.  
  19. $_SESSION["fld"]=$f;
  20. $_SESSION["val"]=$v;
  21.  
  22. if (isset($_GET["page"]))
  23.     {
  24.                 $f = $_SESSION["f"];
  25.                 $v = $_SESSION["v"];
  26.         }
  27.  
  28. /*функция постраничного вывода*/
  29. function link_bar($page, $count, $pages_count, $show_link)
  30. {
  31. // $show_link - это количество отображаемых ссылок;
  32. // нагляднее будет, когда это число будет парное
  33. // Если страница всего одна, то вообще ничего не выводим
  34. if ($pages_count == 1) return false;
  35. $sperator = ' '; // Разделитель ссылок;
  36. // Для придания ссылкам стиля
  37. $style = 'style="color: #808000; text-decoration: none; align=center;"';
  38. $begin = $page - intval($show_link / 2);
  39. unset($show_dots); // На всякий случай :)
  40. // Сам постраничный вывод
  41. // Если количество отображ. ссылок больше кол. страниц
  42. if ($pages_count <= $show_link + 1) $show_dots = 'no';
  43. // Вывод ссылки на первую страницу
  44. if (($begin > 2) && ($pages_count - $show_link > 2)) {
  45. echo '<a '.$style.' href='.$_server['php_self'].'?page=1> |< </a> ';
  46. }
  47. for ($j = 0; $j <= $show_link; $j++) // Основный цикл вывода ссылок
  48. {
  49. $i = $begin + $j; // Номер ссылки
  50. // Если страница рядом с началом, то увеличить цикл для того,
  51. // чтобы количество ссылок было постоянным
  52. if ($i < 1) continue;
  53. // Подобное находится в верхнем цикле
  54. if (!isset($show_dots) && $begin > 1) {
  55. echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i-1).'><b>...</b></a> ';
  56. $show_dots = "no";
  57. }
  58. // Номер ссылки перевалил за возможное количество страниц
  59. if ($i > $pages_count) break;
  60. if ($i == $page) {
  61. echo ' <a '.$style.' ><b>'.$i.'</b></a> ';
  62. } else {
  63. echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$i.'>'.$i.'</a> ';
  64. }
  65.  
  66. // Если номер ссылки не равен кол. страниц и это не последняя ссылка
  67. if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
  68. // Вывод "..." в конце
  69. if (($j == $show_link) && ($i < $pages_count)) {
  70. echo ' <a '.$style.' href='.$_server['php_self'].'?page='.($i+1).'><b>...</b></a> ';
  71. }
  72. }
  73. // Вывод ссылки на последнюю страницу
  74. if ($begin + $show_link + 1 < $pages_count) {
  75. echo ' <a '.$style.' href='.$_server['php_self'].'?page='.$pages_count.'> >| </a>';
  76. }
  77. return true;
  78. } // Конец функции
  79.  
  80. // Подготовка к постраничному выводу
  81. $ppage = 20;
  82. $perpage = $ppage; // Количество отображаемых данных из БД
  83.  
  84. if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
  85. $page = 1;
  86. } else {
  87. $page = (int) $_GET['page']; // Считывание текущей страницы
  88. }
  89.  
  90. // Общее количество информации
  91. $query = mysql_query("SELECT * FROM blok WHERE (".$f[0]." like '%".$v[0]."%')
  92. and (".$f[1]." like '%".$v[1]."%')
  93. and (".$f[2]." like '%".$v[2]."%')
  94. and (".$f[3]." like '%".$v[3]."%')") or die ('<b>eror');
  95.  
  96. $count = mysql_num_rows($query);
  97.  
  98. $pages_count = ceil($count / $perpage); // Количество страниц
  99.  
  100. // Если номер страницы оказался больше количества страниц
  101. if ($page > $pages_count) $page = $pages_count;
  102. $start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
  103.  
  104. // Вызов функции, для вывода ссылок на экран
  105. link_bar($page, $count, $pages_count, 10);
  106.  
  107. // Вывод информации из базы данных
  108. $result = mysql_query("SELECT * FROM blok WHERE (".$f[0]." like '%".$v[0]."%')
  109. and (".$f[1]." like '%".$v[1]."%')
  110. and (".$f[2]." like '%".$v[2]."%')
  111. and (".$f[3]." like '%".$v[3]."%')") ORDER BY id, title limit ".$start_pos.", ".$perpage."") or die('Помилка!');
  112.  
  113. while ($row = mysql_fetch_array($result)) {
  114. echo "<hr/>".++$start_pos.". ".$row['tit'].". ".$row['au']."., ".$row['sub'].".: ".$row['ed'].".- ".$row['c']."., ".$row['pub'].". ".$row['publ'].". -".$row['pag']." <br>\n";
  115. }
  116.  
  117. /* Освобождение памяти, занятой результатом запроса */
  118. mysql_free_result($result);
  119. /* Закрытие соединения */
  120. mysql_close($link);
  121.  
VasyaCV Отправлено: 23 Июня, 2011 - 15:15:09 • Тема: Помагите сделать постраничный вывод. • Форум: Напишите за меня, пожалуйста

Ответов: 0
Просмотров: 26
Добрый день!!! Помогите пожалуйста сделать постраничный вывод. Я в этом деле новичок не могу никак доделать.
Ниже показана часть кода. В нём поиск по базе идёт на ура и выводит на первую страницу 20 первых записей из базы. а когда нажимаю чтобы перейти на 2.... страницу выдаёт ошибку: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\000\blocks\ksearch.php on line 77

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource

Может кто-то сможет помочь. Спасибо заранее.
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. /* Соединение, выбор БД */
  4. $link = mysql_connect("localhost", "root", "") or die("Не соединилось!!!");
  5. $db = mysql_select_db("library") or die("Не найдена БД");
  6.  
  7. /* Делаем запрос к базе данных*/
  8. $search = mysql_real_escape_string($_POST['txtSearch1']);
  9. $search2 = mysql_real_escape_string($_POST['txtSearch2']);
  10. $search3 = mysql_real_escape_string($_POST['txtSearch13']);
  11. $search4 = mysql_real_escape_string($_POST['txtSearch14']);
  12.  
  13.  echo '<hr />';
  14.   $per_page = 20;
  15.  for($i=1;$i<=$num_pages;$i++) {
  16.   echo '<a href="'.$_SERVER['PHP_SELF'].'?num='.$i*$per_page.'">'.$i."</a>\n";}
  17.  
  18. // получаем номер страницы
  19.   if (isset($_GET['page'])) $page=($_GET['page']-1); else $page=0;
  20.  
  21. // вычисляем первый оператор для LIMIT
  22.   $start=abs($page*$per_page);
  23.  
  24. // составляем запрос и выводим записи
  25. // переменную $start используем, как нумератор записей.
  26. $q="SELECT * FROM books WHERE (".mysql_escape_string($_POST['txtFields1'])." like '%".$search."%')
  27. and (".mysql_escape_string($_POST['txtFields2'])." like '%".$search2."%')
  28. and (".mysql_escape_string($_POST['txtFields3'])." like '%".$search3."%')
  29. and (".mysql_escape_string($_POST['txtFields4'])." like '%".$search4."%') ORDER BY id, title LIMIT $start,$per_page";
  30. $res=mysql_query($q);
  31. while($row=mysql_fetch_array($res)) {
  32.           {echo ++$start.". ".$row['title'].". ".$row['subtitle'].". ".$row['authors'].". ".$row['editors']."<br>\n";}}
  33.  
  34. // дальше выводим ссылки на страницы:
  35. //title, subtitle, authors, editors, city, publisher, publish_year, pages_count
  36. $q="SELECT count(*) FROM books WHERE (".mysql_escape_string($_POST['txtFields1'])." like '%".$search."%')
  37. and (".mysql_escape_string($_POST['txtFields2'])." like '%".$search2."%')
  38. and (".mysql_escape_string($_POST['txtFields3'])." like '%".$search3."%')
  39. and (".mysql_escape_string($_POST['txtFields4'])." like '%".$search4."%')";
  40. $res=mysql_query($q);
  41. $row=mysql_fetch_row($res);
  42. $total_rows=$row[0];
  43. $num_pages=ceil($total_rows/$per_page);
  44. for($i=1;$i<=$num_pages;$i++) {
  45.   if ($i-1 == $page) {
  46.     echo $i." ";
  47.   } else {
  48.     echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i."</a> ";}}
  49. /* Закрытие соединения */
  50. mysql_close($link);
  51.  
  52.  
VasyaCV Отправлено: 18 Июня, 2011 - 14:10:30 • Тема: Помогите пожалуйста • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 98
код заработал только не много в другом варианте.
При таком запросе:
PHP:
скопировать код в буфер обмена
  1.  
  2. $search = mysql_real_escape_string($_POST['txtSearch1']);
  3. $query = "SELECT * from book where ".mysql_escape_string($_POST['txtFields1'])." like '%".$search."%'";

всё работает на ура)
VasyaCV Отправлено: 18 Июня, 2011 - 09:32:56 • Тема: Помогите пожалуйста • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 98
а как это сделать?
VasyaCV Отправлено: 17 Июня, 2011 - 16:17:24 • Тема: Помогите пожалуйста • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 98
У меня есть база данных. Мне нужно по форме которую я написал выше делать поиск в базе. Например я выбираю из выпадающего списка автор и надо искать в базе по полю автор. Или я выбираю название и искать надо по полю название в таблице базы. Я не могу не как разобраться с выпадающим списком. Ищет только по одному значению, несмотря на то что в форме выбираю разные значения.
VasyaCV Отправлено: 17 Июня, 2011 - 15:54:06 • Тема: Помогите пожалуйста • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 98
Здравствуйте!
Я новичок в php. Есть задание. Надо сделать поиск по выпадающему списку. При выборе значения из списка делается запрос в базу данных.
Моя форма:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <form action="search.php" method="post" name="f1" onsubmit="javascript: if ((txtSearch1.value=='')||(txtSearch1.value=='Поиск...')) { return false; } else { return true; }">
  2.          
  3.             <select name=txtFields1 size=1 method="post">
  4.             <option value="ZERO" selected>-- виберiть поле --</option>
  5.             <option value="tit">название</option>
  6.             <option value="aut">автор</option>
  7.             <option value="ed">редактор</option>
  8.             </select>
  9.          <input type="text" name="txtSearch1" size="50" value="" onfocus="">
  10.          <input type="submit" name="submit" value="поиск">
  11.          <input type="reset" name="reset" value="удалить">
  12.             <


код поиска что писал:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. /* Соединение, выбор БД */
  3. $link = mysql_connect("localhost", "root", "") or die("Не соединилось!!!");
  4. mysql_select_db("lb") or die("Не найдена БД");
  5. $query = "SELECT * FROM book WHERE UPPER(title) LIKE '%".strtoupper($_POST['txtSearch1'])."%'";
  6. $result = mysql_query($query) or die("Запрос ошибочный");
  7. $k=mysql_num_rows($result); //количество строк в результате запроса*/
  8. if ($k==0) {print "<h3 align=center>По ващому запиту нічого не знайдено. Повторіть пошук";}
  9. else{
  10. /* Печать результатов в HTML */
  11. print "Записів знайдено: <b>$k</b>";
  12. print "<table class=\"forumline\" border=\"0\" cellpadding=\"2\" cellspacing=\"1\" width=\"100%\">
  13. <tr></tr> \n";
  14. }
  15. while ($line = mysql_fetch_array($result, MYSQL_NUM)) {
  16. print "\t<tr>\n";
  17. for ($i=1;$i<=12;$i++){print "\t\t<td class=\"row1\" align=\"center\" valign=\"middle\" height=\"50\" width=\"16%\">$line[$i]</td>\n";}
  18. print "\t</tr>\n";
  19. }
  20. print "</table>\n";
  21. /* Освобождение памяти, занятой результатом запроса */
  22. /* Закрытие соединения */
  23. mysql_close($link);
  24. ?>
  25.  

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB