Ankündigung

Einklappen
Keine Ankündigung bisher.

Mysqli während Mysqli schleife?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mysqli während Mysqli schleife?

    Hey leute!

    Ich bin grad beim letzten Teil meiner Website die ich programmieren möchte angekommen, das Forum.
    Das ganze war nicht so einfach wie ich dachte, das ganze ist bei mir nun so dass Threads neue Tabellen sind.
    Ich kann die Nachrichten schon ausgeben lassen, allerdings kann ich in der Userinformation neben einem Post keine Daten über den User angeben, wie z.B. "Posts" oder "Reputation", da diese Werte in einer anderen Tabelle als die Thread Daten sind und ich mich in einer while schleife befinde - Ich habe festgestellt in einer mysqli while schleife kann ich wohl keine anderen Verbindungen herstellen, oder?

    Das ist zz. der Quellcode
    PHP-Code:
        }elseif(isset($_GET["loc"]) && $_GET["loc"] == "thread" && isset($_GET["title"])){
                                            
                                            $title = $_GET["title"];
                                            
                                            if($stream = $mysqli->prepare("SELECT message_id, message, likes, dislikes, poster, date, closed     FROM  $title ORDER BY message_id ASC")){
                                            $stream->execute();
                                                $stream->bind_result($message_id, $message, $likes, $dislikes, $poster, $date, $closed);
                                                
                                                while($stream->fetch()){
                                                    
                                                    ?>
                                                    
                                                     <div class= "postcontainer">
                                                     <div class = "posteravatar">
                                                     
                                                    
                                                     </div>
                                                      <div class = "tpost">
                                                    <?php
                                                    
                                                    
    echo $message "<br /><br />" $date;
                                                    
                                                    
    ?>
                                                     </div>
                                                     <div class = "posterinfo">
                                                     <?php
                                                     
                                                    
    echo $poster;
                                                    echo 
    "<br />";
                                                    
                                                    
                                                    
                                                    
                                                    
                                                    
                                                    if(
    $stmt $mysqli->prepare("SELECT rank FROM User WHERE username LIKE ?")){
                                                        
    $stmt->bind_param("s"$poster);
                                                        
    $stmt->execute();
                                                        
    $stmt->bind_result($rank);
                                                        
    $stmt->fetch();
                                                        
    $stmt->close();
                                                        die();
                                                    }

                                                    if(
    $rank == 6){
                                                        
    ?>
                                            <img src = "Admin.png"/>
                                            <?php
                                                    
    }elseif($rank 6){
                                                        
    ?>
                                            <img src = "Member.png"/>
                                            <?php
                                                    
    }
                                                    
                                                    
                                                    
                                                    
                                            
                                                    
                                                    
                                                    
                                                    
    ?>
                                                     </div>
    Ich hoffe Ihr versteht was ich meine.
    Ich möchte hier dass das richtige Bild angezeigt wird, je nach member rang, allerdings wird nur Admin angezeigt. :/
    Wär super wenn ihr helfen könntet

    Sync~

  • #2
    Mysqli während Mysqli schleife?
    Antwort ob: Ja
    Antwort soll: Nein
    Antwort sondern: JOIN
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Okay, sieht in meinen Augen auf den ersten blick schon hilfreich aus, danke.
      Würdest du mir in eigenen Worten erklären wie so ein Join abläuft bzw was er genau tut?
      Denke das wird mir mehr helfen als diese ganzen Beispiel Seiten, dort komme ich nicht so gut zurrecht. :/

      Kommentar


      • #4
        Denke das wird mir mehr helfen als diese ganzen Beispiel Seiten, dort komme ich nicht so gut zurrecht. :/
        Dein Pech.

        Inserate, Konzepte und Meinungsumfragen
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Ok hab mich mal reingelesen und verstehe dass so dass man 2 Tabellen auslesen kann wenn man eine Schnittstelle hat?
          Habe mich mal probiert, funkt allerdings noch nicht so ganz, denke es liegt an dem $title. :/
          Ist der Ansatz denn schon richtig?

          PHP-Code:
              if($stream $mysqli->prepare("SELECT $title.message_id, $title.message, $title.likes, $title.dislikes, $title.poster, $title.date, $title.closed user.rank, user.posts, user.reputation FROM  $title INNER JOIN User ON $title.poster = user.username ORDER BY message_id ASC")){
                                                  
          $stream->execute();
                                                      
          $stream->bind_result($message_id$message$likes$dislikes$poster$date$closed$rank$posts$rep$usnm);
                                                      
                                                      while(
          $stream->fetch()){ 

          Kommentar


          • #6
            Ich habe jetzt herausgefunden wie es wohl funktionieren könnte

            PHP-Code:
                                                    if($stream $mysqli->prepare("
                                                                SELECT *
                                                                FROM 
            $title
                                                                INNER JOIN User
                                                                ON 
            $title.poster = User.username
                                                                ORDER BY message_id ASC;
                                                                                    "
            )){
                                                        
            $stream->execute();
                                                        
                                                        
            $stream->bind_result($message_id$message$likes$dislikes$poster$date$closed$user_id$username$password$rank$age$sex$name$website$skype$email$last_act$posts$reputation$credits$reg_date);

                                                        while(
            $stream->fetch()){
                                                            
                                                            
            ?> 
            Allerdings klappt das nicht recht .. ich weiß das problem ist bei bind_result - Kann mir jemand verraten was die korrekte Angabe dort wäre?
            Ich habe wie oben zu sehen schon versucht jeden Inhalt beider Tabellen nacheinander als variabel anzugeben, allerdings klappt das nicht..
            Es kommt nur folgende Fehlermeldung und danach keine Ausgabe mehr
            Fatal error: Cannot pass parameter 17 by reference in /home/u144584875/public_html/index.php on line 2154


            Wenn ich nur varibeln der ersten tabelle eingeben (also bis einschließlich $closed) dann kommt diese fehlermeldung, aber der Rest wird normal ausgegeben.
            Warning:mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement in /home/u144584875/public_html/index.php on line 2154

            Ich muss also nur wissen welche Variabeln bind_result von mir erwartet

            Kommentar


            • #7
              Zitat von Sync911 Beitrag anzeigen
              Ich muss also nur wissen welche Variabeln bind_result von mir erwartet
              Idealerweise die, die du im Query angibst. Heisst: kein SELECT *, sondern brav alle gewollten Spalten angeben, dann weisst du auch, welche Variablen bind_result erwartet.
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar

              Lädt...
              X