| 
	
 | 
 Posted by Jim Michaels on 06/13/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] 
 |