Voor een script sla ik 20 gebruikersnamen op in een database m.b.v serialize en unserialize deze informatie haal ik dan weer op door deze in arrays te zetten en zo weer te geven op mijn site.

Nu heb ik 1 en ander gewijzigd en nu is het noodzakelijk dat de userids worden opgeslagen ipv de gebruikersnamen, maar toch wil ik de gebruikersnaam weergeven bij het desbeteffend id van die gebruiker.

Kan iemand mij een simpel opweghelpvoorbeeldje ( nieuw galgje woord ;-) ) laten zien hoe dit te doen. Derest pluis ik zelf wel weer uit.
Ik snap je vraag niet helemaal. Wil je nu een relatie leggen tussen user_id en gebruikers naam? Dit lijkt mij niet helemaal de bedoeling.
De gangbare manier is om een tabel te maken met gebruikers.

Bijvoorbeeld een tabel "users"
met deze kolommen:

- user_id (auto_increment)
- name
- age
- email
- password

"user_id" kun je dan gebruiken in andere tabellen om een ralatie met een gebruiker aan te geven.
<?php
$sql = "SELECT username FROM tabel WHERE id = ".$user_id." LIMIT 0,1;";
?>
meer in de zin van;

Ik sla een 20-tal gebruiker-id's op in de database.

Die haal ik weer op door ze in een array te zetten.

Nu gebruik ik het gebruikersid om een link naar desbetreffend gebruikersprofiel te leggen (dus Bv.profiel.php?userid=1200)


Ik wil dus kort gezegd deze 20 gebruiker-id's welke opgeslagen staat in tabelx ophalen en deze koppelen aan de gebruikersnaam in het tabel users

Wat ik nu zichtbaar heb is;

"<a href='profile.php?lookup=$array[2]'> - $array[2]</a><br>

Nu krijg ik dus ook het gebruikers-id als naam te zien, wat ik wil is dus op de plaats van de tweede $array[2] een gebruikersnaam zichtbaar. omdat dit nummer opgeslagen staat in een apart tabel moet dit nummer dus eerst "opgezocht worden uit het leden tabel..maar hoe ik dit het beste moet aanpakken is me momenteel even een raadsel.

Hopelijk is het nu wat duidelijk>?!
Kan allemaal met SQL.


SELECT
	a.gebruikersnaam AS gebruikersnaam,
	b.id AS id
FROM tabelx a, users b
WHERE a.id = b.id;


Edit:
Maar ik verwacht dat je al een quert hebt om je data op te halen (iets meer dan SELECT * FROM tabel), dus geef je query eens, dan kunnen we verder kijken.
Zo gaat het bij mij dus in zijn werk...

$query = "SELECT laatste5 FROM users WHERE user_id='$login_info'"; 
$res = mysql_query($query) or die("database fout"); 

while ($uitlezen = mysql_fetch_object($res)) 
{ 

$array = unserialize($uitlezen->laatste5);

echo"<a href='profile.php?lookup=$array[0]'>$array[0]</a><br>
<a href='profile.php?lookup=$array[1]'>$array[1]</a><br>
<a href='profile.php?lookup=$array[2]'>$array[2]</a><br>
";

}


edit;
De link naar het profiel is dus goed, Alleen wil ik tussen de <a> </a> een profielnaam weergeven die bijbehorende naam dus d.m.v. de opgeslagen gebruikersid (uit de array) ophaalt uit de tabel users


SELECT
laatste5,
username
FROM
users
WHERE user_id='".$login_info."'

Gewoon username meenomen in de query, verder is het makkelijker om mysql_fetch_assoc te gebruiken.
Ik zal jouw script even ombouwen voor je.
Maar je hebt trouwens je database niet goed opgebouwd, je stopt een array in een veld. Dat zijn dingen die je met SQL gewoon goed kan opvragen.

SELECT titel, datum FROM berichten WHERE auteur = 'Jantje' ORDER BY datum DESC LIMIT 0,5;

Zo krijg je de laatste 5 berichten van Jantje te zien.
Ik denk dat wat jij wil zo moet werken:

<?php
$query = "
	SELECT 
		laatste5,
		username 
	FROM users 
	WHERE user_id='".$login_info."'"; 
$res = mysql_query($query) or die('database fout:'.mysql_error()); 

while ($uitlezen = mysql_fetch_assoc($res)) 
{ 

$array = unserialize($uitlezen['laatste5']);

echo '	Laatste 5 van: '.$uitlezen['username'].'
		<a href="profile.php?lookup='.$array[0].'">'.$array[0].'</a><br>
		<a href="profile.php?lookup='.$array[1].'">'.$array[1].'</a><br>
		<a href="profile.php?lookup='.$array[2].'">'.$array[2].'</a><br>
		<a href="profile.php?lookup='.$array[3].'">'.$array[3].'</a><br>
		<a href="profile.php?lookup='.$array[4].'">'.$array[4].'</a><br>';

}
?>
Ik denk dat je me nog niet helemaal goed begrijpt.

Het zit zo. Wanneer een gebruiker (x) een profiel bekijkt van (y), word het id-nummer van gebruiker (x) opgeslagen in de database van gebruiker (y) Zodat gebruiker (y) kan zien wie er op zijn profiel is geweest.

In bovenstaande code werkt dat inderdaad ook prima met het uitlezen van de gebruiker-id's, alleen word er nu een id opgehaald i.p.v de gebruikersnaam. Ik wil dus de opgeslagen id omzetten in een gebruikersnaam, voorheen bij een ander systeem sloeg ik i.p.v het gebruikersid, de naam gelijk op en had ik geen problemen.

Aangezien er 20 gebruikerid's opgeslagen zitten in 1 veld (vandaar gebruik van array's anders zou ik ook 20 velden moeten aanmaken in de database en dat leek me een beetje teveel van het goede) die id's moeten omgezet worden in gebruikersnamen en daar kom ik even niet uit.


<a href="profile.php?lookup='.$array[4].'">Hier moet bijbehoren gebruikersnaam staan van het id opgeslagen in array[4]</a>


Ja ik weet het, het is moeilijk te verwoorden zo...

Misschien dat het nu weer iets duidelijker is.

Ik snap het nu wel denk ik.
Maar daarvoor moet je of een 2e query maken, of je database omgooien. Ik prefereer het tweede.

Jouw database ziet er nu zo uit:

users
-------
userid	naam	email				laatste5
--------------------------------------------------------
1		Jantje	[email protected]	1,67,2,75,87

Maar dit is stukken handiger:

users
-------
userid	naam	email
-----------------------------------------------
1		Jantje	[email protected]
2		Kees	[email protected]
3		Piet	[email protected]

laatste
--------
user_id	datumtijd
-----------------------------------------------
1		2006-07-28 11:22:15
2		2006-07-29 00:48:15
1		2006-07-29 04:10:15
3		2006-07-29 13:14:15
3		2006-07-29 13:14:15
2		2006-07-29 13:14:15
2		2006-07-29 13:14:15
1		2006-07-29 13:14:15
2		2006-07-29 13:14:15
3		2006-07-29 13:14:15


Je kan dan zo je gegevens ophalen

<?php
$sql = "
SELECT
	a.naam AS naam,
	b.user_id AS id,
	DATE_FORMAT(b.datumtijd, '%d-%m-%y %H:%i') AS datum
FROM users a, laatste b
WHERE a.user_id = b.user_id
	AND b.user_id = ".$idvanprofieleigenaar."
ORDER BY b.datumtijd DESC
LIMIT 0,5";
if(!$res = mysql_query($sql))
{
	echo 'Er is een fout opgetreden: '. mysql_error();
}
else
{
	if(mysql_num_rows($res) == 0)
	{
		echo 'Er zijn nog geen bezoekers geweest';
	}
	else 
	{
		while($row = mysql_fetch_assoc($res))
		{
			echo '<a href="profile.php?lookup='.$row['id'].'">'.$row['naam'].'</a>';
		}
	}
}
?>


Als het goed is krijg je nu een lijstje van 5 namen met in de url het id van de personen die het profiel als laatst hebben bezocht.

Als iemand nu op een profiel komt, heb je een simpele INSERT:

INSERT INTO laatste (".$aanwezig_lid_id.",NOW())


Edit
Even vergeten dat je geen UBB in codeblokken kan gebruiken...
Ho, ik ben een ding vergeten. In de tabel laats moet uiteraard wel aangegeven worden welke profiel hij bezocht heeft :)

Ik ben even met een voorbeeldje bezig...

Edit
Voorbeeld
Hier heb ik een voorbeeldje gemaakt. Je bent steeds 'ingelogd' met een random gebruiker. Dan wordt de tabel laatste geupdate om het lijstje van de andere profielen correct te maken.
Daarna haal ik de lijst van het op dit moment bezochte profiel (klik op een naam of verander de user_id in de URL om ander profiel te krijgen. (Heb in database maar 3 'leden' staan op dit moment)
Dan worden de linken gemaakt, met desbetreffende ID van de laatste bezoekers.

Reageren