webForumDet fria alternativet
Logga in / Bli medlem

Skriv ut selectlista

PHP

1 svar · 374 visningar · startad av MickeA.com

Medlem sedan feb. 20034 441 inlägg
Trådstart#1

Tjena!
Jag har gjort ett mailformulär, där mottagare hämtas från en databas (ett phpBB forum).
Nu hämtar jag även rankning för dessa användare och en viss grupp.
Jag ska samla alla mottagare i en selectlista och dela upp efter rankningen.

Såhär har jag gjort:

<select name="usrRecipient">
	<option value="foo">Välj mottagare</option>
	<?php
	$sql =	"SELECT t1.group_id, t1.user_id AS group_user, t2.user_id AS user_user_id, t2.username, t2.user_email, t2.user_rank FROM phpbb_user_group t1 INNER JOIN phpbb_users t2 WHERE t1.user_id = t2.user_id AND t1.group_id = 4 ORDER BY t2.user_rank ASC";

	$exec_query = mysql_query($sql) or die("Mysql_Fel:<br />" . mysql_error());
	while($result = mysql_fetch_array($exec_query)){
		if(is_numeric($result['user_rank']) && $result['user_rank'] != 0){
			$sql1 = mysql_query("SELECT rank_title FROM phpbb_ranks WHERE rank_id = " . $result['user_rank']) or die(mysql_error());
			while($res1 = mysql_fetch_array($sql1)){
				print("<optgroup label=\"" . $res1['rank_title'] . "\"></optgroup>\n");
			}
		}
		print("<option value=\"". $result['user_email'] . "\">" . $result['username'] . "</option>\n");
	}
	?>
	</select>

Problemet är att alla optgroup skrivs ut fel. Just nu ser det ut såhär:

<optgroup label="Grupp 1"></optgroup>
<option value="1">Mottagare 1</option>

Som jag förstått det nu (enligt validatorn för 4.01), måste det se ut såhär:

<optgroup label="Grupp 1">
<option value="1">Mottagare 1</option>
</optgroup>

Så, till min fråga.
Hur ska jag göra om i koden ovan för att få "rätt" resultat.
Det är med nöd och näppe jag fått ihop ovanstående, då jag inte är någon hejjare på PHP.

Tack på förhand!

Medlem sedan juni 20006 031 inlägg
#2
<select name="usrRecipient">
    <option value="foo">Välj mottagare</option>
    <?php
    $sql =    "SELECT t1.group_id, t1.user_id AS group_user, t2.user_id AS user_user_id, t2.username, t2.user_email, t2.user_rank FROM phpbb_user_group t1 INNER JOIN phpbb_users t2 WHERE t1.user_id = t2.user_id AND t1.group_id = 4 ORDER BY t2.user_rank ASC";

    $exec_query = mysql_query($sql) or die("Mysql_Fel:<br />" . mysql_error());
    while($result = mysql_fetch_array($exec_query)){
        if(is_numeric($result['user_rank']) && $result['user_rank'] != 0){
            $sql1 = mysql_query("SELECT rank_title FROM phpbb_ranks WHERE rank_id = " . $result['user_rank']) or die(mysql_error());
            while($res1 = mysql_fetch_array($sql1)){
                print("<optgroup label=\"" . $res1['rank_title'] . "\">\n");
            }
        }
        print("<option value=\"". $result['user_email'] . "\">" . $result['username'] . "</option>\n");
    }
    ?>
    </optgroup>
    </select>
264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)