ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Hilfe bei auslesen der Datenbank

Geschlossen
  1. #1
    User Pic
    chisun Mitglied
    Registriert seit
    11.08.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    Hey,

    folgendes:
      $userid = $_SESSION['authid']:
       $teamadmin = 'SELECT teamadmin FROM `prefix_teamusers` WHERE gid=".$gid." AND uid=".$userid';
      if($teamadmin==1)
      {
       echo '<a class="box" href="index.php?***-'.$gid.'">Teamadministration</a>';
    
      }
      else{ echo 'shit';}


    also die gid hat er, und die userid muss er ja auch haben, aber warum bekomm ich immer nur 'shit', wenn $teamadmin mit dem wert '1' eingetragen ist, hat da wer ne idee?

    Danke, René
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    GeCk0 Hall Of Fame
    Registriert seit
    01.05.2009
    Beiträge
    2.989
    Beitragswertungen
    96 Beitragspunkte
    else{ echo 'shit';

    lol

    probiers ma so lachen

    $userid = $_SESSION['authid']:
       $teamadmin = db_result(db_query("SELECT teamadmin FROM `prefix_teamusers` WHERE gid="'.$gid.'" AND uid="'.$userid'"';
      if($teamadmin==1)
      {
       echo '<a class="box" href="index.php?***-'.$gid.'">Teamadministration</a>';
     
      }
      else{ echo 'shit';}
    Alle Module von mir sind nun unter php-gecko.de erreichbar
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    chisun Mitglied
    Registriert seit
    11.08.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /mnt/web3/32/09/52141909/htdocs/restudy/include/contents/ownteams.php on line 102

    da bin ich überfragt!
    Zeile:
       $teamadmin = db_result(db_query('SELECT teamadmin FROM `prefix_teamusers` WHERE gid="'.$gid.'" AND uid="'.$userid'"'));


    gesamt:
       $userid = $_SESSION['authid'];
       $teamadmin = db_result(db_query('SELECT teamadmin FROM `prefix_teamusers` WHERE gid="'.$gid.'" AND uid="'.$userid'"'));
       //$teamadmin = 'SELECT teamadmin FROM `prefix_teamusers` WHERE gid=".$gid." AND uid=".$userid';
      if($teamadmin==1)
      {
       echo '<a class="box" href="index.php?teams_posts_archiv-'.$gid.'">Teamadministration</a>';
    
      }
      else{ echo 'shit';}



    Zuletzt modifiziert von chisun am 21.10.2009 - 19:04:06
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    GeCk0 Hall Of Fame
    Registriert seit
    01.05.2009
    Beiträge
    2.989
    Beitragswertungen
    96 Beitragspunkte
    $userid = $_SESSION['authid']:
       $teamadmin = db_result(db_query("SELECT teamadmin FROM `prefix_teamusers` WHERE gid= "'.$gid.'" AND uid='".$userid"'))';
      if($teamadmin==1)
      {
       echo '<a class="box" href="index.php?***-'.$gid.'">Teamadministration</a>';
     
      }
      else{ echo 'shit';}
    Alle Module von mir sind nun unter php-gecko.de erreichbar
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    chisun Mitglied
    Registriert seit
    11.08.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    jetzt funtzt es

       $teamadmin = db_result(db_query('SELECT teamadmin FROM `prefix_teamusers` WHERE uid="'.$userid.'" AND gid="'.$gid.'"'));


    kann mir kurz mal wer erklären (in Worten), was hier db_result und db_query bedeuten.
    Ich habe zwar in der mysql.php nachgeschaut, aber ich bin da nicht so richtig draus schlau geworden.

    Danke GeCk0 für deine Hilfe lächeln
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    es geht jetzt?
    Da fehlt aber noch ein Punkt nach $userid in Zeile 2, ok nicht nur das die scheint irgendwie komplett nicht zu stimmen.
       $teamadmin = db_result(db_query('SELECT teamadmin FROM `prefix_teamusers` WHERE gid= "'.$gid.'" AND uid="'.$userid.'"'))';

    So sollte es passen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    GeCk0 Hall Of Fame
    Registriert seit
    01.05.2009
    Beiträge
    2.989
    Beitragswertungen
    96 Beitragspunkte
    db_result liefert das exakte ergebnis der db_query
    das RESULTAT aus dem BEFEHL der mysql-abfrage sozusagen

    in der mysql.php wird das ganze nur weiterverarbeitet da die original-php-befehle

    mysql_result und mysql_query heißen

    mit db_ sind es ilch-eigene funktionen die optimiert wurden

    guggst du hier externer Link
    und hier de.php.net/manual/de/book.mysql.php
    Alle Module von mir sind nun unter php-gecko.de erreichbar
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    chisun Mitglied
    Registriert seit
    11.08.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    @ Mairu: den Punkt hatte ich schon gesetzt, sieht man in meinem letzten Post und warum habt ihr beide vor dem Semikolen noch ein Apostroph?

    thx @ GeCk0 für die Links
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    GeCk0 Hall Of Fame
    Registriert seit
    01.05.2009
    Beiträge
    2.989
    Beitragswertungen
    96 Beitragspunkte
    oh, weil ich eigenltich die Query in " setze dann sieht die variable darin so aus : '".$var."'


    Zuletzt modifiziert von GeCk0 am 21.10.2009 - 20:14:06
    Alle Module von mir sind nun unter php-gecko.de erreichbar
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    chisun Mitglied
    Registriert seit
    11.08.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    ich habe leider noch ein Prob ähnlicher Art traurig - bin heute nen bissle vom Pech verfolgt!

      echo '<table width="90%" class="border" cellpadding="2" cellspacing="1" border="0">';
         $erg1 = db_query("SELECT b.uid, a.name FROM prefix_teamusers b  LEFT JOIN prefix_user a ON a.id = b.uid ORDER BY a.name ASC");
      // $erg1 = db_query("SELECT b.uid, a.name LEFT JOIN prefix_teamusers b WHERE gid='.$gid.' LEFT JOIN prefix_user a ON a.id = b.uid ORDER BY a.name ASC");
       	$class = 'Cnorm';
    
      while ($row = db_fetch_object($erg1) ) {
    
    	  $class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
    
        echo '<tr class="'.$class.'"><td>'.$row->name.'</td>';
        echo '<td> <input type="radio" name="1" value="'.$row->b.uid.'"></td></tr>';
     }
       echo '</table>';


    Ich möchte einen Teamleader wählen, der danach Adminfunktionen in den Teams bekommt.

    ich habe nun dort 2 Möglichkeiten erg1 zu belegen. Mit der aktuell freigegebenen funktioniert es soweit, nur gibt er alle Mitglieder von allen Gruppen aus und das muss ich nun verhindern, indem ich ihm sage aus welcher Gruppe er das nehemen soll. Ich kann aber vor LEFT JOIN keine WHERE Angabe machen.
    Kann mir da bitte wer helfen?

    Danke, René
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    $erg1 = db_query("SELECT b.uid, a.name FROM prefix_teamusers b  LEFT JOIN prefix_user a ON a.id = b.uid ORDER BY a.name ASC WHERE b.gid = ".$gid);


    geht das nicht?


    Zuletzt modifiziert von DaStIaC am 21.10.2009 - 22:45:46
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    chisun Mitglied
    Registriert seit
    11.08.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    MySQL Error:
    1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE b.gid='.1' at line 1
    in Query:
    SELECT b.uid, a.name FROM ic1_teamusers b LEFT JOIN ic1_user a ON a.id = b.uid ORDER BY a.name ASC WHERE b.gid='.1


    leider nicht
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    sorry aber, ein b.gid='.1 gibt es in meinem geposteten Code nicht,...

    kopiers doch bitte richtig ^^
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    chisun Mitglied
    Registriert seit
    11.08.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    hey,

    Erstmal danke, dass du dir Gedanken gemacht hast, aber ich hab irgendwie das Gefühl, dass bei LEFT JOIN es nicht möglich ist nur bestimmte werte aus der ersten tabelle auszulesen, obwohl ich mir nicht vorstellen kann, warum das nicht gehen soll.

    du weißt aber schon, dass bei einem Fehler nicht der Quellcode angegeben wird, sondern das, was er macht. Somit habe ich schon deinen Quellcode eingegeben, nur ist bei 'b.gid = ".$gid' das '.$gid'=1.
    Ich denke mal ich muss das splitten, also zuerst alle userid's raussuchen und nachträglich über dieses Array in die nächste Tabelle gehen. Wenn noch wem was anderes dazu einfallen sollte, ich bin für alle vorschläge offen.
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Fire86 Mitglied
    Registriert seit
    25.04.2009
    Beiträge
    543
    Beitragswertungen
    0 Beitragspunkte
    Seit wann platziert man ORDER BY vor WHERE ?
    Das ist wie mit der Syntax in einem Hauptsatz -> Subjekt Prädikat Objekt. zunge

    Pack den ORDER BY blabla Kram an's Ende und dann klappts auch. (Vorrausgesetzt die Tabellen existieren, denn prefix_teamusers gibt es im original Ilch z.B. garnicht. zwinker )
    Kein Support per Email oder ICQ!
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    ups :X
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    karin17 Mitglied
    Registriert seit
    01.10.2009
    Beiträge
    26
    Beitragswertungen
    0 Beitragspunkte
    schon der erste post hat mich zum lachen gebracht, danke!

    MfG Karin lächeln
    ich habe ein motivationsproblem bis ich ein zeitproblem habe.
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    chisun Mitglied
    Registriert seit
    11.08.2009
    Beiträge
    44
    Beitragswertungen
    0 Beitragspunkte
    --hatte ne längere Pause, deswegen greife ich das jetzt wieder auf--

    $erg1 = db_query("SELECT b.uid, a.name FROM prefix_teamusers b WHERE gid='.$gid.' LEFT JOIN prefix_user a ON a.id = b.uid ORDER BY a.name ASC ");

    es müsste klappen, wenn das möglich ist where zwischen select und LEFT JOIN zu bringen. traurig HILFE

    Ich habe auch drüber nachgedacht das zu splitten, also 2 mysql anweisungen zu machen, aber dsa bekomm ich leider auch net hin.

    n8, rené
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    GeCk0 Hall Of Fame
    Registriert seit
    01.05.2009
    Beiträge
    2.989
    Beitragswertungen
    96 Beitragspunkte
    nein du kannst da kein WHERE rein "bringen"

    aber am Ende

    $erg1 = db_query("SELECT a.name, b.uid FROM `prefix_teamusers` AS b LEFT JOIN 
    `prefix_user` AS a ON a.id = b.uid WHERE b.gid = '.$gid.' ORDER BY a.name ASC ");


    die WHERE bedingung kommt immer hinten hin, wie normalerweiste auch,
    bei LEFT JOIN kannst du allerdings a.* oder b.* mit angeben sodass es auch funktioniert wenn du die Tabelle "verlassen hast"
    Alle Module von mir sind nun unter php-gecko.de erreichbar
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten