Użycie tablicy w zapytaniu Mysql

0

Oczywiście nie mam problemu w użyciu samej tablicy w zapytaniu. Problem pojawia mi się wtedy kiedy mam użyć tą tablicę dla sprecyzowania zapytania mysql. Pokaże to na przykładzie:


$zapytanie = "SELECT * FROM `produkty` WHERE  id = $tablica[0]";
$idzapytania= mysql_query($zapytanie);

Załóżmy że znam liczbę elemntów w tablicy i są one dwa wtedy aby otrzymać to w jedenej zmiennej $idzapytania wystarczyłoby zrobić tak:

	$zapytanie = "SELECT * FROM `produkty` where id = $tablica[0] || id = $tablica[1]";
	$idzapytania= mysql_query($zapytanie);

Wszystko działa oczywiście, tylko co zrobić gdy elementów w tablicy mam wiele (niewiadomą ilość), a chcę cały wynik zwrócić w jednej zmiennej $idzapytania?.

0

Chyba mi się udało zrobić : )

$tab_pro =explode('/', '5/6/7');
				$ile = count($tab_pro);
					$lacznik ='';
					for ($i=0; $i <$ile; $i++)
					   {
					   	if($ile == $i+1){
						$lacznik.='id = '.$tab_pro[$i];}
						else{
					    $lacznik.='id = '.$tab_pro[$i].' || ';}
					   }
					   
				   	$zapytanie = "SELECT * FROM `produkty` where $lacznik";
				   	$idzapytania= mysql_query($zapytanie);

Jeżeli ktoś ma bardzie profesjonalny pomysł to pisać : )

2
$tab_pro =explode('/', '5/6/7');
$where='id IN ('.implode(',', $tab_pro).')';
$zapytanie="SELECT * FROM `produkty` WHERE $where";

IN jest dużo lepsze niż mnóstwo ORów...

0

Pomysły ? Oczywiście. Wyrzucić mysql i zacząć używać:
http://php.net/manual/en/book.mysqli.php
lepiej jednak:
http://php.net/manual/en/book.pdo.php

1
//fake array
$array = array();
$array[0] = 1;
$array[1] = 2;
$array[2] = 3;

// Undefined variable $in
$in = "";

foreach($array as $key => $value) $in .= $value.', ';
$in = substr($in, 0, strlen($in)-2);

$query = "SELECT * FROM `produkty` WHERE `uid` IN($in)";
$result = mysql_query($query);

Świetnie sprawdzi się, gdy nie wiemy ile elementów ma tablica. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1