ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
213
213
EMPFEHLEN
-
31.08.07 00:04 #1
- Registriert seit
- Jun 2007
- Ort
- Berlin Fhain
- Beiträge
- 225
Dies ist ein Teil eines Scriptes welches die neuesten registrierten Benutzer der Seite in einer Liste darstellen soll. Das klappt auch, nur möchte ich einige Nutzer herausfiltern.
Die Nutzer sind in verschiedene Usergruppen eingeteilt. Diese Einträge werden in der Datenbank Tabelle #__users Spalte usertype gespeichert.
Mit Where möchte ich nun angeben das nur User der Benutzergruppe user1 angezeigt werden.
Für mich persönlich ist der Code nicht durchschaubar doch sicher gibt es jemanden der das kann
PHP-Code:<?php
function s4jNewUsers( &$params ) {
global $database;
$this->_db = $database;
$this->_s4j = new s4jLibNewUsers( $params, 2, "mod_s4jnewusers" );
$this->_params = & $params;
}
function GetDataRows() {
$max_user_shown = $this->_params->get('max_user_shown', 3);
$sql = "SELECT DISTINCT
u.id, u.username, u.name,
s.userid as s4jonline";
$sql .= $this->_s4j->GetFields();
$sql .= " FROM
( #__users u INNER JOIN #__comprofiler c ON u.id = c.user_id AND u.block =0 AND c.confirmed =1 AND c.approved =1 )
LEFT JOIN #__session s ON s.userid = u.id AND s.guest = 0";
$sql .= $this->_s4j->GetFilter("c", "u", "WHERE");
$sql .= " ORDER BY registerdate DESC
LIMIT 0, " . $max_user_shown;
$this->_db->setQuery( $sql );
$rows = $this->_db->loadObjectList();
return $rows;
}
function Show() {
$columns_count = $this->_params->get('columns_count', 5);
$rows = $this->GetDataRows();
$tr = 1;
$ind = 0;
$rows_count = count($rows); //NOTE: Improve later
$result = "<table border='0'>"; // TODO: Change template
foreach ($rows as $row) {
if( $tr == 1)
$result .= "<tr>";
$result .= "<td valign='top'>".$this->_s4j->GetUser( $row )."</td>";
if($tr == $columns_count) {
$result .= "</tr>";
$tr=1;
} else if( $ind == $rows_count ) {
for($j = $tr; $j < $columns_count; $j++) {
$result .= "<td style='display:none;'> </td>";
}
$result .= "</tr>";
} else {
$tr++;
}
$ind++;
}
$result .= "</table>";
return $result;
}
}
function s4jNewUsersCaching( & $params ){
$s4NewUsers = new s4jNewUsers( $params );
echo $s4NewUsers->Show();
}
}
?>
Habe im Code bereits den Eintrag u.usertype, hinzugefügt
und hier hab ich aus >GetFilter("c", "u", "WHERE"); das hier gemachtPHP-Code:$sql = "SELECT DISTINCT
u.id, u.username, u.name, u.usertype,
s.userid as s4jonline";
führt leider nur zu dem FehlerPHP-Code:$sql .= $this->_s4j->GetFilter("c", "u", "WHERE usertype = 'user1';");
$sql .= " ORDER BY registerdate DESC
LIMIT 0, " . $max_user_shown;
Invalid argument supplied for foreach()
Höchstwahrscheinlich bin ich völlig auf dem Holzweg, aber mehr Einfälle habe ich leider als völliger PHP-Newbie nicht *g
Hoffe das Ganze ist vielleicht wieder mit einem kleinen zusätzlichen Codegeschnippsel durchführbar
Freue mich auf eure Unterstützung.
Vielen Dank schonmal jetz !
Lg
Tobs
-
Gibt er dir keine SQL-Fehlermeldung aus? Ist das von dir programmierter Code? Wenn nein, schau ob die Fehler vielleicht unterdrückt und in ein Log-File gespeichert werden. So spontan sehe ich nur:
Der Fehler der foreach-Schleife weist darauf hin, dass der Datentyp der Variable, über die du die Schleife laufen lassen willst, kein Datentyp ist, der von foreach verwendet werden kann. Foreach funktioniert nur mit Arrays.PHP-Code://Hier muss vor usertype vermutlich noch der Tabellenbezeichner vom Join (u.) angehängt werden
$sql .= $this->_s4j->GetFilter("c", "u", "WHERE u.usertype = 'user1';");
Lass dir mal $rows ausgeben und schaue was für ein Datentyp es ist. mit der Funktion is_array() kannst du prüfen, ob es sich dabei um ein Array handelt.
Ähnliche Themen
-
Fehler in Where Clause
Von dsNDesign im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 16.08.10, 10:40 -
WHERE Clause
Von grünes-huhn im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 01.12.08, 13:22 -
SQL Expression in Where Clause
Von mario1234 im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 06.08.08, 16:17 -
Where-Clause beim Datum
Von bergonline im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 14.05.08, 17:00 -
Expr IN(value,...) in WHERE-Clause
Von polarbear11 im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 15.06.05, 09:55





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren