Autor Zpráva
JoK1955
Profil *
Zdravím všechny
Můžete mi, pls, někdo poradit s následujícím:

Potřebuji z tabulky vytáhnout a uspořádat data pro select formuláře. Nevím jak to udělat jedním krokem v SELECT a tak jsem si napsal fci. Vstupy jsou různé a předávám je jako jednu proměnnou. Fce vypadá takto:

function _DataSelect($indata)  {			

	list($one, $dva, $tri) = explode(",",$indata);
	$Sql="SELECT $one, $dva FROM $tri ORDER BY $dva ASC";
//	$Sql= "SELECT id, firma FROM nfirmy";

echo $Sql;

	$result = MySql_Query($Sql);		
   $DataSelect= array();
echo $dva;
	while($outpole = mysql_fetch_array($result)) :

echo $outpole[$one];
echo $outpole[$dva]."xxx";
echo $outpole[jmeno]."ooo";
		$key = $outpole[$one];
		$val = $outpole[$dva];
		$DataSelect[$key] = $val;
	endwhile;							

	return $DataSelect;
}



a tohle mi vypise:
SELECT id, jmeno FROM registrovany ORDER BY jmeno ASC jmeno5xxxARCHIVooo45xxxHanka Tučkováooo38xxxJosefooo40xxxJosefooo


$outpole[$dva] prostě nic nevypíše... POradíte? Díky JoK
Tori
Profil
JoK1955:
Nemohla být v parametru mezera za čárkou ("id, jmeno, registrovany")? Bylo by lepší ty tři hodnoty předávat jako tři samostatné parametry. A když používáte mysql_fetch_array, můžete využít toho, že výsledky jsou dostupné i pod číselnými indexy (pro výběr ze spojení tabulek, kde zadáte tab.sloupec by to bylo jediná použitelná možnost).
JoK1955
Profil *
Tori:Mezery za čárkou byly, ale nic se nezměnilo... fungují číselné indexy - to mě nenapadlo :-(
Ale proč nejde textový?
Děkuji moc a hezký večer JoK
Tori
Profil
JoK1955:
Ale proč nejde textový?
Protože s mezerami se dostanete v prooměnné $dva řetězec
" jmeno"
Proto bych použila tři samostat.parametry, bude to méně náchylné na podobné chyby.
edit: a zapněte si aspoň na localhostu zobrazování chyb - tohle vám mělo hlásit "Notice: undefined index" na ř. 15 a 18 toho kódu
JoK1955
Profil *
Tori:
Rozumím... ale kontroloval jsem a mezera tam nebyla :-) Nicméně jsem teď zkusil přidat trim a běží to i se string indexem
	while($outpole = mysql_fetch_array($result)) :
		$key = $outpole[0];
//		$val = $outpole[1];
		$val = $outpole[trim($dva)];
		$DataSelect[$key] = $val;
	endwhile;							


Samostatné parametry jsou určitě lepší, ale tady mi vyhovuje jeden string (ona mě pak hnala už zvědavost proč to nejde :-)
Hlášky bych si měl v takovýchto případech zapnout plné, NOTICE mám stand vypnuté

Díky JoK

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