Autor | Zpráva | ||
---|---|---|---|
Dave- Profil * |
#1 · Zasláno: 4. 9. 2007, 18:41:25
Ahoj, mám potíže s následujícím skiptem :
$count=substr_count($row['numb'], "&"); V $row['numb'] jsou uložená čísla rozdělená &. Ty pomocí explode rozdělím a tahám z db info o uživatelích, jejichž id se nachází v $ex[$i]. Toto funguje bez potíží. Problém nastává při změně sql dotazu na WHERE id!='{$ex[$i]}'"; Toto vypíše uživatele jejichž info není v $ex[$i], bohužel ne pouze jednou, ale tolikrát, kolik je $count. Příklad: v $ex[$i] je id uživatelů Pepa a Honza. Při použití prvního se vypíše Pepa - Honza. V db jsou ještě uživatelé Václav a Jirka, ty chci vypsat v druhém sql dotazu, dopadne to ale takto: Václav-Jirka-Václav-Jirka. Já však potřebuju vypsat info pouze jednou. Díky |
||
bukaj Profil |
#2 · Zasláno: 4. 9. 2007, 19:09:37
Dave-
Zbytečné plýtvání dotazy na databázi. Vygeneruj pouze jeden dotaz: $ex=explode("&", $row['numb']); $rovnase = FALSE; //pokud se mají vybrat uživatelé odpovídající id TRUE jinak FALSE foreach($exas $klic => $hodnota) $ex[$klic] = 'id ' . ($rovnase ? '=' : '!=') . ' ' . (is_null($hodnota) ? '0' : $hodnota); $sql = 'SELECT * FROM user WHERE ' . ($rovnase ? implode(' OR ', $idcka) : implode(' AND ', $idcka)); ... |
||
Dave- Profil * |
#3 · Zasláno: 4. 9. 2007, 21:06:54
Diky, ale ja bych potreboval vybrat pouze ty zaznamy, kde idcko neni v db. Tohle vybira, pokud jsem ten kod dobre pochopil, vsechno. Kazdopadne je to pro me dost komplikovany, mohl bys mi to prosim zmenit jen pro ty urcite zaznamy?
|
||
Kajman_ Profil * |
#4 · Zasláno: 4. 9. 2007, 21:13:07
Zkuste & nahradit za čárku a použít
where id in (1,2,3) where id not in (1,2,3) |
||
Dave- Profil * |
#5 · Zasláno: 4. 9. 2007, 23:18:24
Kajman_
Dík |
||
Časová prodleva: 17 let
|
0