Portál AbcLinuxu, 8. listopadu 2025 13:36
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.