zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden SQL Abfrage

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 24.07.2008, 13:21
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.07.2008
Beiträge: 88
erxx befindet sich auf einem aufstrebenden Ast
Standard SQL Abfrage

Hallo liebe Gemeinde,

Mein Problem ist, dass ich gerne einen Button nur anzeigen lassen will wenn der Benutzer ein Administrator ist.
Da ich eine WBB3 Datenbank benutze müsste ich erst die dem usernamen entsprechende userID in der Tabelle wcf_user herausfinden und dann in der Tabelle wcf_user_to_group checken ob es für diese userID in der Spalte groupID einen Eintrag "4" gibt. Um somit herauszufinden ob dieser User ein Administrator ist. Ich habe mir lange die Tabellen angeguckt und das ist der einzige Weg gewesen der mir aufgefallen ist. Jedoch krieg ich ihn nicht in SQL umgesetzt. Vielleicht kann es ja einer von euch ?

Kleine Zusammenfassung

Tabelle: wcf_user

$_SESSION["username"](auch $username) sollte "username" in wcf_user entsprechen. Die dazugehörige userID (primary Key) ist die Information die ich haben will.

Tabelle: wcf_user_to_group

Die eben herausgefundene userID suchen (diese ist eventuell mehrmals enthalten) jedoch soll nur ein Eintrag beachtet werden in dem

in der Spalte userID die im 1.Schritt herausgefundene userID steht und in der Spalte groupID muss 4 stehen (4 steht für Admin)

Hoffe habe mich klar ausgedrückt.

Hoffe auf schnelle Hilfe

Vielen Dank im Vorraus
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 24.07.2008, 14:08
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Entweder Du fragst die beiden Tabellen über einen Join ab, oder Du fragst beide Tabellen nacheinander ab.

1. Join
PHP-Code:
$sql srprintf("SELECT * FROM `wcf_user` AS `t1` LEFT JOIN `wcf_user_to_group` AS `t2` ON `t1`.`userID` = `t2`.`userID` WHERE `t1`.`username` = '%s' AND `t2`.`groupID` = 4"$username);
$result mysql_query($sql);
if (
mysql_num_rows($result) > 0) {
  
// erfolgreich

2. Nacheinander
PHP-Code:
$sql sprintf("SELECT * FROM `wcf_user` WHERE `username` = '%s'"$username);
$result mysql_query($sql);
if (
$row mysql_fetch_assoc($result)) {
   
// username gefunden, also weiter
   
$sql sprintf("SELECT * FROM `wcf_user_to_group` WHERE `userID` = '%s' AND `groupID` = 4"$row['userID']);
   
$result mysql_query($sql);
   if (
mysql_num_rows($result) > 0) {
      
// user gehört zur Gruppe 4
   
}

Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 24.07.2008, 16:41
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.07.2008
Beiträge: 88
erxx befindet sich auf einem aufstrebenden Ast
Standard

Herzlichen Dank mantiz für deine rasche Antwort,

kannst du eventuell erklären wo das "%s" herkommt ?

edit: so wie ich das nun sehe, hast du den usernamen als resultat genommen, jedoch exisitert username nicht in der 2. Tabelle dort exisitert nurnoch userID oder irre ich mich etwa ?
und was is sprintf(); für eine Funktion ?

ich glaube ein " ist falsch plaziert sollte es nicht heissen:

PHP-Code:
$sql srprintf("SELECT * FROM `wcf_user` AS `t1` LEFT JOIN `wcf_user_to_group` AS `t2` ON `t1`.`userID` = `t2`.`userID` WHERE `t1`.`username` = '%s' AND `t2`.`groupID` = 4, $username"); 
Und würdest du mir eventuell eine Variante empfehlen ?

Vielen Dank

Geändert von erxx (24.07.2008 um 16:58 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 24.07.2008, 16:55
Benutzerbild von kampfgnom
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 22.11.2006
Ort: Radebeul
Beiträge: 1.808
kampfgnom befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von erxx Beitrag anzeigen
kannst du eventuell erklären wo das "%s" herkommt ?
Das %s steht für string und ist ein teil der Funktion sprintf();
Dabei wird das zweite Argument der Funktion an diese Stelle gesetzt:
PHP-Code:
sprintf("Ich gebe einen %s aus""string"); 
Edit: Verwechselt mit printf.
Sprintf formatiert ihn nur. und gibt ihn dann zurück. printf gibt ihn gleich aus...
__________________
Meine Spielwiese: http://blog.kanedo.net
Ich bei Flickr? Da: Flickr: Fotostream von kanedo-projekt
Für open Source Liebhaber: open Com

Auch ich Zwitschere als @kanedo

Geändert von kampfgnom (24.07.2008 um 16:57 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 24.07.2008, 17:07
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Ich würd's über den Join machen und die Anführungszeichen sind schon richtig bei mir.

Allerdings heisst die Funktion "sprintf" und nicht "srprintf", wie ich oben fälschlicherweise geschrieben habe.

Den Rest hat kampfgnom ja schon beantwortet.

Man könnte auch sowas wie
PHP-Code:
$sql "SELECT * FROM ... WHERE t1.`username` = '" $username "' AND t2.`groupID` = 4";
// ... 
schreiben, allerdings gewöhne ich mir an solche Dinge mittlerweile via sprintf zu schreiben, da ich dies um einiges übersichtlicher finde.
Mit Zitat antworten
  #6 (permalink)  
Alt 24.07.2008, 17:29
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.07.2008
Beiträge: 88
erxx befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank euch, ich habe den Code implementiert und es funktioniert wunderbar.

Wo lernt man eigentlich sowas also SQL lernen schon klar, ein Schulkameread wollte mir da einen 5 zeiligen Code andrehen mit ätlichen Variabeln. Ich hab noch nirgends eine Seite gefunden die einem erlaubt SQL so gut zu verstehen um das hinzukriegen...

Vielen Dank nochmal

Edit: Else wird nicht berücksichtigt, deshalb fehlt nun ein Bild was auffüllen soll...

Hab den Code zur besseren übersicht mal bissl zerlegt, findet da jemand ein Fehler ? mein else wird irgendwie nicht berücksichtigt und das sieht nicht so gut aus auf der HP ^^

PHP-Code:
<? 
if((isset($_SESSION['admin']) and ($_SESSION['username'])) 
{
?>
<a href="http://"><img src="nl_sliced_08.jpg" alt="AdminCP" /></a><img src="nl_sliced_09.jpg" alt="Border" />  
<? 

else 

?>
<img src="nl_sliced2_08.jpg" alt="Border" />
<?

Geändert von erxx (24.07.2008 um 17:49 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 24.07.2008, 17:42
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

ka, ich mache das jetzt schon seit 8 Jahren (immer mal wieder mit kleineren Pausen).

Bei (my)SQL würde ich mich irgendwo zwischen Anfänger und Fortgeschrittenen einordnen, bei PHP zwischen Fortgeschrittenen und Profi, aber eher in Richtung Fortgeschrittenen , wobei ich in beiden Bereichen immer wieder mal erstaunt bin, dass ich das eine oder andere noch nicht kenne, obwohl ich schon etwas länger damit zu tun habe, sprich: Ich lerne ständig wieder was neues kennen.

Aber das meiste kommt wohl vom Learning-by-doing und Routine.

Leider kann ich mit einem guten Tutorial nicht dienen.

Nimm' Dir einfach ein Ziel vor Augen, was möglichst objektiv betrachtet nicht zu groß ist und versuche dem möglichst nahe zu kommen, dabei hab' ich noch am meisten gelernt, leider aber auch ein paar Dinge nicht kennengelernt, weil die nichts mit meinem Problem zu tun hatten.
Mit Zitat antworten
  #8 (permalink)  
Alt 24.07.2008, 17:45
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.07.2008
Beiträge: 88
erxx befindet sich auf einem aufstrebenden Ast
Standard

Ich habe vor knapp einer Woche angefangen mich richtig mit HTML PHP CSS und SQL zu befassen bisher dabei rumgekommen ist das hier

Bitte den edit begutachten bei meinem vorletzten Beitrag
Mit Zitat antworten
  #9 (permalink)  
Alt 24.07.2008, 17:54
Benutzerbild von mantiz
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 25.02.2007
Beiträge: 2.843
mantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz seinmantiz kann auf vieles stolz sein
Standard

Hast Du die schließende "}" nur hier vergessen, oder fehlt die auch im Code?

Ansonsten verwende ich immer "&&" anstelle von "and", weiß nicht, ob das was damit zu tun haben könnte.

Und wenn Du auf "$_SESSION['username']" prüfst, dann würde ich auch prüfen, ob der Schlüssel überhaupt gesetzt ist, also lieber mit
PHP-Code:
if (isset($_SESSION['admin']) && isset($_SESSION['username']) && $_SESSION['username']) { ... } 
Außer Du stellst sicher, dass der Schlüssel "username" in $_SESSION immer gesetzt ist.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 24.07.2008, 18:01
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 24.07.2008
Beiträge: 88
erxx befindet sich auf einem aufstrebenden Ast
Standard

Habe deinen Rat befolgt und && benutzt es funktioniert jetzt auch lag aber an der geschwungenen Klammer
Vielen Dank
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL Abfrage gabischatz Serveradministration und serverseitige Scripte 4 23.04.2011 12:05
SQL Abfrage rs-web Serveradministration und serverseitige Scripte 6 23.06.2010 07:53
SQL Abfrage, Logfile auswerten Scheppertreiber Offtopic 0 22.02.2010 10:11
SQl Abfrage :S erxx Serveradministration und serverseitige Scripte 5 05.08.2008 19:35
if/else in *einer* SQL abfrage Pablo Serveradministration und serverseitige Scripte 4 14.06.2008 20:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:19 Uhr.