Die richtige syntax near 'ORDER BY Datum DESC LIMIT 1' in Zeile 4

Ich erhalte immer folgende Fehlermeldung:

Haben Sie einen Fehler in Ihrer SQL-syntax; Lesen Sie im Handbuch, das entspricht Ihrer MySQL-server-version für den richtigen syntax in der Nähe 'ORDER BY Datum DESC LIMIT 1' in Zeile 4

function printSoldiersOfRank($rank, $branch)
{
  $soldier = new soldierClass;
  $sql = "SELECT * FROM soldier WHERE rank = $rank AND branch = '$branch'";
  $result = mysql_query($sql);
  while($row = mysql_fetch_array($result)):
    $soldier->getInfo($row['sID']);
    $soldier->printInfo(); 
  endwhile;

function printInfo()
  {
    $sql = "SELECT promoter, name, date
    FROM soldier s, log l
    WHERE s.sID = l.promoter AND l.promotee = $this->sid
    ORDER BY date DESC LIMIT 1";
    $result = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_array($result);
    echo "<div class='soldierInfo'>";
    echo "<a href='index.php?page=soldier&sid=$this->sid'>";
    echo $this->name;
    echo "</a><br />";
    echo "Last Promoted: ";
    echo date("d M Y", $row['date']);
    echo "<br />By: <a href='index.php?page=soldier&sid=$row[0]'>";
    echo $row['name'];
    echo "</a></div>";
  }

Ich gehe davon aus, dass der Fehler in meinem printInfo() Funktion. Alle Hilfe ist willkommen, danke im Voraus.

  • Die Fehlermeldung, die Sie bekommen hat ORDER BY name, nicht durch date.
  • Bitte verwenden Sie nicht mysql_* Funktionen, neuen code schreiben. Sie werden nicht mehr gepflegt und die Gemeinschaft hat begonnen deprecation-Prozess. Siehe die red box? Stattdessen sollten Sie lernen, über prepared statements und PDO oder MySQLi. Wenn Sie sich nicht entscheiden können, welche, diesem Artikel wird Ihnen helfen. Wenn Sie Holen PDO, hier ist eine gute tutorial.
  • INJEKTION, lalali, lalada, lala in-ject-la-di-da.
  • mögliche Duplikate von Wie Sie verhindern, dass SQL-injection in PHP -?
  • ORDER BY name aber in Ihrer Funktion haben Sie ORDER BY date . sind Sie sicher, dass Sie in der richtigen sql ?
  • Dies ist kein dupe. Gut, ich meine, die dummen hilft, aber das ist kein dupe. Dies ist nur ein Vanille-schlechte Frage. Ich meine, ernsthaft, der user konnte sich nicht einmal die Mühe macht, setzen die richtige erroring code in es. Ernsthaft jetzt. Ich meine, komm schon. Wie sollen wir Ihnen eine konkrete, hilfreiche Antwort, wenn Sie nicht geben uns die echten, gebrochenen code!?
  • date in welche Tabelle ist das ? soldier oder log
  • Dir gut da drüben?
  • Ich bin mir der Geduldsfaden und ich haben, um zu überleben php für weitere vier Tage, um zu gewinnen eine sinnlose Wette. Nein, ich bin nicht in Ordnung. *twitch*
  • Sorry, ich wusste nicht, dass ich falsch gepostet Fehler. log 1 ist dem date.
  • Haben Sie sich einmal die Mühe zu überprüfen, was Ihre Abfrage sieht aus wie nach Variablen-substitution? Was die bleep hat $this->sid zurück?
  • An alle: gebt dem Mann eine Pause. @user1933198: $this->sid ist entweder null oder kann nicht analysiert werden, ersetzen Sie es mit '".$dieser->sid."'
  • Pause gewährt. Eine echo $sql = "..." und überprüfen Sie die gedruckten Abfrage syntax Fehler. Sie könnten in der Lage sein, den Fehler zu beheben sich.

InformationsquelleAutor user1933198 | 2012-12-27
Schreibe einen Kommentar