Ankündigung

Einklappen
Keine Ankündigung bisher.

mysqli_query in while-schleife?

Einklappen

Neue Werbung 2019

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

  • mysqli_query in while-schleife?

    PHP-Code:
    <?php
    function FollowsSomeone($user_name)
    {
    //Test for existing entry in DB
        
    $con=mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);

        if (
    mysqli_connect_errno())
        {
        echo 
    "Failed to connect to MySQL: " mysqli_connect_error();
        }
        
    $sql1 ="SELECT `user_name` from `following` where `user_name`='".$user_name."'";
        
    $result mysqli_query($con,$sql1);
        if(
    mysqli_num_rows($result) == 0)
        {
            return 
    false;
        } else {
            return 
    true;
        }
        
    mysqli_free_result($result);
        
    mysqli_close($con);
    }

    function 
    getFollowingPosts($user_name)
    {
            If (
    FollowsSomeone($_SESSION['user_name']))
            {    
                
    $connect mysqli_connect (DB_HOST,DB_USER,DB_PASS,DB_NAME);
                
    $sql "SELECT `follow_name` FROM `following` where`user_name`='".$user_name."'";
                
    $db_erg mysqli_query($connect$sql );
                if ( ! 
    $db_erg )
                {
                  die(
    'Ungültige Abfrage: ' mysqli_error());
                }
                
    $follow_names = array();
                while (
    $zeile mysqli_fetch_array$db_ergMYSQL_ASSOC))
                {
                    
    array_push($follow_names,$zeile['follow_name']);
                }
                
    $index 0;
                while(
    count($follow_names) >= $index)
                {
                    
    $sql "SELECT `user_name`,`videotitle`,`videourl`,`thumbnail` FROM `startpage` where `user_name`='".$follow_names[$index]."'order by post_time desc";
                    print(
    $sql);
                    
    $db_erg mysqli_query($connect$sql );
                    if ( ! 
    $db_erg )
                    {
                    die(
    'Ungültige Abfrage: ' mysqli_error());
                    }
                    echo 
    '<div style="width:496px; height:700px; align:center; overflow:auto">';
                    while (
    $zeile mysqli_fetch_array$db_ergMYSQL_ASSOC))
                    {
                    
    ?>
                    <table style="text-align:center">
                    <td>
                    <tr>
                        <td><a href="/userpage.php?<?php echo($zeile['user_name'])?>"> <?php echo($zeile['user_name'])?></a><?php echo(" has posted: "?><b><?php echo ($zeile['videotitle']) ?></b></td>
                    </tr>
                    <tr>
                        <td><a href="<?php echo($zeile['videourl'])?>"><img src="<?php echo($zeile['thumbnail']) ?>" alt="Picture not found" style="width:496px;height:279px"></a></td>
                    </tr>
                    </td>
                    </table>
                    </table>
                    <?php
                    mysqli_free_result
    $db_erg );
                    
    mysqli_close($connect);
                    
    $index++;
                }
                echo 
    "</div>";
                 
                
                
                    

                }
            }
            else
            {
                
    $connect mysqli_connect (DB_HOST,DB_USER,DB_PASS,DB_NAME);
         
                
    $sql "SELECT `user_name`,`videotitle`,`videourl`,`thumbnail` FROM `startpage` order by post_time desc";
         
                
    $db_erg mysqli_query($connect$sql );
                if ( ! 
    $db_erg )
                {
                  die(
    'Ungültige Abfrage: ' mysqli_error());
                }
                echo 
    '<div style="width:496px; height:700px; align:center; overflow:auto">';
                while (
    $zeile mysqli_fetch_array$db_ergMYSQL_ASSOC))
                {
                
    ?>
                <table style="text-align:center">
                <td>
                  <tr>
                    <td><a href="/userpage.php?<?php echo($zeile['user_name'])?>"> <?php echo($zeile['user_name'])?></a><?php echo(" has posted: "?><b><?php echo ($zeile['videotitle']) ?></b></td>
                  </tr>
                  <tr>
                    <td><a href="<?php echo($zeile['videourl'])?>"><img src="<?php echo($zeile['thumbnail']) ?>" alt="Picture not found" style="width:496px;height:279px"></a></td>
                  </tr>
                </td>
                </table>
                </table>
                <?php
                
    }
                echo 
    "</div>";
                 
                
    mysqli_free_result$db_erg );
                
    mysqli_close($connect);
            }    
    }
    Hallo Leute,
    könnt ihr mir sagen warum bei der zweiten Abfrage der Datenbank mir ein "Ung�ltige Abfrage" ausgegeben wird? Habe mir beide SQL-Befehle auch noch einmal ausgeben lassen und funktionieren beide manuell in phpmyadmin..
    Ich gebe quasi eine Liste aus und habe aber auch ein Follow-System auf meiner Website. Jetzt möchte ich, dass nur Posts von Leuten denen man folgt angezeigt werden. Dafür teste ich erstmal ob man überhaupt jemandem folgt. Wenn nicht wird einfach alles angezeigt. Ich bin eingeloggt in meinem "Accountsystem" und die Verbindung zur Datenbank klappt problemlos


  • #2
    Mach mal aus
    PHP-Code:
    mysqli_error() 
    ein
    PHP-Code:
    mysqli_error($connection
    Und warum du in einem Script mehrfach mysqli_connect stehen hast, bleibt auch dein Geheimnis. Und jetzt bitte nicht als begründung angeben, dass das ja in einer Funktion steht
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Zitat von uha Beitrag anzeigen
      Mach mal aus
      PHP-Code:
      mysqli_error() 
      ein
      PHP-Code:
      mysqli_error($connection
      Und warum du in einem Script mehrfach mysqli_connect stehen hast, bleibt auch dein Geheimnis. Und jetzt bitte nicht als begründung angeben, dass das ja in einer Funktion steht
      Ausprobiert und hat nichts geändert. Der erste Eintrag wird perfekt dargestellt beim zweiten kommt der Fehler mit der "Ungültige Abfrage"

      Und ich connecte mehrmals, weil es unterschiedliche Datein sind =)

      Die beiden Abfragen die ich mir ausgeben lasse:
      SELECT `user_name`,`videotitle`,`videourl`,`thumbnail` FROM `startpage` where `user_name`='Testaccount1'
      SELECT `user_name`,`videotitle`,`videourl`,`thumbnail` FROM `startpage` where `user_name`='Testaccount2'

      Die erste funktioniert auch und stellt es danach in einer Tabelle richtig da :/
      Wie gesagt funktioniert es manuell auf jeden Fall. Ich vermute, dass es an der while-schleife liegt oder so

      Kommentar


      • #4
        Wenn es verschiedene Dateien sind, poste doch mal so, dass man es auch erkennt.
        Und du hast trotzdem 2 öffnende Verbindungen in der einen Funktion. Einmal im If-Block, einmal im Else-Block.

        Lager die Verbindung zur Datenbank aus und gibt die Connection als Paramater in die Funktion.
        Nimm die Ausgaben aus den Funktionen raus, gestalte die Funktionen so, dass sie dir Daten als Rückgabewert liefern. Danach kannst du die Ausgabe gestalten.
        Relax, you're doing fine.
        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

        Kommentar

        Lädt...
        X