Portál AbcLinuxu, 12. května 2025 05:07

Dotaz: jak uložit data do pole v php

5.5.2011 19:32 Antonin
jak uložit data do pole v php
Přečteno: 2136×
Odpovědět | Admin
Ahoj, už vážně nevím jak na to..

potřebuji uložit cisla do pole tak, abych pak mohl jednoduše zjistit jestli v tom poli jsou.. ale nevím jak..
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
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.5.2011 22:29 Antonin
Rozbalit Rozbalit vše Re: jak uložit data do pole v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vážně nikdo nevíte?
5.5.2011 22:57 Alf
Rozbalit Rozbalit vše Re: jak uložit data do pole v php
Spíš to bude tím, že dotaz je podivně sepsaný.
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í.
5.5.2011 23:23 Antonin
Rozbalit Rozbalit vše Re: jak uložit data do pole v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Aha, tak to se omlouvám, zkusm to líp popsat.

Potřebuji ve while uložit do nějakého pole proměnnou

$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
6.5.2011 12:36 Alf
Rozbalit Rozbalit vše Re: jak uložit data do pole v php
Dotazů nebo řádků?

Co tedy dělá tento kód? $pole[$s] = $row['id'];
6.5.2011 13:22 Sten
Rozbalit Rozbalit vše Re: jak uložit data do pole v php
6.5.2011 21:40 Kit
Rozbalit Rozbalit vše Re: jak uložit data do pole v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co takhle použít asociativní pole? Vyhledávání je pak mnohem rychlejší.
Josef Kufner avatar 7.5.2011 18:04 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: jak uložit data do pole v php
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud máš pár desítek záznamů v databázi a potřebuješ je procházet několikrát:
$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;
}
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.