|
Posted by Jim Michaels on 10/12/48 11:39
"Jim Michaels" <jmichae3@yahoo.com> wrote in message
news:sZqdnfGR7oThFEDeRVn-vQ@comcast.com...
>
> "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.
OOPS! code fix. array referenced wrong. didn't catch this until a later
post. fixed below.
>
>
> 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[$kolumna]>$wiersz[$kolumna]</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[$kolumna]>$wiersz[$kolumna]</option>\n";
} else {
echo "<!--no rows.-->";
}
>
>
>>
>>
>> Hilarion
>
>
Navigation:
[Reply to this message]
|