kostenloser Webspace werbefrei: lima-city


Neue Spalte in MySQL soll ganz oben stehen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    j*****k

    Hallo,
    ich habe mir einen eigenen Login Bereich gebaut, in dem man quasi die komplette HP umbauen kann.
    Naja, undter anderm kann man neue News-Beitr?ge schreiben, die dann in einer MySQL-Tabelle festgehalten werden. Wenn ich jetzt einen neuen Eintrag mache, wird der jedoch ganz nach unten gestellt.
    Wie kann ich das machen, dass der immer nach oben gestellt wird?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. du legst ne id spalte (sofern nicht vorhanden) in der tabelle in der db an und setzt die auf auto_increment!
    dann in deinem sql abfrage query h?ngst du an: ORDER BY `id` DESC
  4. Autor dieses Themas

    j*****k

    Aslo mal langsam hier....
    Ich soll also eine Tabelle mit 3 Spalten machen?
    Die eine nenne ich Datum, die andere News und dann noch eine die id hei?t.
    Und bei der Spalte id muss ich dann hinten (ich arbeite in der Regel mit PHPMyAdmin) auto_increment aktivieren.
    So, und welches "Format" soll die id-Spalte haben? Also TEXT, VARCHAR oder was?
    Wenn ich VARCHAR mit einer Gr??e von 10 nehme, sacht er das:

    MySQL meldet:
    #1063 - Incorrect column specifier for column 'id'

    Warum?
  5. djfun

    Co-Admin Kostenloser Webspace von djfun

    djfun hat kostenlosen Webspace.

    id muss vom typ INT sein, sonst kann des von auto_increment nicht hochgez?hlt werden
  6. Autor dieses Themas

    j*****k

    Das haut nicht ganz hin, dann sacht er das:

    #1075 - Incorrect table definition; There can only be one auto column and it must be defined as a key

    Warum?
    Damit ich nichts falsch gemacht habe, habe ich mal einen Screeny hochgeladen:
    http://jacky2k.milten.lima-city.de/datenbank.jpg

    Ist das alles richtig?
  7. mhm also mach mal die l?nge vom id feld noch auf 11 oder so!
    dann klickste beim id feld noch prim?rschl?ssel an!

    wenn du im zeit oder time feld oder wie du es genannt hast nen unix timestamp per php benutzten w?rdest k?nntest du dir das id feld auch sparen!

    auf jedenfall wenn du mit id machst dann muss das order by ... in den mysql query in deinem php script mit rein!

    EDIT: h3h3 stimmt ich war schneller ;)
    aber normalerweise muss mal den nicht setzten glaube ich! ich machs nie und es funzt trotzdem allerdings benutzte ich auch die neueste version von phpmyadmin ;)
  8. djfun

    Co-Admin Kostenloser Webspace von djfun

    djfun hat kostenlosen Webspace.

    Ich glaub ich hab den fehler:
    du muss noch "Prim?rschl?ssel" ausw?hlen

    EDIT: Da war wohl einer schneller als ich
  9. Autor dieses Themas

    j*****k

    Hab ich in zischen auch rausbekommen, aber wo muss ich jetzt das hier einsetzen?
    ORDER BY `id` DESC
  10. djfun

    Co-Admin Kostenloser Webspace von djfun

    djfun hat kostenlosen Webspace.

    ganz einfach in den select-befehl:

    SELECT * FROM news ORDER BY `id` DESC

    wenn du die news anzeigst
  11. SELECT * FROM `news` ORDER BY `id` DESC

    ich kanns nur immer wieder sagen benutzt die ` bei allen tabellennamen und feldernamen usw. wenn ihr mal nahmen mit _ nehmen solltet oder ne ander sql art oder seis nur als schutz vor sql injections!
    aber bitte butzt die ` weil ihr sonst sp?ter mal viel arbeit haben werdet!
  12. Autor dieses Themas

    j*****k

    So, das geht, aber ein letztes Problem:

    Der Zeigt die Spalte 'id' jetzt auch an....

    hier is der code:


    <h1 align="center">News</h1><br><br>


    <?php
    $db=mysql_connect("193.201.54.45", "***", "***");
    mysql_select_db("***");
    $anfrage="SELECT * FROM News ORDER BY `id` DESC";
    $ergebnis=mysql_query ($anfrage);

    // Tabelle aufbauen
    print ("<table border='1' align='center'>");
    //Tabellenkopf ausgeben
    $spaltenanzahl=mysql_num_fields($ergebnis);
    for ($i=0;$i<$spaltenanzahl;$i++) {
    print("<th valign='top'>");
    print(mysql_field_name($ergebnis,$i));
    print ("</th>");
    }
    while ($zeile=mysql_fetch_row($ergebnis)) {
    print("<tr valign='top'>");
    for ($i=0;$i<$spaltenanzahl;$i++) {
    print ("<td>");
    print ($zeile[$i]);
    print ("</td>");
    }
    print ("</tr>");
    }
    print ("</table>");

    mysql_close($db);
    ?>
  13. k*********2

    ?nder mal diese Zeile:

    $anfrage="SELECT * FROM News ORDER BY `id` DESC";

    statt dem * gibst du einfach die anzuzeigenden Spalten an:
    Beispiel
    $anfrage="SELECT spalte1, spalte2, spalte3 FROM News ORDER BY `id` DESC";

    Der Stern steht einfach f?r "alle" da!
  14. ich will etz hier keinen code posten, nur
    normalerweise macht man soetwas mit einer while schleife und dem mysql_fetch_array oder mysql_fetch_row befehl!
  15. Autor dieses Themas

    j*****k

    Ich habs ein bisschen anders gemacht:
    Da stand ja das:
    $spaltenanzahl=mysql_num_fields($ergebnis);

    und dann hab ich einfach noch das drnageh?ngt:
    $spaltenanzahl = $spaltenanzahl - 1;

    Geht auch wunderbar....
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!