MySQL Abfrage (Freundesliste)

  • PHP

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Probber.

    MySQL Abfrage (Freundesliste)

    Hallo,

    bevor ich mein Problem schildere hoffe ich, dass ich hier im richtigem Forum gelandet bin. Falls das nicht der Fall sein sollte entschuldige ich mich hiermit.

    Mein Problem:

    Ich programmiere zur Zeit ein Messenger in Visual Basic, es klappt auch alles doch nun möchte ich eine Freundesliste erstellen die verschiedene Funktionen hat: Freunde hinzufügen, Freunde löschen.

    Nun ist mein Problem, dass ich die Abfragen nicht über Visual Basic regeln möchte, da die Daten dann offen im Programm liegen, daher möchte ich nun die Abfragen über PHP regeln, sodass ich mit VB nur einen Link wie diesen aufrufen muss:

    Quellcode

    1. http://www.website.de/freundesliste.php?user=USER&Freund=DERZUHINZUFÜGENDEFREUND


    Die Texte USER und DERZUHINZUFÜGENDEFREUND werden dann natürlich in Textboxen ersetzt

    Zurzeit habe ich zwei Datenbanken einmal, die noch leere freundesliste und zu anderem die anmeldeinformationen in der Benutzername, Passwort und Email gespeichert werden.

    Meine Frage an euch ist nun, wie schreibe ich so eine Art von PHP-Datei, denn ich habe noch nie wirklich in PHP programmiert.
    Ich hoffe das einer mir das vielleicht erklären könnte und vorerst auf C & P verzichten könnte, da ich ja was dabei lernen möchte.

    Mit freundlichen Grüßen

    Probber

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nikeee13“ ()

    Ich empfehle nur php.net , guck dir da mysql_connect() an und du siehst bei den Kommentaren endlose beispiele.
    Außerdem erhälst du auf php.net eine umfangreiche Dokumentation über Funktionen, Konstanten, usw. über PHP (einfach suchen).
    :)

    edit:
    mysql_connect() natürlich ohne () suchen ;)
    php.net ist eine gute Referenz, aber dort "Lernt" man nicht wirklich was, ebenso wie man bie MSDN wenig lernt, dort gibts Codebeispiele aber keine Erklärung.

    Wenn man wissen will welche Parameter welche Funktionen erwarten oder mit welcher Funktion ich was realisieren kann ist php.net die richtige Anlaufstelle.
    So, ich konnte gestern Abend leider nicht mehr zurück schreiben, doch habe ich schonmal etwas versucht undzwar das "Freunde hinzufügen"

    Hier ist der Code:

    PHP-Quellcode

    1. <?php
    2. //Verbindungsinformationen festlegen
    3. $dbhost = "localhost";
    4. $dbname = "username";
    5. $dbuser = "db";
    6. $dbpass = "passwort";
    7. // Variablen festlegen
    8. $username = $_GET['user'];
    9. $friend = $_GET['friend'];
    10. // Verbindung aufbauen
    11. mysql_connect($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
    12. //Freund hinzufügen
    13. $userhinzufügen = ("INSERT INTO freundesliste (Benutzer) VALUES ('$username')");
    14. $freundhinzufügen = ("INSERT INTO freundesliste (Freund) VALUES ('$friend')");
    15. $ausführung01 = mysql_query($userhinzufügen);
    16. $ausführung02 = mysql_query($freundhinzufügen);



    Mein Problem ist dabei, dass wenn ich im Browser das hier eingebe:

    Quellcode

    1. http://website.de/freundhinzu.php?username=DERUSER&friend=HINZUZUFÜGENDERFREUND


    Keine Daten in die Tabelle eingetragen werden.

    Ich befürchte der Fehler liegt in Variabeln festlegen, da ich dies noch nicht ganz verstanden habe (Ich meine damit, wie ich den Variablen über den Browser einen Wert zuweisen kann).
    Sollte jemand den Fehler entdecken so wäre ich sehr dankbar, wenn ihr mir diesen zeigen könntet.

    Mit freundlichen Grüßen

    Probber
    So kannst du die Sachen in die Datenbank schreiben:

    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. //Verbindungsinformationen festlegen
    3. $dbhost = "localhost";
    4. $dbname = "datenbankname";
    5. $dbuser = "root";
    6. $dbpass = "";
    7. if (!isset($_GET['user'])) {echo "Keinen 'User' angegeben"; exit;}
    8. if (!isset($_GET['friend'])) {echo "Keinen 'Friend' angegeben"; exit;}
    9. // Variablen festlegen
    10. $username = $_GET['user'];
    11. $friend = $_GET['friend'];
    12. // Verbindung aufbauen
    13. mysql_connect($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
    14. mysql_select_db($dbname) or die("Could not connect: ".mysql_error());
    15. //Freund hinzufügen
    16. $userhinzufuegen = "INSERT INTO freundesliste VALUES ('". mysql_real_escape_string($username). "', '". mysql_real_escape_string($friend) . "')";
    17. mysql_query($userhinzufuegen);
    18. echo $userhinzufuegen;
    19. ?>



    Wenn dann die Sachen in der Datenbank stehen, sollte das so aussehen:
    So, ich habe nun die Funktion für das Hinzufügen fertig, dank Zaziki.

    Nun ist mein Problem das Löschen es funktioniert auch alles, doch werden alle Freunde des Benutzers "test" gelöscht.
    Der Link ist wie beim Hinzufügen gestaltet.

    Hier sieht ihr den Code:

    PHP-Quellcode

    1. <?php
    2. //Verbindungsinformationen festlegen
    3. $dbhost = "localhost";
    4. $dbname = "usr_web298_2";
    5. $dbuser = "web298";
    6. $dbpass = "4315a9d6";
    7. if (!isset($_GET['user'])) {echo "Keinen 'User' angegeben"; exit;}
    8. if (!isset($_GET['friend'])) {echo "Keinen 'Friend' angegeben"; exit;}
    9. // Variablen festlegen
    10. $username = $_GET['user'];
    11. $friend = $_GET['friend'];
    12. // Verbindung aufbauen
    13. mysql_connect($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
    14. mysql_select_db($dbname) or die("Could not connect: ".mysql_error());
    15. //Freund löschen
    16. $userloeschen = "DELETE FROM freundesliste WHERE Benutzer = '". mysql_real_escape_string($username)."'";
    17. $friendloeschen = "DELETE FROM freundesliste WHERE Freund = '". mysql_real_escape_string($friend)."'";
    18. mysql_query($friendloeschen);
    19. mysql_query($userloeschen);
    20. echo $friendloeschen;
    21. ?>



    Nun wie schon oben beschrieben löscht er ja alle Einträge von "test" und nicht den Eintrag von "test" und "Freund" (test = Benutzer, Freund = Freund)

    Hat jemand eine Idee ?
    Also nur mal zum klarstellen..

    $userhinzufügen = ("INSERT INTO freundesliste (Benutzer) VALUES ('$username')");
    $freundhinzufügen = ("INSERT INTO freundesliste (Freund) VALUES ('$friend')");

    Sind 2 querys für 1 Tabelle. Beide werte gehören zusammen (oder nicht?)
    Dann machs doch so

    INSERT INTO freundesliste (Benutzer, Freund) VALUES ($username, $friend);