Sign in to follow this  
Followers 0
Fokebox

Выборка MySQL запроса по определённому критерию php

3 posts in this topic

Друзья помогите пожалуйста добить код ... он рабочий, но как только я вставляю критерий отбора он работает некорректно

В общем суть кода такая, он формирует список из БД по пределённым критериям из БД по принципу myfile.php&rooms=1&location=Moscow + делает постраничный вывод результатов

но вот появиласт нужда внутри сделать выборку по стране и не хочется чтобы это как-то отображалось в ссылку типа &country=russia, а именно внутри кода работала фича "WHERE `country` = 'Russia'"

Я так

<?php
	$available_params = array("status", "need", "location", "rooms"); // для начала обойдемся двумя полями
	$params = array(); // массив значений для запроса
	
	// прочесываем GET-параметры
	foreach ($available_params as $name)
	{
		if (!empty($_GET[$name]))
		{
			$value = $_GET[$name];
			// загоняем встреченные значения в массив для WHERE и в массив для линков пейджера
			$where[] = sprintf("`%s` = '%s'", $name, mysql_real_escape_string($value));
			$param[] = sprintf("%s=%s", $name, $value);
		}
	}
	
	// формируем из массива WHERE-конструкцию для запроса
	$where = empty($where) ? "" : "WHERE " . implode(" AND ", $where);
	// формируем из второга массива get-параметры для линков пейджера
	$param = empty($param) ? "" : implode("&", $param);
?>


<?php
	/*
		Place code to connect to your DB here.
	*/
	include('connect.php');	// include your code to connect to DB.

	$tbl_name="";		//your table name
	// How many adjacent pages should be shown on each side?
	$adjacents = 3;

	/*
	   First get total number of rows in data table.
	   If you have a WHERE clause in your query, make sure you mirror it here.
	*/
	$where = "WHERE `country` = 'Russia'";
	$query = "SELECT COUNT(*) as num FROM poisk $where";
	$total_pages = mysql_fetch_array(mysql_query($query));
	$total_pages = $total_pages[num];

	/* Setup vars for query. */
	$targetpage = "buy.php"; 	//your file name  (the name of this file)
	$limit = 20; 								//how many items to show per page
	$page = intval($_GET['page']);
	if($page)
		$start = ($page - 1) * $limit; 			//first item to display on this page
	else
		$start = 0;								//if no page var is given, set start to 0

	/* Get data. */
	$sql = "SELECT id, status, need, rooms, location FROM poisk $where ORDER BY id DESC LIMIT $start, $limit ";
	$result = mysql_query($sql);

собственно я добавил эту 38 строку $where = "WHERE `country` = 'Russia'"; ... код работает, но другие критерии обозначенные в ссылке не работает и выдаёт все результаты с параметром `country` = 'Russia'"

 

Буду признателен за помощь!

Share this post


Link to post
Share on other sites
$where .= " AND `country` = 'Russia'";

спасиб, вроде пашет ))) - не подумал, что надо через "И"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.