Ankündigung

Einklappen
Keine Ankündigung bisher.

arbeiten mit mysql | auslesen etc.

Einklappen

Neue Werbung 2019

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

  • arbeiten mit mysql | auslesen etc.

    Hallo liebe Community,
    Kurz vorweg, ich habe dieses Forum über einen Freund gefunden und hoffe hier meine Antworten zu bekommen. Das es einfacher später wird meine angehäuften Fragen zu beantworten werde ich sie in Nummern unterteilen.

    1. Was ist der unterschied zwischen mysqli und mysql? Da ich derzeit noch meine derzeitigen Fragen mit mysql mache aber schon von vielen gehört habe ich sollte auf mysqli umsteigen? Wie läuft das da ab? Kann man da irgendwo eine Datenbank erstellen oder geht das per Code automatisch. Habe mir ja schon 2-3 Codes angeschaut und wie ich lesen konnte wird die Datenbank automatisch erstellt.


    2. Ich habe ein kleines News system geschrieben inkl. Admin Panel. Die Beiträge werden auch erfolgreich angezeigt auf einer seite nur jetzt wollte ich im Acp noch eine Funktion um bestimmte Beiträge also die rows in der datenbank zu löschen. Wie funktioniert das?


    3. In meinem derzeitigen mysql Login wird wenn ich ein nicht existierenden User eingebe eine non-object fehlermeldung ausgegeben. Woran liegt das? bzw. kann mir jmd den code hier drunter mal überarbeiten oder sagen was ich ändern muss das er schaut ob ein user existiert das keine fehlermeldung kommt.

    PHP-Code:
     <?php
    session_start
    ();
    ?>

    <?php
    $verbindung 
    mysql_connect("localhost""root" "")
    or die(
    "Verbindung zur Datenbank konnte nicht hergestellt werden");
    mysql_select_db("homepage") or die ("Datenbank konnte nicht ausgewählt werden");

    $username $_POST["username"];
    $passwort md5($_POST["password"]);

    $abfrage "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1";
    $ergebnis mysql_query($abfrage);
    $row mysql_fetch_object($ergebnis);

    if(
    $row->passwort == $passwort)
        {
        
    $_SESSION["username"] = $username;
        echo 
    "Login erfolgreich. ";
        }
    else
        {
        echo 
    "Benutzername und/oder Passwort waren falsch.";
        }

    ?>

    4. Wenn das oben alles klappt bräuchte ich noch das man nicht nur mit $_SESSION["username"] den namen ausgegeben kann sondern auch noch andere Daten wie geburtsdatum auslesen kann.

    Nur nebenbei
    (5. Ist es eig. Kompliziert eine Art Memberliste zu schreiben? Wo alle registrieren angezeigt werden?)

    Mit freundlichen Grüßen,
    Marcel.


  • #2
    1. mysql_, mysqli_ und PDO sind "nur" die schnittstelle, mit der du auf die Datenbank zugreifst. Das Datenbank-System dahinter bleibt eine MySQL-Datenbank.

    2. Löschen geht mit einer "DELETE"-Query. Werde etwas spezifischer, wo es hängt.

    3. Die Fehlermeldung kommt, da du mit $row arbeitest ohne überhaupt zu prüfen, ob es eine Row gibt.

    4. Dann musst du beim Login eben auch die anderen Daten in der Session speichern oder bei jedem Seitenaufbau alles neu aus der Datenbank laden

    5. Nein
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      1. Was ist der unterschied zwischen mysqli und mysql? Da ich derzeit noch meine derzeitigen Fragen mit mysql mache aber schon von vielen gehört habe ich sollte auf mysqli umsteigen? Wie läuft das da ab? Kann man da irgendwo eine Datenbank erstellen oder geht das per Code automatisch. Habe mir ja schon 2-3 Codes angeschaut und wie ich lesen konnte wird die Datenbank automatisch erstellt.
      Der entscheidende Unterschied ist der, daß die mysql-Schnittstelle veraltet ist und bald verworfen wird.
      mysqli und auch PDO sind alternative Schnittstellen, die Du verwenden solltest. Wenn Du eh neu umsteigst, würde ich Dir zu PDO raten!
      In der Regel erstellst Du aber die Datenbanken im Vorfeld und nutzt die Schnittstellen lediglich, um mit Deinem System (PHP) darauf lesend und schreibend zuzugreifen. Vorstellbar wäre natürlich auch per Script Datenbanken zu erstellen, die erforderlichen rechte vorausgesetzt.

      2. Ich habe ein kleines News system geschrieben inkl. Admin Panel. Die Beiträge werden auch erfolgreich angezeigt auf einer seite nur jetzt wollte ich im Acp noch eine Funktion um bestimmte Beiträge also die rows in der datenbank zu löschen. Wie funktioniert das?
      Nun, wenn die Datenbank sinnvoll aufgebaut ist, hat jeder Eintrag eine eindeutige Kennung (ID). Dann liest Du die Einträge aus, lässt sie dir im ACP anzeigen und löst bei Klick ein DELETE auf den Datensatz, den Du ja eindeutig identifizieren kannst anhand der ID.

      3. In meinem derzeitigen mysql Login wird wenn ich ein nicht existierenden User eingebe eine non-object fehlermeldung ausgegeben. Woran liegt das? bzw. kann mir jmd den code hier drunter mal überarbeiten oder sagen was ich ändern muss das er schaut ob ein user existiert das keine fehlermeldung kommt.
      siehe tkausl

      4. Wenn das oben alles klappt bräuchte ich noch das man nicht nur mit $_SESSION["username"] den namen ausgegeben kann sondern auch noch andere Daten wie geburtsdatum auslesen kann.
      Auch wieder Datensatzkennung durch eindeutige ID. In der Session würde ich nur die ID des Users speichern, den Rest kannst Du Dir dann aus der DB holen.

      5. Ist es eig. Kompliziert eine Art Memberliste zu schreiben? Wo alle registrieren angezeigt werden?
      Wie tkausl schon sagt: Nein, ist es nicht.
      Mich wundert bei der Frage allerdings, wie Du es geschafft hast, daß Deine Beiträge angezeigt werden, wie Du in 2. schreibst.
      Das Prinzip ist nahezu dasselbe.
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        Hinweis:

        Die original mysql-Erweiterung ist veraltet (mysql_*-Funktionen) und wird in den kommenden Versionen aus PHP entfernt. Aktuell wirft sie schon E_DEPRECATED-Fehler bei einer Verbindung zur Datenbank. Des Weiteren stehen dir sehr viele tolle Features von mysql mit diesen Funktionen nicht zur Verfügung! Weiterführende Links:
        Choosing an API
        Warum man mysql* generell nicht (mehr) nutzen sollte.
        Wie man von mysql* auf PDO umsteigt
        Wissenswertes zum Thema SQL-Injection

        Der schließende Tag eines PHP-Blocks am Ende einer Datei ist optional. In einigen Fällen ist das Weglassen hilfreich:
        • Es können ungewollte Whitespaces am Ende einer Datei auftreten, durch die ein späteres setzen von headern be-/verhindert werden kann.
        • Außerdem verhindert dies, dass beim Output Buffering Whitespaces am Ende eines durch die eingebundenen Dateien erzeugten Parts.
        • Im PSR Standard (PSR-2) ist ?> sogar ausdrücklich verboten, wenn in einer Datei ausschliesslich PHP verwendet wird (2.2 Files).
        Standards - Best Practices - AwesomePHP - Guideline für WebApps

        Kommentar

        Lädt...
        X