Denna fråga berör både PHP och MySQL men tonvikten på problemet tror jag ligger i PHP så därför postar jag den här.
Hur som helst så har jag ett synnerligen märkligt problem. Jag ska hämta ut ett användarnamn tillsammans med ett memberID som jag sedan skall göra en länk ut av. Namnet får jag ut korrekt. Dock skrivs aldrig memberID-informationen ut.
PHP-koden och MySQL-frågan ser ut som följer:
function showActiveMemberUser() {
$sqlSelect = "SELECT t2.memberID, t2.username, t1.activity, DATE_FORMAT(t1.date_time, '%H:%i') AS datetime FROM tblonline AS t1, tblmember AS t2 WHERE t1.memberID = t2.memberID ORDER BY t1.date_time DESC";
$RSobj = mysql_query($sqlSelect) or die (mysql_error());
return $RSobj;
}
Där det står $array['guestID'] ska det istället stå $array['memberID']. Jag testade och glömde ändra tillbaka.
Här ifrån kommer guestID (bild)... Denna tabell heter tblonline och håller reda på vilka medlemmar som är inloggade samt vilka gäster som "bara" besöker sidan utan att logga in. Jag gör en funktion som visar på första sidan vilka användare som är inloggade (likt wF). Nu saknar jag bara memberID för att jag ska kunna göra en länk till medlemsprofilen.
Jag ser några skumma saker... Dels står verkligen raden:
$RSobj_usersOnline = showActiveMemberUser();
inom PHP-taggar? Annars har du problemet att den blir en tom array. Varvid while-slingan aldrig körs.
I while-slingan använder du omväxlande array och $RSobj_visitors. Var kommer det senare ifrån? :q Och om det är ett RecordSet kan du ju inte hämta värdet direkt ur den heller.
Jag ser några skumma saker... Dels står verkligen raden:
$RSobj_usersOnline = showActiveMemberUser();
inom PHP-taggar?
Ja, det gör den. Det var jag som var slarvig när jag bifogade koden :)
Efter att ha testat tidigare tips postade jag resultatet från detta i inlägget ovan. Det visar att arrayen ej är tom och att memberID har ett värde som stämmer med vad som finns i databasen.
aasah skrev:
I while-slingan använder du omväxlande array och $RSobj_visitors. Var kommer det senare ifrån? :q Och om det är ett RecordSet kan du ju inte hämta värdet direkt ur den heller.
Används för att räkna ut hur många aktiva inloggade medlemmar som är kvar att loopa ut. Anledningen att jag gör detta är för att jag ska kunna skriva ut komma efter varje användarnamn men EJ efter den sista utskriva posten då det inte skall finnas något kommatecken där :)
I while-slingan använder du omväxlande array och $RSobj_visitors. Var kommer det senare ifrån? Och om det är ett RecordSet kan du ju inte hämta värdet direkt ur den heller.
Används för att räkna ut hur många aktiva inloggade medlemmar som är kvar att loopa ut. Anledningen att jag gör detta är för att jag ska kunna skriva ut komma efter varje användarnamn men EJ efter den sista utskriva posten då det inte skall finnas något kommatecken där :)
Jo, fast jag menade, hur är den definierad? Var får den sitt värde ifrån?
Namnet antyder att det är ett RecordSet, i så fall kan du inte komma åt kolumnvärden i den direkt. Då behövs ett mysql_fetch_array först. Men det kanske i själva verket är gjort, bara namnet som är missvisande?
Någon som kan fatta vad det är som spökar med detta problem?! Blir smått konfunderad över vad jag lyckats åstadkomma! Tycker jag provat det mesta för att komma till rätta med det hela! :e
function showActiveMemberUser() {
$sqlSelect = "SELECT t2.memberID, t2.username, t1.activity, DATE_FORMAT(t1.date_time, '%H:%i') AS datetime FROM tblonline AS t1, tblmember AS t2 WHERE t1.memberID = t2.memberID ORDER BY t1.date_time DESC";
$RSobj = mysql_query($sqlSelect) or die (mysql_error());
return $RSobj;
}
Ovan nämnda SQL-sats anropas från index.php och det ser ut så här och ligger högst upp i filen:
Notice: Undefined index: memberID in /xxx/public_html/index.php on line 149
">Fredrik , Notice: Undefined index: memberID in /xxx/public_html/index.php on line 149
">Johan