By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
449,419 Members | 1,070 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 449,419 IT Pros & Developers. It's quick & easy.

How can I get just one row from selected column?

P: n/a
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
Dec 29 '05 #1
Share this Question
Share on Google+
9 Replies


P: n/a
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:
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

Dec 29 '05 #2

P: n/a
Leszek wrote:
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


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

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
js*******@attglobal.net
==================
Dec 29 '05 #3

P: n/a
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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


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-----
Dec 29 '05 #4

P: n/a
>> while($wiersz=mysql_fetch_array($wynik,MYSQL_ASSOC ))
{
echo "<option value=$wiersz>$wiersz</option> <br />";
}


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)

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
Dec 30 '05 #5

P: n/a
Leszek wrote:
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 />";
}
}


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

Jan 3 '06 #6

P: n/a
>> 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.
Hilarion
Jan 4 '06 #7

P: n/a

"Hilarion" <hi******@SPAM.op.SMIECI.pl> wrote in message
news:dp**********@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

Jan 30 '06 #8

P: n/a

"Leszek" <le*******@poczta.onet.pl> wrote in message
news:dp**********@news.onet.pl...
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)
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
/>";

{
$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

Jan 30 '06 #9

P: n/a

"Jim Michaels" <jm******@yahoo.com> wrote in message
news:sZ********************@comcast.com...

"Hilarion" <hi******@SPAM.op.SMIECI.pl> wrote in message
news:dp**********@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


Jan 30 '06 #10

This discussion thread is closed

Replies have been disabled for this discussion.