Hejsan, jag har en sida jag jobbar på där det finns ett antal personer som har en del information som ska visas.
Jag vill ha det så att när man trycker på ett namn så kommer infon upp om denna person
Och när jag trycker på ett annat namn ska förre personens info försvinna och näste persons komma upp.
Jag vill ha det så att detta händer på en och samma sida. inga länkar till andra sidor då dessa personer ofta byts ut eller tillkommer nya. Länkning skulle betyda mycket arbete vid personbyte.
När man trycker på "Cypher" ska infon komma upp. När man sedan trycker på nästa person i listan, "Neela" ska infon om Cypher försvinna och Neela komma upp under namnet. Just nu ligger deras info uppe hela tiden.
I din lista med personer kan du ha en if-sats där du kollar värdet på name och om det är samma som cypher då visar du denna info. Denna koll får du göra för varje person men det blir inte så jobbigt om du skriver ut personerna i en loop.
Har inte tid att skriva kod just nu, men hoppas du löser det ändå, annars finns det säkert någon annan som hinner..
Börja med att göra om detta så att du skriver ut det med hjälp av loop. Dvs hämta alla personerna från din tabell i databasen och loopa ut informationen. Sedan är det bara att göra så som jag skrev i mitt inlägg ovan för att välja vilken information som ska skrivas ut och när den ska göra det.
Okej, har testat mig fram men får det fortfarande inte att fungera. Är nog någonting jag missuppfattat.
Skulle jag göra en if-sats och i så fall kan du ge exempel? som sagt är jag ny inom php.
Jag antar att dina namn finns i någon tabell i en databas? Låt oss kalla den för Namn rätt och slätt.
//Visserligen har du dbanropen i egen fil, men i princip:
<?php
$sql = "SELECT user, info from Namn";
$res = mysql_query($sql) or die;
while ($row = mysql_fetch_array($res)) {
echo '<td height="25">
<a href="members.php?name='.$row["user"].'">'.$row["user"].'</a><br>';
if (isSet($_GET['user']) && $_GET['user'] == $row["user"])
echo $row["info"];
echo '</tr>';
}
Då får du bara ut det namn du valt, om du valt något.
<table class="content-div" border="0" cellpadding="0" cellspacing="0">
<?php
$sql = "SELECT user, info from Namn";
$res = mysql_query($sql) or die;
// Loopa ut varje användare som finns i din db-tabell oc
while ($row = mysql_fetch_array($res)) {
echo '<tr><td height="25">
<a href="members.php?name='.$row["user"].'">'.$row["user"].'</a><br>';
// Visa extra info om användaren har klickat på länken
if (isSet($_GET['user']) && $_GET['user'] == $row["user"])
echo $row["info"];
echo '</tr>';
}
?>
</table>
Det du får ändra på är $sql så att denna stämmer överens med hur din databas-tabell ser ut samt $row["someName"] så att dessa mappas mot namnen på dina kolumner i tabellen.
Du har ju uppenbarligen en klass som $database refererar till på raden
$req_user_info = $database->getUserInfo(Cypher);
Eftersom du inte visade någon kod för hur den klassen ser ut, gick det inte att göra exemplet riktigt anpassat till din kod.
Du behöver antagligen en funktion i $database som returnerar alla användare i stället för en. Se till att den returnerar $res:t i mitt exempel. Och så ska resten av koden ligga i den fil där du vill ha tabellen.
Och OBS! Compusas råd:
Compusa skrev:
Det du får ändra på är $sql så att denna stämmer överens med hur din databas-tabell ser ut samt $row["someName"] så att dessa mappas mot namnen på dina kolumner i tabellen.