|
Posted by Jim Michaels on 10/13/24 11:38
"Hilarion" <hilarion@SPAM.op.SMIECI.pl> wrote in message
news:dpgdhj$t9k$1@news.onet.pl...
>>> How can I get just one row from selected column and put it into html
>>> dropdown list
>>> I tried like this:
>>>
>>> function pobierz_wszystko($tabela,$kolumna)
>>> {
>>> $zapytanie="SELECT $kolumna FROM $tabela";
>>> $wynik=mysql_query($zapytanie);
>>> while($wiersz=mysql_fetch_array($wynik,MYSQL_ASSOC))
>>> {
>>> echo "<option value=$wiersz>$wiersz</option> <br />";
>>> }
>>> }
>>
>> The query is wrong among other things.
>>
>> proper: Select $kolumna from $tabela limit 1
>>
>> You can also use an offset, reference the manual at
>> http://dev.mysql.com/doc/refman/4.1/en/select.html
>>
>> Another thing is, if you are *always* going to want just one result, not
>> only should you use the proper select, but you should also limit your
>> code to only ask for 1 result:
>>
>> $wynik=mysql_query($zapytanie);
>> $wiersz=mysql_fetch_array($wynik,MYSQL_ASSOC)
>> echo "<option value=$wiersz>$wiersz</option> <br />";
>>
>> notice the lack of using a "while" statement, which is not appropriate
>> for 1 result queries.
>
>
> I think that Leszek wanted to ask "how can I get just one COLUMN from...",
> in which case LIMIT clause will not be what he looks for.
> As others explained - Leszek used the PHP mysql functions output in
> a wrong way, and it had nothing to do with SQL syntax.
Actually, he wanted "just one row from a selected column". If he was
speaking about a *particular* row, I would suggest a WHERE clause (SELECT
$kolumna FROM $tablea WHERE id=5), or a counter+if approach.
I am not sure exactly what it is he is trying to do.. maybe trying to pick
out a row to put a SELECTED attribute on the <option> on or something?
(speak up!)
$count=1;
while($wiersz=mysql_fetch_array($wynik,MYSQL_ASSOC))
{
echo "<option value=$wiersz>$wiersz</option> <br />";
if (4==count) {
do something here
}
$count++;
}
the problem with this is, how are you going to guarantee that there will
always be more than 4 rows, if this is what he is really asking?
And if he is wanting just the first row from a SELECT, yeah, a LIMIT 1 would
be good to append on the statement. but I would suggest the following code
below in case you get no rows (you can drop the else part if you want):
He should remove the <br /> tag out of the <select></select> area - it
should not be beside an <option> tag. it's illegal - it will really mess
things up for the browser and you may get inconsistent cross-browser
renderings. I think maybe what he was trying for was \n instead, which the
browser ignores, but looks good when viewing code.
$wynik=mysql_query($zapytanie);
if ($wiersz=mysql_fetch_array($wynik,MYSQL_ASSOC)) {
echo "<option value=$wiersz>$wiersz</option>\n";
} else {
echo "<!--no rows.-->";
}
>
>
> Hilarion
[Back to original message]
|