Problem med sessioner...

PHP

0 svar · 178 visningar · startad av GrodanBoll

Medlem sedan sep. 2001788 inlägg
Trådstart#1

Hej hej

Jag har gjort en funktion som inte fungerar klockrent.
Den fungerar på så sätt att den utgår från en sessionsarray (som funkar bra) som innehåller spelarid, sen slår den upp informationer om spelaren i databasen (om sessionsarrayn innehåller något). Denna information lopar den sedan ut i en tabell.
Problemet blir ibland, inte alltid, då den inte hittar rätt spelarinfo iförhållande till sessionsarrayid.
D.v.s. i denna kodbiten:

if ($_SESSION['session_avd_medlId'][$i] == $rowMedl['medlId'])

Utan ibland så lägger den upp samma namn flera gånger efter varandra.

'Hela' kodbiten:

				// LAJNA UPP medlemmarna från sessionsarrayn
					echo "<table width=\"550\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\">";
					// loopar ut från sessionvariablerna
						// ta fram alla spelarna som e med i session_avd_medlId ur databasen
							// vi kollar dock först så att det finns någe data i arrayn 'session_avd_medlId', annars blir sqlfrågan nedan fel
								if (count($_SESSION['session_avd_medlId']) > 0)
								{
									$query =	"SELECT m.medlId, m.medlFornamn, m.medlEfternamn FROM tblmedlem m INNER JOIN tblavdelningmedlem am ON m.medlId = am.medlId WHERE m.medlId IN (".implode(',',$_SESSION['session_avd_medlId']).") ORDER BY m.medlEfternamn";
									$resultMedl = mysql_query($query) or die("Query failed: ".$query."<br />\n<b>Fel</b>: ".mysql_error());
								}
															
							for ($i = 0; $i < (count ($_SESSION['session_avd_medlId'])); $i++)
							{
								// först ska jag leta fram förnamn och efternamn för detta index medlId
									while ($rowMedl = mysql_fetch_array($resultMedl))
									{
										if ($_SESSION['session_avd_medlId'][$i] == $rowMedl['medlId'])
										{
											$medlId = $rowMedl['medlId'];
											$fornamn = $rowMedl['medlFornamn'];
											$efternamn = $rowMedl['medlEfternamn'];
										}
									}
									// vi kollar dock först så att det finns någe data i arrayn 'session_avd_medlId'
										if (count($_SESSION['session_avd_medlId']) > 0)
										{
											mysql_data_seek($resultMedl, 0);
										}
								
								echo "<tr>\n";
								echo "<td witdh=\"150\" valign=\"top\"><a href=\"medlem.php?action=show&medlId=".$_SESSION['session_avd_medlId'][$i]."\">".$fornamn." ".$efternamn."</a> [".$medlId."]</td>\n";
								echo "<td witdh=\"150\" valign=\"top\">".$_SESSION['session_avd_avdmedlTyp'][$i]."</td>\n";
								echo "<td witdh=\"200\" valign=\"top\">".stripslashes ($_SESSION['session_avd_avdmedlBeskrivning'][$i])."&nbsp;</td>\n";
								echo "<td width=\"50\" valign=\"top\" align=\"right\" class=\"notistext\"><a href=\"medlem.php?action=editeraavdmedlavd&avdId=".$_REQUEST['avdId']."&submit=editeraavdmedlavdDel&i=".$i."\">radera</td>\n";
								echo "</tr>\n";
							}
							// vi kollar dock först så att det finns någe data i arrayn 'session_avd_medlId', annars genererar kommandot nedan en varning
								if (count($_SESSION['session_avd_medlId']) > 0)
								{
									mysql_free_result($resultMedl);
								}
					echo "</table>";

Hade varit sketatacksam för någe svar, jag fattar inte varför det strular... :q

Sorry för alla indragen oxå, hoppas att det funkar att läsa ändå.

/Grodan :)

394 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
128 ms — hämta statistik (db)
138 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)