vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| 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 |
| |||
| 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 > > |
| |||
| 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. jstucklex@attglobal.net ================== |
| |||
| 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 |
| |||
| >> 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 |
| |||
| "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 |
| |||
| "Leszek" <leszekt80@poczta.onet.pl> wrote in message news:dp0v53$b4r$1@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 > > |
| ||||
| "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 > > |