Zugriff auf allen auswahlhistorie

Status
Nicht offen für weitere Antworten.

Henrigo007

Mitglied
Auf meine Seite habe ich ich administrator und User und ich möchte mehr recht an der Administrator vergeben.
mit der unterer SQL-Anfrage darf jeder Benutzer oder Administrator nur seine eigene Auswahlliste sehen.
ich möchte gern, dass ein Administrator alle auswahlliste sehen kann, mit der name der Benutzer zu dem die Auswahlliste gehört

ungefähr so
Admin Auswahlliste
2016.11.11 09:06:07
Paul Auswahlliste:
2016.10.23 12:45:34
Raul Auswahlliste:
2016.03.20 08:03:25

so sieht meine Tabelle:

Code:
CREATE TABLE `drucker` (
  `id` int(11) NOT NULL,
  `prod_id` int(11) NOT NULL,
  `img_id` int(11) NOT NULL,
  `img_path` varchar(256) NOT NULL,
  `type` varchar(256) NOT NULL,
  `user_id` int(11) NOT NULL,
  `sessionID` varchar(256) NOT NULL,
  `zeit` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;




CREATE TABLE `users` (
  `user_id` int(11) NOT NULL,
  `login` varchar(250) NOT NULL,
  `pass` varchar(250) NOT NULL,
  `role` varchar(256) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;



<table style="margin-left:47%">
        <tr>
            <th><b>Ihre Auswalhistorie</b></th>
        </tr>
        <?php

        $history = $dbConnect->query('SELECT zeit, sessionID FROM drucker WHERE user_id = "' . $_SESSION['user_id'] . '" GROUP BY sessionID');

        while ($item = $history->fetch(PDO::FETCH_ASSOC)) { ?>
        <tr>
            <td style="background-color:#D8D8D8 ; text-align:center; border-bottom: 1px solid #015D12"><a href="index.php?session=<?php echo $item['sessionID'] ?>"><?php echo $item['zeit'] ?></a></td>
        </tr>
        <?php } ?>
    </table>

Danke für Ihre Vorschläge.
 
Hi

Ich verstehe nicht so ganz...

Wenn es dir nur um die User IDs gehst, kannst du ja im Prinzip ein einfaches
Code:
SELECT user_id, zeit FROM drucker
machen und durch die Listen iterieren. Das beinhaltet dann auch andere Administratoren.
Wenn du das ein bisschen genauer haben willst, gibt es SQL INNER JOIN:
Code:
SELECT users.login, drucker.zeit FROM drucker INNER JOIN users ON drucker.user_id=users.user_id
(ungetestet).

Und wenn du dann andere Administratoren nicht sehen willst, gibt es
Code:
SELECT users.login, drucker.zeit FROM drucker INNER JOIN users ON drucker.user_id=users.user_id
WHERE users.role='user'
Oder so ähnlich.

Oder meinst du etwas anderes?

Gruss
cwriter
 
Ich verstehe es etwas anders. Ich denke er möchte, dem Admin alle Daten ausgeben lassen & den User nur seine.

Denke das lässt sich leicht lösen:
PHP:
if($_SESSION['role'] == 'admin')
{
    //alle Daten; Abfrage administrativ
    $history = $dbConnect->query('SELECT zeit, sessionID FROM drucker GROUP BY sessionID');

} else {
    //daten user
    $history = $dbConnect->query('SELECT zeit, sessionID FROM drucker WHERE user_id = "' . $_SESSION['user_id'] . '" GROUP BY sessionID');
}

?>
Wichtig ist jedoch, da ich es nicht weiß, sollte die role natürlich in einer Session gespeichert werden ferne was genau steht in der role? user | admin ? oder Zahlen?

Liebe grüße
 
Ich verstehe es etwas anders. Ich denke er möchte, dem Admin alle Daten ausgeben lassen & den User nur seine.

Denke das lässt sich leicht lösen:
PHP:
if($_SESSION['role'] == 'admin')
{
    //alle Daten; Abfrage administrativ
    $history = $dbConnect->query('SELECT zeit, sessionID FROM drucker GROUP BY sessionID');

} else {
    //daten user
    $history = $dbConnect->query('SELECT zeit, sessionID FROM drucker WHERE user_id = "' . $_SESSION['user_id'] . '" GROUP BY sessionID');
}

?>
Wichtig ist jedoch, da ich es nicht weiß, sollte die role natürlich in einer Session gespeichert werden ferne was genau steht in der role? user | admin ? oder Zahlen?

Liebe grüße

Hallo Leute,

tut mir leid, das ich mich nicht so gut auf deutsche ausdrucken kann,
aber lockcat ist genau sowas, dass ich meine unter role steht admin und user.
ist das möglich, dass der Admin alle auswahlliste mit dem login(steht benutzername) jede Benutzer sehen kann?
wie Zum Beispiel:
Admin Auswahlliste
2016.11.11 09:06:07
Paul Auswahlliste:
2016.10.23 12:45:34
Raul Auswahlliste:
2016.03.20 08:03:25

LG
 
Wenn du dein Code mit diesem hier ersetzt sollte es so sein:


PHP:
<table style="margin-left:47%">
<tr>
<th><b>Ihre Auswalhistorie</b></th>
</tr>

<?php

if($_SESSION['role'] == 'admin')
{
    //alle Daten; Abfrage administrativ
    $history = $dbConnect->query('SELECT zeit, sessionID FROM drucker GROUP BY sessionID');

} else {
    //daten user
    $history = $dbConnect->query('SELECT zeit, sessionID FROM drucker WHERE user_id = "' . $_SESSION['user_id'] . '" GROUP BY sessionID');
}

while ($item = $history->fetch(PDO::FETCH_ASSOC)) { ?>
<tr>
<td style="background-color:#D8D8D8 ; text-align:center; border-bottom: 1px solid #015D12"><a href="index.php?session=<?php echo $item['sessionID'] ?>"><?php echo $item['zeit'] ?></a></td>
</tr>
<?php } ?>
</table>

Gibt es die Session role überhaupt?
 
Ich verstehe es etwas anders. Ich denke er möchte, dem Admin alle Daten ausgeben lassen & den User nur seine.
Nein, du verstehst das gleich. Du verstehst nur anders, wo des TEs Problem liegt ;)

Denke das lässt sich leicht lösen:
Ja, wenn du den Nutzernamen nicht willst, geht es. Aber mit Nutzernamen wäre das dann eben mit SQL INNER JOIN.

$history = $dbConnect->query('SELECT zeit, sessionID FROM drucker GROUP BY sessionID');
Also wenigstens würde ich dann nach nach User ID gruppieren...

$history = $dbConnect->query('SELECT zeit, sessionID FROM drucker WHERE user_id = "' . $_SESSION['user_id'] . '" GROUP BY sessionID');
$item = $history->fetch(PDO::FETCH_ASSOC)
:-]
*hust* Injection *hust*
PDO ist vor allem dann nützlich, wenn man es auch entsprechend benutzt :)

Gruss
cwriter
 
Wenn du dein Code mit diesem hier ersetzt sollte es so sein:


PHP:
<table style="margin-left:47%">
<tr>
<th><b>Ihre Auswalhistorie</b></th>
</tr>

<?php

if($_SESSION['role'] == 'admin')
{
    //alle Daten; Abfrage administrativ
    $history = $dbConnect->query('SELECT zeit, sessionID FROM drucker GROUP BY sessionID');

} else {
    //daten user
    $history = $dbConnect->query('SELECT zeit, sessionID FROM drucker WHERE user_id = "' . $_SESSION['user_id'] . '" GROUP BY sessionID');
}

while ($item = $history->fetch(PDO::FETCH_ASSOC)) { ?>
<tr>
<td style="background-color:#D8D8D8 ; text-align:center; border-bottom: 1px solid #015D12"><a href="index.php?session=<?php echo $item['sessionID'] ?>"><?php echo $item['zeit'] ?></a></td>
</tr>
<?php } ?>
</table>

Gibt es die Session role überhaupt?

Ja es ist zwar richtig, wie du meinst, aber weisst man nicht welche liste gehört zu welchem User, dh kann ich leider keine login(benutzername) sehen, wie cwriter schon meinte muss ich mit INNEN JOIN .
ich habe mich schon paar stunde gequält, leider nicht geschafft.
 
Ja es ist zwar richtig, wie du meinst, aber weisst man nicht welche liste gehört zu welchem User, dh kann ich leider keine login(benutzername) sehen, wie cwriter schon meinte muss ich mit INNEN JOIN .
Ja.

ich habe mich schon paar stunde gequält, leider nicht geschafft.
Hier hast du einen Sack voll Mitleid. :rolleyes:
Viel produktiver wäre es aber, wenn du uns deinen momentanen Code (in korrekten Codetags [code=php][/code] ) zeigen würdest, sagen würdest, was denn nicht funktioniert, ggf. was die Fehlermeldung ist und was momentan passiert und was das erwartete Verhalten gewesen wäre.

Mit deinen momentanen Informationen kann ich mir kein Bild machen, die Glaskugel ist mir mal auf den Boden gefallen und in tausend Stücke zerborsten, und mein erstgeborenes Kind wollte ich dann doch nicht für eine neue opfern :-]

Gruss
cwriter
 
Ja.


Hier hast du einen Sack voll Mitleid. :rolleyes:
Viel produktiver wäre es aber, wenn du uns deinen momentanen Code (in korrekten Codetags [code=php][/code] ) zeigen würdest, sagen würdest, was denn nicht funktioniert, ggf. was die Fehlermeldung ist und was momentan passiert und was das erwartete Verhalten gewesen wäre.

Mit deinen momentanen Informationen kann ich mir kein Bild machen, die Glaskugel ist mir mal auf den Boden gefallen und in tausend Stücke zerborsten, und mein erstgeborenes Kind wollte ich dann doch nicht für eine neue opfern :-]

Gruss
cwriter

so habe ich begonnen leider nicht geschafft
PHP:
SELECT d.*, u.* FROM drucker d INNER JOIN users u ON d.sessionID = u.login
 
so habe ich begonnen leider nicht geschafft
Ich bin mal ganz direkt: Ich verliere so langsam die Geduld. Das ist an sich nicht so schlimm, aber führt schlussendlich dazu, dass ich (und möglicherweise auch andere) keine Lust mehr haben, dir zu helfen.

Der Deal ist eigentlich ganz einfach: Du lieferst uns gut dokumentierte Probleme oder auch einfach nur eine generelle Überlegung, und wir helfen dir, das Projekt zurechtzubiegen oder geben Inputs für generelle Überlegungen.
Kleine Faustregel: 2 Zeilen sind in der Regel nicht genug, um ein Problem zu dokumentieren.

Viel produktiver wäre es aber, wenn du uns deinen momentanen Code (in korrekten Codetags [code=php][/code] ) zeigen würdest, sagen würdest, was denn nicht funktioniert, ggf. was die Fehlermeldung ist und was momentan passiert und was das erwartete Verhalten gewesen wäre.

SELECT d.*, u.* FROM drucker d INNER JOIN users u ON d.sessionID = u.login
Warum vergleichst du eine SessionID mit einem Nutzernamen? Was passt dir denn an dem Code nicht, den ich dir gegeben habe?
Warum willst du jetzt alles in den Tabellen selektieren, statt einfach die Werte zu lesen, die du tatsächlich brauchst?
Fehlermeldung? Was passiert? Was geht nicht?

Gruss
cwriter
 
Status
Nicht offen für weitere Antworten.
Zurück