Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] order by funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • wepsi
    hat ein Thema erstellt [Erledigt] order by funktioniert nicht.

    [Erledigt] order by funktioniert nicht

    Hallo,
    habe eine Abfrage aus 2 Tabellen erswtellt. Funktioniert, jedoch nur ohne Sortierung mit order by.
    Hier der Quelltext mit order by. Kann mir da jemand helfen? Danke.

    html>
    <head>
    <title>xxx</title>
    </head>

    <body>
    <h2>*** Tabellenbeschriftung ***</h2>
    <?php

    require_once "../id_db.php";

    $abfrage = "SELECT T1.VERBINDUNG, T2.Nachname, T2.Vorname, T2.Status FROM T1, T2
    order by T2.Vorname asc
    where T1.ID = T2.ID and (T1.VERB_TYP = 4 or T1.VERB_TYP = 1001)
    and (T2.status=1 or T2.status=2 or T2.status=3 or T2.status=5 or T2.status=6)"
    ;

    $ergebnis = mysql_query($abfrage)
    OR die("Error: $abfrage <br>".mysql_error());

    echo "<table width=\"400px\" border=\"2\">";
    echo "<tr>";

    echo "<td width=\"200px\"><span style='font-family:Arial, Verdana; font-size:15px; color:#0000FF;'><b>Nachname</b></span></td>";
    echo "<td width=\"150px\"><span style='font-family:Arial, Verdana; font-size:15px; color:#0000FF;'><b>Vorname</b></span></td>";
    echo "<td width=\"50px\"><span style='font-family:Arial, Verdana; font-size:15px; color:#0000FF;'><b>Status</b></span></td>";
    echo "</tr>";

    while($row = mysql_fetch_object($ergebnis))

    {

    $nname = "$row->Nachname, $row->Vorname";
    $vname = $row->Vorname;
    $VERBINDUNG = $row->VERBINDUNG;

    echo "<tr>";
    echo "<td><span style='font-family:Arial, Verdana; font-size:10px; color:#0000FF;'>" . $nname . "</span></td>";
    echo "<td><span style='font-family:Arial, Verdana; font-size:10px; color:#0000FF;'>" . $vname . "</span></td>";
    echo "<td><span style='font-family:Arial, Verdana; font-size:10px; color:#0000FF;'>" . $VERBINDUNG . "</span></td>";
    echo "</tr>";

    }

    echo "</table>";


    mysql_close();
    ?>
    </body>
    </html>

  • wepsi
    antwortet
    Hallo, danke für die Hilfe, habe den fehler gefunden; die " waren falsch gesetzt.

    Einen Kommentar schreiben:


  • wepsi
    antwortet
    Wie gesagt Anfänger, sorry.
    PHP-Code:
    <html>
    <head>
    <title>xxx</title>
    </head>

    <body>
    <h2>*** Tabellenbeschriftung ***</h2>
    <?php

    require_once "../id_db.php";

    $abfrage "SELECT T1.VERBINDUNG, T2.Nachname, T2.Vorname, T2.Status
    From T1 join T2 using (ID)
    where T1.VERB_TYP in (4, 1001)
    and (T2.status=1 or T2.status=2 or T2.status=3 or T2.status=5 or T2.status=6)"
    order by T2.Vorname asc;

    $ergebnis mysql_query($abfrage)
    OR die(
    "Error: $abfrage <br>".mysql_error());

    echo 
    "<table width=\"400px\" border=\"2\">";
    echo 
    "<tr>";

    echo 
    "<td width=\"200px\"><span style='font-family:Arial, Verdana; font-size:15px; color:#0000FF;'><b>Nachname</b></span></td>";
    echo 
    "<td width=\"150px\"><span style='font-family:Arial, Verdana; font-size:15px; color:#0000FF;'><b>Vorname</b></span></td>";
    echo 
    "<td width=\"50px\"><span style='font-family:Arial, Verdana; font-size:15px; color:#0000FF;'><b>Status</b></span></td>";
    echo 
    "</tr>";

    while(
    $row mysql_fetch_object($ergebnis))

    {

    $nname "$row->Nachname$row->Vorname";
    $vname $row->Vorname;
    $VERBINDUNG $row->VERBINDUNG;

    echo 
    "<tr>";
    echo 
    "<td><span style='font-family:Arial, Verdana; font-size:10px; color:#0000FF;'>" $nname "</span></td>";
    echo 
    "<td><span style='font-family:Arial, Verdana; font-size:10px; color:#0000FF;'>" $vname "</span></td>";
    echo 
    "<td><span style='font-family:Arial, Verdana; font-size:10px; color:#0000FF;'>" $VERBINDUNG "</span></td>";
    echo 
    "</tr>";

    }

    echo 
    "</table>";


    mysql_close();
    ?>
    </body>
    </html>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    es gibt code tags, um geposteteten code aufzuhübschen.

    Einen Kommentar schreiben:


  • wepsi
    antwortet
    Hallo,
    Ihr merkt es schon, Anfänger.
    Aber nochmal etwas genauer. Sobald ich den Quellcode ohne order by ausführe, bekomme ich meine Tabelle dargestellt, leider halt nicht sortiert. Sobald ich order by mit hinzufüge, kommt keine Ausgabe mehr, sondern nur noch der Parse Error. Ich verändere sonst nichts ausser die Zeile order by.Übrigens, die Funktion between kann ich nicht nehmen, da einzelne Stati nicht ausgewertet sollen.
    Anbei nochmal mein kompletter Quelltext:

    <html>
    <head>
    <title>xxx</title>
    </head>

    <body>
    <h2>*** Tabellenbeschriftung ***</h2>
    <?php

    require_once "../id_db.php";

    $abfrage = "SELECT T1.VERBINDUNG, T2.Nachname, T2.Vorname, T2.Status
    From T1 join T2 using (ID)
    where T1.VERB_TYP in (4, 1001)
    and (T2.status=1 or T2.status=2 or T2.status=3 or T2.status=5 or T2.status=6)"
    order by T2.Vorname asc;

    $ergebnis = mysql_query($abfrage)
    OR die("Error: $abfrage <br>".mysql_error());

    echo "<table width=\"400px\" border=\"2\">";
    echo "<tr>";

    echo "<td width=\"200px\"><span style='font-family:Arial, Verdana; font-size:15px; color:#0000FF;'><b>Nachname</b></span></td>";
    echo "<td width=\"150px\"><span style='font-family:Arial, Verdana; font-size:15px; color:#0000FF;'><b>Vorname</b></span></td>";
    echo "<td width=\"50px\"><span style='font-family:Arial, Verdana; font-size:15px; color:#0000FF;'><b>Status</b></span></td>";
    echo "</tr>";

    while($row = mysql_fetch_object($ergebnis))

    {

    $nname = "$row->Nachname, $row->Vorname";
    $vname = $row->Vorname;
    $VERBINDUNG = $row->VERBINDUNG;

    echo "<tr>";
    echo "<td><span style='font-family:Arial, Verdana; font-size:10px; color:#0000FF;'>" . $nname . "</span></td>";
    echo "<td><span style='font-family:Arial, Verdana; font-size:10px; color:#0000FF;'>" . $vname . "</span></td>";
    echo "<td><span style='font-family:Arial, Verdana; font-size:10px; color:#0000FF;'>" . $VERBINDUNG . "</span></td>";
    echo "</tr>";

    }

    echo "</table>";


    mysql_close();
    ?>
    </body>
    </html>

    Einen Kommentar schreiben:


  • dingsda
    antwortet
    Zitat von wepsi Beitrag anzeigen
    jedoch gleiches Problem
    ein parse error ist doch nicht das gleiche wie eine falsche ausgabe.
    daher hast du jetzt nicht das gleiche problem.

    jetzt hast du nur das problem, dass du irgendwas in php falsch gemacht hast.
    wahrscheinlich beendest du den string schon vor dem "order by..."
    http://www.schattenbaum.net/php/unexpected_T_STRING.php

    ohne code können wir aber nur hellsehen

    Einen Kommentar schreiben:


  • wepsi
    antwortet
    Danke, habe jetzt den Code dementsprechend geändert, jedoch gleiches Problem. Ohne order by bestens, mit order by Fehlermeldung "Parse error: syntax error, unexpected T_STRING in ( Zeile mit order by)"

    Einen Kommentar schreiben:


  • dingsda
    antwortet
    http://php-de.github.io/jumpto/sql/

    deine sql-syntax ist falsch. order by darf nicht vor der where klausel stehen.

    die mysql_* funktionen sind veraltet. nutze mysqli oder pdo.

    dein query ließe sich außerdem noch etwas übersichtlicher schreiben (ungetestet):

    Code:
    select T1.VERBINDUNG, T2.Nachname, T2.Vorname, T2.Status 
    from T1 join T2 using (ID)
    where 
        T1.VERB_TYP in (4,1001)
        and T2.status between 1 and 6
    order by T2.Vorname asc
    JOIN nutzen, wenn join gewünscht
    IN clause wenn eine spalte mehrere werte haben darf
    oder BETWEEN wenn die werte in einem bestimmten bereich sein dürfen

    ließt sich leichter als where .... or ... or .... or .... or .... or .... or ..... or .... or ... usw

    Einen Kommentar schreiben:

Lädt...
X