Connecting Tech Pros Worldwide Forums | Help | Site Map

How can I get just one row from selected column?

Leszek
Guest
 
Posts: n/a
#1: Dec 29 '05
Hi.
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 />";
}
}

<select name="$hname">
<option value="*" selected >All</option>
<?php
pobierz_wszystko('hotel','hotel_nazwa');
?>
</select>


But it doesn't work properly because I'm getting a dropdown list with
All,and Array,Array,Array,Array,Array
Instead of Array I'd like to have a value from a row.

Is it because I'm using mysql_fetch_array($wynik,MYSQL_ASSOC)?
or maybe the query is wrong?

Thanks
Leszek



Dikkie Dik
Guest
 
Posts: n/a
#2: Dec 29 '05

re: How can I get just one row from selected column?


If you use mysql_fetch_array($wynik,MYSQL_NUM)
you can write $wiersz[0] to access the value.
Also, if the value contains spaces, your option HTML will probably not
work as expected.

Leszek wrote:[color=blue]
> Hi.
> 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 />";
> }
> }
>
> <select name="$hname">
> <option value="*" selected >All</option>
> <?php
> pobierz_wszystko('hotel','hotel_nazwa');
> ?>
> </select>
>
>
> But it doesn't work properly because I'm getting a dropdown list with
> All,and Array,Array,Array,Array,Array
> Instead of Array I'd like to have a value from a row.
>
> Is it because I'm using mysql_fetch_array($wynik,MYSQL_ASSOC)?
> or maybe the query is wrong?
>
> Thanks
> Leszek
>
>[/color]
Jerry Stuckle
Guest
 
Posts: n/a
#3: Dec 29 '05

re: How can I get just one row from selected column?


Leszek wrote:[color=blue]
> Hi.
> 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 />";
> }
> }
>
> <select name="$hname">
> <option value="*" selected >All</option>
> <?php
> pobierz_wszystko('hotel','hotel_nazwa');
> ?>
> </select>
>
>
> But it doesn't work properly because I'm getting a dropdown list with
> All,and Array,Array,Array,Array,Array
> Instead of Array I'd like to have a value from a row.
>
> Is it because I'm using mysql_fetch_array($wynik,MYSQL_ASSOC)?
> or maybe the query is wrong?
>
> Thanks
> Leszek
>
>[/color]

http://www.php.net/manual/en/functio...etch-array.php

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Iván Sánchez Ortega
Guest
 
Posts: n/a
#4: Dec 29 '05

re: How can I get just one row from selected column?


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Leszek wrote:
[color=blue]
> while($wiersz=mysql_fetch_array($wynik,MYSQL_ASSOC ))
> {
> echo "<option value=$wiersz>$wiersz</option> <br />";
> }[/color]

Try something like

$value = $wiersz[$kolumna];
echo "<option value='$value'>$value</option> <br />";

(remember to enclose the value parameter of the <option> tag in quotes, or
your XHTML code will be invalid)

- --
- ----------------------------------
Iván Sánchez Ortega -i-punto-sanchez--arroba-mirame-punto-net

Un ordenador no es un televisor ni un microondas, es una herramienta
compleja.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFDtBgq3jcQ2mg3Pc8RAlVWAJ9iY0kHAQjAkLrG8QStj2 v3dLLKQACeKV5i
7kYsmBjlAT92TX1ejcCcpqw=
=ehjI
-----END PGP SIGNATURE-----
Hilarion
Guest
 
Posts: n/a
#5: Dec 30 '05

re: How can I get just one row from selected column?


>> while($wiersz=mysql_fetch_array($wynik,MYSQL_ASSOC ))[color=blue][color=green]
>> {
>> echo "<option value=$wiersz>$wiersz</option> <br />";
>> }[/color]
>
> Try something like
>
> $value = $wiersz[$kolumna];
> echo "<option value='$value'>$value</option> <br />";
>
> (remember to enclose the value parameter of the <option> tag in quotes, or
> your XHTML code will be invalid)[/color]


To make sure it's valid, you should also use "htmlspecialchars"
function (if you use double-quotes around attribute values,
then you do not have to specify the second parameter for this function,
but if you use single-quotes - as in the example above - then you
should specify that "htmlspecialchars" should also escape single-quotes).


Hilarion
Gazelem
Guest
 
Posts: n/a
#6: Jan 3 '06

re: How can I get just one row from selected column?


Leszek wrote:[color=blue]
> Hi.
> 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 />";
> }
> }[/color]

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.

-Dave



Hilarion
Guest
 
Posts: n/a
#7: Jan 4 '06

re: How can I get just one row from selected column?


>> How can I get just one row from selected column and put it into html[color=blue][color=green]
>> 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 />";
>> }
>> }[/color]
>
> 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.[/color]


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.


Hilarion
Jim Michaels
Guest
 
Posts: n/a
#8: Jan 30 '06

re: How can I get just one row from selected column?



"Hilarion" <hilarion@SPAM.op.SMIECI.pl> wrote in message
news:dpgdhj$t9k$1@news.onet.pl...[color=blue][color=green][color=darkred]
>>> 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 />";
>>> }
>>> }[/color]
>>
>> 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.[/color]
>
>
> 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.[/color]


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.-->";
}

[color=blue]
>
>
> Hilarion[/color]


Jim Michaels
Guest
 
Posts: n/a
#9: Jan 30 '06

re: How can I get just one row from selected column?



"Leszek" <leszekt80@poczta.onet.pl> wrote in message
news:dp0v53$b4r$1@news.onet.pl...[color=blue]
> Hi.
> 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)[/color]

you are referencing the array wrong. it should be $wiersz[$kolumna] when you
want to extract data from the column.
echo "<option value=$wiersz[$kolumna]>$wiersz[$kolumna]</option> <br
/>";

[color=blue]
> {
> $zapytanie="SELECT $kolumna FROM $tabela";
> $wynik=mysql_query($zapytanie);
> while($wiersz=mysql_fetch_array($wynik,MYSQL_ASSOC ))
> {
> echo "<option value=$wiersz>$wiersz</option> <br />";
> }
> }
>
> <select name="$hname">
> <option value="*" selected >All</option>
> <?php
> pobierz_wszystko('hotel','hotel_nazwa');
> ?>
> </select>
>
>
> But it doesn't work properly because I'm getting a dropdown list with
> All,and Array,Array,Array,Array,Array
> Instead of Array I'd like to have a value from a row.
>
> Is it because I'm using mysql_fetch_array($wynik,MYSQL_ASSOC)?
> or maybe the query is wrong?
>
> Thanks
> Leszek
>
>[/color]


Jim Michaels
Guest
 
Posts: n/a
#10: Jan 30 '06

re: How can I get just one row from selected column?



"Jim Michaels" <jmichae3@yahoo.com> wrote in message
news:sZqdnfGR7oThFEDeRVn-vQ@comcast.com...[color=blue]
>
> "Hilarion" <hilarion@SPAM.op.SMIECI.pl> wrote in message
> news:dpgdhj$t9k$1@news.onet.pl...[color=green][color=darkred]
>>>> 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.[/color]
>>
>>
>> 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.[/color][/color]


OOPS! code fix. array referenced wrong. didn't catch this until a later
post. fixed below.
[color=blue]
>
>
> 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!)[/color]
$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++;
}[color=blue]
>
> 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.[/color]
$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.-->";
}[color=blue]
>
>[color=green]
>>
>>
>> Hilarion[/color]
>
>[/color]


Closed Thread