Portál AbcLinuxu, 12. května 2025 05:07
function view($a){ $pole = array(); $sql = mysql_query(...); while ($row = mysql_fetch_assoc(...){ $s++; $pole[$s] = $row['id']; .... view($a){ ..... if(array_search($row['id'], $pole)){ //id v poli existuje }else{ // id v poli neexistuje } } }poradí někdo? Díky
if(array_search($row['id'], $pole)){ //id v poli existuje }else{ // id v poli neexistuje }Tento kód Vám přeci dělá to, co potřebujete. I když bezpečnější zápis by byl:
if (array_search($row['id'], $pole) === false){ //id v poli neexistuje } else { // id v poli existuje }Je to kvůli tomu, že index 0 se může vyhodnotit jako false, ale záleží na tom, jak číslujete. Viz manuál http://cz.php.net/manual/en/function.array-search.php Když upřesníte dotaz, určitě někdo odpoví.
$row['id'];
a to po každém načtení, čili když bude ve while 20 dotazu tak potřebuji
uložit do pole 20x obsah z proměnné $row['id'];
to je všechno..
Děkuji
$pole[$s] = $row['id'];
$result = mysql_query("SELECT ... WHERE (co nejvíce omezující podmínky) ..."); $pole = array(); while (($row = mysql_fetch_assoc($result)) !== FALSE) { $pole[$row['id']] = $row; } if (array_key_exists($id, $pole)) { /* id je v poli */ } else { /* id není */ }Pokud máš hodně záznamů a potřebuješ kontrolovat jen pár záznamů, udělej několikrát tohle:
$result = mysql_query("... WHERE id = ".intval(id)."..."); if (($row = mysql_fetch_assoc($result)) !== FALSE) { /* id nalezeno, $row obsahuje záznam */ } else { /* id není */ }Pokud máš hodně záznamů a potřebuješ kontrolovat povícero záznamů:
$id_list = array(1, 5, 12, ...); $result = mysql_query("SELECT COUNT(...) AS cnt " ."WHERE id IN (".join(',', array_map('intval', $id_list)).")"); if ($result && $result['cnt'] == count($id_list)) { /* všechna id přítomna */ } else { /* nějaké chybí */ }Jinak připojovat na konec pole lze jednoduše, ale index v poli nemá žádný význam (na vypsání to stačí):
$result = mysql_query("SELECT ..."); $pole = array(); while (($row = mysql_fetch_assoc($result)) !== FALSE) { $pole[] = $row; }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.