Autor Zpráva
noname
Profil *
Ahoj,

poradí prosím někdo, jak můžu v tomto while ještě načíst data do pole které bych pak mohl podmínkou kontrolovat?

$sql = mysql_query("SELECT * FROM `oblast` WHERE `kraj` = '1'");
while ($row = mysql_fetch_assoc($sql)) {
echo $row['kraj'];
}


Děkuji pěkně za pomoc
noname
Profil *
Ještě doplním, že potřebuji kontrolovat všechny id, pokud se data z id už načetla tak aby se nenačetla znova, třeba se to dělá jinak pomocí nějaké fci v php.. Děkuji
ShiraNai7
Profil
$sql = mysql_query("SELECT * FROM `oblast` WHERE `kraj` = '1'");
$data = array();
while ($row = mysql_fetch_assoc($sql)) {
  $data[] = $row;
}


nebo spíš tedy:

$sql = mysql_query("SELECT * FROM `oblast` WHERE `kraj` = '1'");
$data = array();
while ($row = mysql_fetch_assoc($sql)) {
  $data[$row['id']] = $row;
}


Pak stačí testovat:
isset($data[id]);
Ben
Profil *
Nechápu přesně co chceš. Spíš myslíš toto?
foreach
noname
Profil *
Mám celý kód jako funkci a v ní vnořenou funkci která volá sama sebe

function ukaz($co){

$sql = mysql_query("SELECT * FROM `oblast` WHERE `kraj` = '".$co."'");
while ($row = mysql_fetch_assoc($sql)) {

if ($row['kraj'] == $row['kde']){
echo $row['kraj'] . "aktivni";
echo ukaz($row['kraj']);
} else {
echo $row['kraj'];
}
}
}


problém je ale v tom, že se data vypisují víckrát, respektivní tolikrát, kolik je úrovní. A já potřebuji všechno načíst do pole a kontrolovat jestli v tom poli to ide už není, pokud je, tak aby se řádek nevypisoval.


ShiraNai7:
s tím scriptem co jsi sem pastnul je to úplně stejný jako bez něho.. :(
ShiraNai7
Profil
noname:
Vyzkoušej, netestováno:
function ukaz($co)
{

	// priprava cache
	static $cache = array();

	// nacteni dat
	if(!isset($cache[$co])) {
		$cache[$co] = array();
		$sql = mysql_query('SELECT * FROM `oblast` WHERE `kraj` = \''.mysql_real_escape_string($co).'\'');
		while($row = mysql_fetch_assoc($sql)) $cache[$co][] = $row;
	}

	// vypisuj
	for($i = 0; isset($cache[$co][$i]); ++$i) {
		if($cache[$co][$i]['kraj'] === $cache[$co][$i]['kde']) {
			echo $cache[$co][$i]['kraj'].'aktivni';
			ukaz($cache[$co][$i]['kraj']);
		} else  echo $cache[$co][$i]['kraj'];
	}

}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0