Ergebnis 1 bis 10 von 10

Thema: [PHP] Fehler im Code.

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #7
    Ganz einach, du lässt alle User ausgeben die in der Tabelle enthalten sind, durchsucht dann deine Query in einer Schleife und jedes mal wenn die Usernamen übereinstimmen wird dein Code durchgeführt.

    Ich hingehen lass mir von Anfang an nur die User ausgeben, bei denen die Usernamen übereinstimmen, danach überprüfe ich wieviele User mir von der Datenbank zurückgegeben werden, und nur wenn ein User zurückgegeben wird wird der Code durchgeführt.

    Vorteil davon ist zum einen, weniger Datenlast zwischen den Servern.
    Zum anderen, angenommen der gesuchte User steht ganz am Ende der Tabelle. Dann muss dein Script n mal durchlaufen werden wobei n die Anzahl der User darstellt.

    Nun stell dir mal vor dein Script hat 1000 User in der Datenbank, dann hast du 999 unnötige Schleifendurchgänge, das ist ne Menge Performance verlust. Zudem läufst du gefahr 999 mal User informationen rauszugeben, da du alle Felder aus der Tabelle ausliest.

    Und nun zum Code:
    $abfrage = "SELECT * FROM user"; // diese Zeile ist unwichtig, zum anderen die
    // . die ich in der Verzweigung hatte, da war ich bloß zu faul deinen ganzen Code zu kopieren dh. dir fehlt deine Programmlogikdie solltest du noch einfügen, ansonsten stimmts

    edit:
    PHP-Code:
    <?php
    session_start
    ();
    include (
    'dbconnect.php');
    ?>
    <html>
    <head>
    <style type="text/css">
    body{font-family:Verdana, Arial, Helvetica, sans-serif; font-size:14px;}
    </style>
    </head>
    <body>
    <?php
    $abfrage 
    "SELECT * FROM user WHERE `user` = '" $_SESSION['nick'] . "'");
    $sql mysql_query($abfrage) OR die(mysql_error());
    if(
    mysql_num_rows($sql) == 1)
    {
    $row mysql_fetch_array($sql);
    $get_updatetime "SELECT * FROM user WHERE name = '".$row['name']."'";
    $query_updatetime mysql_query($get_updatetime) OR die(mysql_error());
    $row_updatetime mysql_fetch_array($query_updatetime);
    $yet time();
    $hour 3600;
    if(
    $row_updatetime['money_update'] <= $yet $hour)
    {
    $geld_zuwachs $row_updatetime['level_money'] * 100;
    $money "UPDATE user SET money = money + '".$geld_zuwachs."' WHERE name = '".$row_updatetime['name']."'";
    $eintrag mysql_query($money);
    }
    }
    else
    {
    echo
    'Der User <b>'.$row['name'].'</b> war nicht online und bekam somit kein Geld<br>';
    }
    ?>
    </body>
    </html>

    Geändert von Latency (28.03.2005 um 10:59 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •