1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

PHP / MySQL -- Frage

Dieses Thema im Forum "PHP & Co." wurde erstellt von Patistar, 09.08.08.

  1. Patistar

    Patistar Braeburn

    Dabei seit:
    17.01.08
    Beiträge:
    46
    Hallo,

    ich habe gleich 2 Fragen, zu 2 verschiedenen Themen.

    1. Wie geht das, dass wie bei einem PN System alle Datenbank einträge angezeigt werden und per
    Klick geöffnet werden könnten. (vll. Scriptbeispiel)

    2. Ich möchte per Kontaktformular ein Datum übertragen und später mit dem heutigen vergleichen.
    Dieses Datum soll in einer MySQL Datenbank gespeichert werden. Aber wie speicher ich das am
    besten? Welchen Spaltentyp soll ich nehmen? Und wie vergleiche ich das dann mit dem heutigen
    Datum?



    Vielen Dank schon jetzt einmal
    Lg. Patistar
     
  2. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    Vielleicht wäre es für Dich sinnvoll, erst einmal Einstiegsliteratur bzw. Sample-Scripts zu PHP/MySQL zu lesen.

    Die SQL-Abfrage "SELECT * FROM tabelle" holt Dir alle Datensätze raus. "SELECT name, thema, datum, id FROM tabelle" würde Dir die Felder name, thema datum und id heraussuchen.
    Wenn Du z.B. mit dem Feld id einen HTML-Link erzeugst, könntest Du über "SELECT * FROM tabelle WHERE id=$hier_die_Id_Variable_einsetzen" die einzelnen PNs anzeigen.

    Du muss bei sowas aber darauf achten, dass die vom User übergebenen Sachen richtig sind und Sicherheitsprobleme wie SQL-Injections durch Gegenmaßnahmen verhindern.
     
  3. Patistar

    Patistar Braeburn

    Dabei seit:
    17.01.08
    Beiträge:
    46
    Das war auch nicht meine Frage, ich will wissen wie ich auf eine MySQL Tabelle verlink...

    Die Befehle kann ich natürlich

    aber ich kann ja nicht:

    <href="SELECT * FROM tabellenname where soundso = soundso">$row->name</a>

    daswar eher meine Frage
     
  4. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    Du musst halt auf ein Script bzw. eine Scriptfunktion verlinken, die die Betreffenden Daten anzeigt.

    Sowas in der Richtung "<a href=showdetails.php?action=show&id=3234234>" und dann im Skript anhand der id (oder was auch immer) den Datensatz anzeigen.
     
  5. ZIG-ZAG

    ZIG-ZAG Finkenwerder Herbstprinz

    Dabei seit:
    10.10.07
    Beiträge:
    466
    du musst erst die Verbindung zur DB aufbauen, dann eine Abfrage ausführen und dann das Ergebnis ausgeben.

    Der Code dafür sieht dann in etwa so aus:

    <?php
    $host="localhost";
    $benutzer="xxxxxxxxx";
    $kenn="kenwort";
    $db = mysql_connect($host, $benutzer, $kenn);
    $query = "use Name der DB";


    mysql_select_db("Name der DB",$db) or exit
    ("Datenbank nicht geöffnet");
    ....
    Ausgabe erfolgt dann über ECHO
    ?>
     
  6. Patistar

    Patistar Braeburn

    Dabei seit:
    17.01.08
    Beiträge:
    46
    Ich weiß wie ich verbindung aufbaue, beenden und auch wie ich daten ausgebe und auch update oder lösche oder hinzufüge...

    Bananenbieger: Also über GET ?
     
  7. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    Bitte sehe uns nach, dass wir davon ausgegangen sind, dass Du das nicht weißt ;)

    Na klar über GET. Das ist die Standardmethode, um über Links bestimmte Methoden aufzufufen. Wenn Du auf hier auf "Antworten" klickst, kannst Du ja mal oben in die URL-Leiste schauen :)
     
  8. TaTonka

    TaTonka Neuer Berner Rosenapfel

    Dabei seit:
    19.03.06
    Beiträge:
    1.961
    Zu deiner zweiten Frage: Es gibt als Spaltentyp "TIME". Ich hab mir aber angewöhnt, die aktuelle Zeit als Unix-Timestamp in einer INT(14) zu speichern. Und diesen Timestamp mit der date()-Funktion in den Skripten weiterzuverarbeiten.
     
  9. Patistar

    Patistar Braeburn

    Dabei seit:
    17.01.08
    Beiträge:
    46
    Kann ich auch als INT speichern und dann mit der jetztigen Zeit vergleichen?
     
  10. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    Warum machst Du es nicht einfach so, wie TaTonka vorschlägt? Also entweder über TIME oder über einen INT mit Unix-Timestamp.

    Und natürlich kannst Du Zeiten miteinander vergleichen.

    http://de.php.net/date
     
  11. Maluku

    Maluku Finkenwerder Herbstprinz

    Dabei seit:
    10.05.08
    Beiträge:
    464
    Ich hab allerdings gemerkt, dass MySQL vor allem bei solchen Zeit-Operationen, sehr viel schneller als PHP oder Perl ist. http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

    Ich nehme immer DATETIME typen für Zeitangaben, und TIMESTAMP für Zeitpunkte. Meint: Wenn ich ein beliebiges Datum speichern will und damit Rechnen, nehme ich DATETIME und wenn ich den jetzigen Zeitpunkt speichern will,(z.B. bei einem Forum, wenn ein Post gemacht wurde), dann nehme ich TIMESTAMP und setze als Default wert CURRENT_TIMESTAMP oder so, dann muss man gar nicht selbst eintragen, wann der Post erzeugt wurde und MySQL macht es automatisch.

    Code:
    `text` TEXT,
    `last_change` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
    `creation` timestamp NOT NULL default CURRENT_TIMESTAMP
    
    würde zum Beispiel beim Ersten erstellen (INSERT INTO `bla` (`text`) VALUES ('alt')) `last_change` und `creation` gleichsetzen und dann wenn ich `text` ändere (UPDATE `bla` SET `text`='neu'), nur `last_change` auf den aktuellen Wert setzen.

    Aber wie gesagt, zur Berechnung ist DATETIME besser, oben rechne ich ja nicht mit den Werten. (Man kann TIMESTAMP mit FROM UNIXTIME) nach DATETIME umwandeln
     
  12. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    Vollkommen richtig, geht auch.
     

Diese Seite empfehlen