PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 15
VasyaCV
Отправлено: 29 Сентября, 2011 - 11:15:50 • Тема: Подсчет одинаковых строк в базе данных • Форум: Напишите за меня, пожалуйста
Ответов: 3 Просмотров: 69
спасибо щас будем пробовать
(Добавление)
Не получается. Я наверное на правильно объяснил что мне точно надо.
У меня есть список книг. Я делаю поиск. Поиск работает отлично всё находит. Только в базе есть книги одинаковые. И мне выводит все записи, а мне надо чтоб вводило название книги и её количество.
Мой запрос и вывод:
PHP:
скопировать код в буфер обмена
$result = mysql_query ( "SELECT * FROM books WHERE (" . $fld [ 0 ] . " like '%" . $val [ 0 ] . "%') and (" . $fld [ 1 ] . " like '%" . $val [ 1 ] . "%')
and (" . $fld [ 2 ] . " like '%" . $val [ 2 ] . "%')
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>' ) ;
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 " ;
VasyaCV
Отправлено: 29 Сентября, 2011 - 10:55:55 • Тема: Подсчет одинаковых строк в базе данных • Форум: Напишите за меня, пожалуйста
Ответов: 3 Просмотров: 69
Добрый день!
У меня такая проблема. Есть база данных в которой есть абсолютно одинаковые строки. Мне нужно посчитать повторяемые строки. Например у меня есть строки
1. Петров
2. Петров
3. Петров
4. Иванов
5. Иванов
6. Иванов
7. Сидоров.
Как мене посчитать и вывести сколько в базе Петров….
Делаю всё запросом
PHP:
скопировать код в буфер обмена
$result = mysql_query ( "SELECT * FROM table WHERE (" . $fld [ 0 ] . " like '%" . $val [ 0 ] . "%') and (" . $fld [ 1 ] . " like '%" . $val [ 1 ] . "%')
and (" . $fld [ 2 ] . " like '%" . $val [ 2 ] . "%')
and (" . $fld [ 3 ] . " like '%" . $val [ 3 ] . "%') GROUP BY name ORDER BY year" ")
Как дальше делать не знаю. Помогите кто знает.
VasyaCV
Отправлено: 11 Июля, 2011 - 08:53:28 • Тема: проблема с формой • Форум: Напишите за меня, пожалуйста
Ответов: 7 Просмотров: 77
Веб сервер запускаю конечно. Задача у меня такая: с этой формы выбирается количество отображаемых строк при постраничном выводе. Если я делаю так $ppage = $_POST["prpage"]; то выкидывает ошибку: Division by zero.
Посоветуйте как сделать чтоб оно при выборе из списка давало нужный результат.
VasyaCV
Отправлено: 08 Июля, 2011 - 15:48:02 • Тема: проблема с формой • Форум: Напишите за меня, пожалуйста
Ответов: 7 Просмотров: 77
Может кто подскажет.
У меня есть форма:
CODE (
html ):
скопировать код в буфер обмена
<form method = "POST" name = "f2" >
<select name = prpage size = 1 >
<option value = "10" > 10</ option >
<option value = "20" selected> 20</ option >
<option value = "50" > 50</ option >
<option value = "100" > 100</ option >
</ select >
Как сделать так чтобы при выборе 50, в коде можно было использовать целое число 50 и т.д.
делаю я так:
что то не получается.
VasyaCV
Отправлено: 08 Июля, 2011 - 14:31:50 • Тема: передача данных из формы • Форум: HTTP и PHP
Ответов: 12 Просмотров: 6426
Добрый день!!!
Я новичок в php.
Может кто подскажет как мне делать.
У меня есть форма
CODE (
html ):
скопировать код в буфер обмена
<select name = perpage size = 1 method = "POST" >
<option value = "10" > 10</ option >
<option value = "20" selected> 20</ option >
<option value = "50" > 50</ option >
<option value = "100" > 100</ option >
</ select >
Как сделать так что-бы при выборе 50 передавалось целое число 50 и т.д.
как я понимаю надо делать через POST. Да вот только не получается.
VasyaCV
Отправлено: 08 Июля, 2011 - 11:57:11 • Тема: Передача данных между страницами. • Форум: Напишите за меня, пожалуйста
Ответов: 2 Просмотров: 51
Добрый день!
PHP только начал изучать. Делаю постраничный вывод но никак не могу передавать значение значение переменных на следующую страничку. Что собственно я делаю. У меня есть форма поиска из которой мы берём параметры для запроса. Запрос делаем из базы данных. Поиск проходит правильно. Выводит первую страницу с данными. а при переходе на следующую параметры запроса не сохраняются. Пробую делать через сессию только ничего не получается. Прорыл кучу форумов и книжек. Может кто сможет помочь или дать совет как делать или укажет что я делаю не так.
Вот код над которым ломаю голову:
PHP:
скопировать код в буфер обмена
/* Соединение, выбор БД */
include ( "file/db.php" ) ;
$sh = $_POST [ "t1" ] ;
$sh2 = $_POST [ "t2" ] ;
$sh3 = $_POST [ "t3" ] ;
$sh4 = $_POST [ "t4" ] ;
$tf1 = $_POST [ "f1" ] ;
$tf2 = $_POST [ "f2" ] ;
$tf3 = $_POST [ "f3" ] ;
$tf4 = $_POST [ "f4" ] ;
/*создаю масивы*/
$fld = array ( $tf1 , $tf2 , $tf3 , $tf4 ) ; $val = array ( $sh , $s2 , $s3 , $s4 ) ;
$_SESSION [ "fld" ] = $f ;
$_SESSION [ "val" ] = $v ;
if ( isset ( $_GET [ "page" ] ) ) {
$f = $_SESSION [ "f" ] ;
$v = $_SESSION [ "v" ] ;
}
/*функция постраничного вывода*/
function link_bar( $page , $count , $pages_count , $show_link )
{
// $show_link - это количество отображаемых ссылок;
// нагляднее будет, когда это число будет парное
// Если страница всего одна, то вообще ничего не выводим
if ( $pages_count == 1) return false ;
$sperator = ' ' ; // Разделитель ссылок;
// Для придания ссылкам стиля
$style = 'style="color: #808000; text-decoration: none; align=center;"' ;
$begin = $page - intval ( $show_link / 2
) ; unset ( $show_dots ) ; // На всякий случай :) // Сам постраничный вывод
// Если количество отображ. ссылок больше кол. страниц
if ( $pages_count <= $show_link + 1) $show_dots = 'no' ;
// Вывод ссылки на первую страницу
if ( ( $begin > 2) && ( $pages_count - $show_link > 2) ) {
echo '<a ' . $style . ' href=' . $_server [ 'php_self' ] . '?page=1> |< </a> ' ;
}
for ( $j = 0 ; $j <= $show_link ; $j ++ ) // Основный цикл вывода ссылок
{
$i = $begin + $j ; // Номер ссылки
// Если страница рядом с началом, то увеличить цикл для того,
// чтобы количество ссылок было постоянным
if ( $i < 1) continue ;
// Подобное находится в верхнем цикле
if ( ! isset ( $show_dots ) && $begin > 1
) { echo ' <a ' . $style . ' href=' . $_server [ 'php_self' ] . '?page=' . ( $i - 1 ) . '><b>...</b></a> ' ;
$show_dots = "no" ;
}
// Номер ссылки перевалил за возможное количество страниц
if ( $i > $pages_count ) break ;
if ( $i == $page ) {
echo ' <a ' . $style . ' ><b>' . $i . '</b></a> ' ;
} else {
echo ' <a ' . $style . ' href=' . $_server [ 'php_self' ] . '?page=' . $i . '>' . $i . '</a> ' ;
}
// Если номер ссылки не равен кол. страниц и это не последняя ссылка
if ( ( $i != $pages_count ) && ( $j != $show_link ) ) echo $sperator ;
// Вывод "..." в конце
if ( ( $j == $show_link ) && ( $i < $pages_count ) ) {
echo ' <a ' . $style . ' href=' . $_server [ 'php_self' ] . '?page=' . ( $i + 1 ) . '><b>...</b></a> ' ;
}
}
// Вывод ссылки на последнюю страницу
if ( $begin + $show_link + 1 < $pages_count ) {
echo ' <a ' . $style . ' href=' . $_server [ 'php_self' ] . '?page=' . $pages_count . '> >| </a>' ;
}
return true ;
} // Конец функции
// Подготовка к постраничному выводу
$ppage = 20 ;
$perpage = $ppage ; // Количество отображаемых данных из БД
if ( empty ( $_GET [ 'page' ] ) || ( $_GET [ 'page' ] <= 0
) ) { $page = 1 ;
} else {
$page = ( int) $_GET [ 'page' ] ; // Считывание текущей страницы
}
// Общее количество информации
$query = mysql_query ( "SELECT * FROM blok WHERE (" . $f [ 0 ] . " like '%" . $v [ 0 ] . "%') and (" . $f [ 1 ] . " like '%" . $v [ 1 ] . "%')
and (" . $f [ 2 ] . " like '%" . $v [ 2 ] . "%')
and (" . $f [ 3 ] . " like '%" . $v [ 3 ] . "%')" ) or
die ( '<b>eror' ) ;
$pages_count = ceil ( $count / $perpage ) ; // Количество страниц
// Если номер страницы оказался больше количества страниц
if ( $page > $pages_count ) $page = $pages_count ;
$start_pos = ( $page - 1) * $perpage ; // Начальная позиция, для запроса к БД
// Вызов функции, для вывода ссылок на экран
link_bar( $page , $count , $pages_count , 10) ;
// Вывод информации из базы данных
$result = mysql_query ( "SELECT * FROM blok WHERE (" . $f [ 0 ] . " like '%" . $v [ 0 ] . "%') and (" . $f [ 1 ] . " like '%" . $v [ 1 ] . "%')
and (" . $f [ 2 ] . " like '%" . $v [ 2 ] . "%')
and (" . $f [ 3 ] . " like '%" . $v [ 3 ] . "%')" ) ORDER BY id, title limit ".$start_pos ." , ".$perpage ." ") or die('Помилка!');
while ($row = mysql_fetch_array($result )) {
echo " < hr/> ".++$start_pos ." . ".$row ['tit']." . ".$row ['au']." ., ".$row ['sub']." .: ".$row ['ed']." .- ".$row ['c']." ., ".$row ['pub']." . ".$row ['publ']." . - ".$row ['pag']." < br> \n";
}
/* Освобождение памяти, занятой результатом запроса */
mysql_free_result($result );
/* Закрытие соединения */
mysql_close($link );
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:
скопировать код в буфер обмена
/* Соединение, выбор БД */
/* Делаем запрос к базе данных*/
echo '<hr />' ;
$per_page = 20 ;
for ( $i = 1 ; $i <= $num_pages ; $i ++ ) {
echo '<a href="' . $_SERVER [ 'PHP_SELF' ] . '?num=' . $i * $per_page . '">' . $i . "</a>\n " ; }
// получаем номер страницы
if ( isset ( $_GET [ 'page' ] ) ) $page = ( $_GET [ 'page' ] - 1
) ; else $page = 0 ;
// вычисляем первый оператор для LIMIT
$start = abs ( $page * $per_page ) ;
// составляем запрос и выводим записи
// переменную $start используем, как нумератор записей.
$q = "SELECT * FROM books WHERE (" . mysql_escape_string ( $_POST [ 'txtFields1' ] ) . " like '%" . $search . "%') and (" . mysql_escape_string ( $_POST [ 'txtFields4' ] ) . " like '%" . $search4 . "%') ORDER BY id, title LIMIT $start ,$per_page " ; { echo ++ $start . ". " . $row [ 'title' ] . ". " . $row [ 'subtitle' ] . ". " . $row [ 'authors' ] . ". " . $row [ 'editors' ] . "<br>\n " ; } }
// дальше выводим ссылки на страницы:
//title, subtitle, authors, editors, city, publisher, publish_year, pages_count
$q = "SELECT count(*) FROM books WHERE (" . mysql_escape_string ( $_POST [ 'txtFields1' ] ) . " like '%" . $search . "%') $total_rows = $row [ 0] ;
$num_pages = ceil ( $total_rows / $per_page ) ; for ( $i = 1 ; $i <= $num_pages ; $i ++ ) {
if ( $i - 1 == $page ) {
echo $i . " " ;
} else {
echo '<a href="' . $_SERVER [ 'PHP_SELF' ] . '?page=' . $i . '">' . $i . "</a> " ; } }
/* Закрытие соединения */
VasyaCV
Отправлено: 17 Июня, 2011 - 16:17:24 • Тема: Помогите пожалуйста • Форум: Напишите за меня, пожалуйста
Ответов: 6 Просмотров: 98
У меня есть база данных. Мне нужно по форме которую я написал выше делать поиск в базе. Например я выбираю из выпадающего списка автор и надо искать в базе по полю автор. Или я выбираю название и искать надо по полю название в таблице базы. Я не могу не как разобраться с выпадающим списком. Ищет только по одному значению, несмотря на то что в форме выбираю разные значения.
VasyaCV
Отправлено: 17 Июня, 2011 - 15:54:06 • Тема: Помогите пожалуйста • Форум: Напишите за меня, пожалуйста
Ответов: 6 Просмотров: 98
Здравствуйте!
Я новичок в php. Есть задание. Надо сделать поиск по выпадающему списку. При выборе значения из списка делается запрос в базу данных.
Моя форма:
CODE (
htmlphp ):
скопировать код в буфер обмена
< form action= "search.php" method= "post" name= "f1" onsubmit= "javascript: if ((txtSearch1.value=='')||(txtSearch1.value=='Поиск...')) { return false; } else { return true; }" >
< select name= txtFields1 size= 1 method= "post" >
< option value= "ZERO" selected> -- виберiть поле --</ option>
< option value= "tit" > название</ option>
< option value= "aut" > автор</ option>
< option value= "ed" > редактор</ option>
</ select>
< input type= "text" name= "txtSearch1" size= "50" value= "" onfocus= "" >
< input type= "submit" name= "submit" value= "поиск" >
< input type= "reset" name= "reset" value= "удалить" >
<
код поиска что писал:
CODE (
htmlphp ):
скопировать код в буфер обмена
<? php
/* Соединение, выбор БД */
$query = "SELECT * FROM book WHERE UPPER(title) LIKE '%" . strtoupper ( $_POST [ 'txtSearch1' ] ) . "%'" ; if ( $k == 0) { print "<h3 align=center>По ващому запиту нічого не знайдено. Повторіть пошук" ; }
else {
/* Печать результатов в HTML */
print "Записів знайдено: <b>$k </b>" ;
print "<table class=\" forumline\" border=\" 0\" cellpadding=\" 2\" cellspacing=\" 1\" width=\" 100%\" >
<tr></tr> \n " ;
}
print "\t <tr>\n " ;
for ( $i = 1 ; $i <= 12 ; $i ++ ) { print "\t \t <td class=\" row1\" align=\" center\" valign=\" middle\" height=\" 50\" width=\" 16%\" >$line [$i ]</td>\n " ; }
print "\t </tr>\n " ;
}
print "</table>\n " ;
/* Освобождение памяти, занятой результатом запроса */
/* Закрытие соединения */
?>
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB