Help, Ticket System via MySQL

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Help, Ticket System via MySQL

    Hallo zusammen,

    ich habe ein Problem.Undzwar bin ich zz dran ein Ticket system zu schreiben.Ich habe soweit das Grundgerüst fertig. Nur hänge ich jetzt an den Sachen mit der MySQL datenbank.

    Ich weiß ehrlichgesagt nicht so recht wie ich weiter machen soll. Ich habe bisher das von PAWN etwas abgeschaut.
    Hier mal die die Datein. Ich war mir nicht so sicher wo es rein muss... deshalb habe ich es erstmal in die .html gemacht wo am das Ticket abgeschickt wird. Ich bin ein ziemlicher Neuling in MySQL.

    Nunja die .html sieht so aus

    PHP-Quellcode

    1. <table cellpadding="1" cellspacing="3" border="1">
    2. <tr>
    3. <th>ID</th>
    4. <th>name</th>
    5. <th>email</th>
    6. <th>nachricht</th>
    7. </tr>
    8. <tr>
    9. <td></td>
    10. <td></td>
    11. <td></td>
    12. <td></td>
    13. <td></td>
    14. <td></td>
    15. <td></td>
    16. <td></td>
    17. <td></td>
    18. <td></td>
    19. </tr>
    20. </table>
    21. <?php
    22. $mysqlhost="localhost"; // MySQL-Host angeben
    23. $mysqldb="ticket";// MySQL Datenbank
    24. $mysqluser="ticket"; // MySQL-User angeben
    25. $mysqlpwd="xxxxxx"; // Passwort angeben
    26. $name = $_POST["name"];
    27. $email = $_POST["email"];
    28. $kommentar = $_POST["kommentar"];
    29. $connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
    30. mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
    31. if($email=="" OR $kommentar=="" OR $name=="")
    32. {
    33. echo "Bitte füllen Sie alle Felder aus";
    34. }
    35. else
    36. {
    37. echo "Ihr Eintrag wurde gespeichert";
    38. }
    39. ?>
    Alles anzeigen


    Und hier mal die sql datei:

    SQL-Abfrage

    1. CREATE TABLE `ticket` (
    2. `id` INT NOT NULL AUTO_INCREMENT ,
    3. `name` VARCHAR( 20 ) NOT NULL ,
    4. `email` VARCHAR( 30 ) NOT NULL ,
    5. `nachricht` VARCHAR( 30 ) NOT NULL ,
    6. PRIMARY KEY ( `id` )
    7. ) ENGINE = MYISAM ;


    Wie muss ich denn nun weiter machen? Also ich habe es so(hier der Link zu der Seite:)
    sonl.de/bewertung/

    Ich will halt das es gespeichert wird und dann via einen ACPs gelöscht bzw bearbeitet werden kann.

    MfG
  • Du musst mit Querys arbeiten.

    PHP-Quellcode

    1. mysql_query("INSERT INTO ticket (`name`,`email`,`nachricht`) VALUES(`Hans Dieter Schieß mich tot`,`hanssarpei@ruporn.us`,`LOL`)");

    Anstatt den Hans Dieter und so, kannst du alternativ auch Variablen einbringen.
  • also so?

    PHP-Quellcode

    1. <table cellpadding="1" cellspacing="3" border="1">
    2. <tr>
    3. <th>ID</th>
    4. <th>name</th>
    5. <th>email</th>
    6. <th>nachricht</th>
    7. </tr>
    8. <tr>
    9. <td></td>
    10. <td></td>
    11. <td></td>
    12. <td></td>
    13. <td></td>
    14. <td></td>
    15. <td></td>
    16. <td></td>
    17. <td></td>
    18. <td></td>
    19. </tr>
    20. </table>
    21. <?php
    22. $mysqlhost="localhost"; // MySQL-Host angeben
    23. $mysqldb="ticket";// MySQL Datenbank
    24. $mysqluser="ticket"; // MySQL-User angeben
    25. $mysqlpwd="xxxxxx"; // Passwort angeben
    26. $name = $_POST["name"];
    27. $email = $_POST["email"];
    28. $kommentar = $_POST["kommentar"];
    29. $connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
    30. mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
    31. if($email=="" OR $kommentar=="" OR $name=="")
    32. {
    33. echo "Bitte füllen Sie alle Felder aus";
    34. }
    35. else
    36. {
    37. mysql_query("INSERT INTO ticket (`name`,`email`,`nachricht`) VALUES(`$name`,`$email`,`$kommentar`)");
    38. echo "Ihr Eintrag wurde gespeichert";
    39. }
    40. ?>
    Alles anzeigen
  • Hi,

    also ersteinmal ist es eine blöde Idee als Neuling ein Ticketsystem zu schreiben. Das Ganze wird recht schnell sehr umfangreich (Ich schreibe z.T. selber eins). Du solltest lieber etwas kleiner anfangen. Die Idee finde ich zwar ganz gut aber die ist einfach zu hoch gegriffen.

    Deinen Beiträgen entnehme ich das du bisher nur PAWN kannst. Lerne ersteinmal die Grundlagen von PHP (und das sind nicht nur die PHP-Tags). Dann schreibe ein kleines Gästebuch auf Basis von Textdateien. Den Code musst du dann soweit optimieren wie es geht (doppelte Anweisungen entfernen, unnütze Deklarationen löschen). Da wo es geht die eigenen geschriebenen Funktionen gegen bereits in PHP enthaltene Funktionen austauschen. All das lässt sich mMn nur beim Arbeiten mit Dateien vernünftig lernen da es hier wirklich auf Performance ankommt.
    Als nächsten Schritt kannst du dann das Ganze auf eine Datenbank deiner Wahl umstellen. Das muss noch nichtmals MySQL sein. Wenn dir bspw. Access besser gefällt mach es damit :D

    Ansonsten sieht dein Code schonmal nicht verkehrt aus. Du solltest aber Werte die in die Datenbank geschrieben werden sollen und von einem User stammen vorher mit mysql_real_escape_string() bzw intval() (bei Zahlen) absichern um so SQL Injection zu verhindern. Weiterhin solltest du bedenken das nur weil du ein Query an den Server schickst dies auch angenommen und ausgeführt wird. Schreib es also lieber so:

    PHP-Quellcode

    1. <?php
    2. $mysqlhost="localhost"; // MySQL-Host angeben
    3. $mysqldb="ticket";// MySQL Datenbank
    4. $mysqluser="ticket"; // MySQL-User angeben
    5. $mysqlpwd="xxxxxx"; // Passwort angeben
    6. $name = $_POST["name"];
    7. $email = $_POST["email"];
    8. $kommentar = $_POST["kommentar"];
    9. $connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
    10. mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
    11. $name = mysql_real_escape_string($_POST["name"]);
    12. $email = mysql_real_escape_string($_POST["email"]);
    13. $kommentar = mysql_real_escape_string($_POST["kommentar"]);
    14. if($email=="" OR $kommentar=="" OR $name=="")
    15. {
    16. echo "Bitte füllen Sie alle Felder aus";
    17. }
    18. else
    19. {
    20. if(@mysql_query("INSERT INTO ticket (`name`,`email`,`nachricht`) VALUES(`$name`,`$email`,`$kommentar`)"))
    21. {
    22. echo "Ihr Eintrag wurde gespeichert";
    23. }
    24. else
    25. {
    26. echo "Beim Eintragen ist ein Fehler aufgetreten:<br />"
    27. echo mysql_error();
    28. }
    29. }
    30. ?>
    Alles anzeigen


    PS: Die Performace fängt schon an beim Unterschied in der Verwendung von " und '. Das mag bei kleinen Skripten zwar nicht auffallen aber jeder größer die Programme werden um so länger benötigt der Interpreter für den Quelltext. Erklärungen dazu folgen.
    [tabmenu]
    [tab='Werbung in eigener Sache']
    Du suchst einen Instant Messenger dessen Verbindung voll verschlüsselt ist? Weiterhin soll er mit anderen Instant Massenging Protokollen verknüpfbar sein? Außerdem möchtest du weltweit erreichbar sein (ähnlich icq und msn)? - Dann schick mir Post und erhalte ein unverbindliches, auf alle Fälle kostenloses, Angebot:
    [Blockierte Grafik: http://easy-scripting.net/icon/vCollection/pmEmptyS.png]
    [tab='Vorstellung']
    NurPech
    [tab='meine Tutorials']
    [subtab='C#']

    [subtab='PHP']

    [/tabmenu]

    Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von [Blockierte Grafik: http://i.creativecommons.org/l/by-nc-nd/3.0/80x15.png] verwendet werden
  • Ja gut ich habe mir ein Ticket System auch einfacherer Vorgestellt. Wenn ich doch jetzt das durch ein ACP Administrieren will muss ich mir ja erstmal ein Login System zusammen bauen und dann via echo ausgeben. Sähe das dann so aus?

    PHP-Quellcode

    1. // Datenbankverbindung
    2. <?php
    3. $mysqlhost="localhost"; // MySQL-Host angeben
    4. $mysqldb="ticket";// MySQL Datenbank
    5. $mysqluser="ticket"; // MySQL-User angeben
    6. $mysqlpwd="xxxxxx"; // Passwort angeben
    7. $connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
    8. mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
    9. $sql = "SELECT * FROM ticket";
    10. $db_erg = mysql_query( $sql );
    11. if ( ! $db_erg )
    12. {
    13. die('Ungültige Abfrage: ' . mysql_error());
    14. }
    15. echo '<table border="1">';
    16. while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
    17. {
    18. echo "<tr>";
    19. echo "<td>". $zeile['name'] . "</td>";
    20. echo "<td>". $zeile['email'] . "</td>";
    21. echo "<td>". $zeile['nachricht'] . "</td>";
    22. echo "</tr>";
    23. }
    24. echo "</table>";
    25. mysql_free_result( $db_erg );
    26. ?>
    Alles anzeigen


    Oder wie müsste es aussehen?

    Edit: und löschen dann so?

    PHP-Quellcode

    1. <?php
    2. $loeschen = "DELETE FROM ticket
    3. WHERE email= '§email";
    4. WHERE name= '§name";
    5. WHERE nachricht= '§nachricht";
    6. $loesch = mysql_query($loeschen);
    7. ?>


    ?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von G-Mac_x3 ()

  • PHP-Quellcode

    1. <?php
    2. $loeschen = "DELETE FROM ticket
    3. WHERE email= '$email' AND name= '$name' AND nachricht= '$nachricht'";
    4. $loesch = mysql_query($loeschen);
    5. ?>


    $ != §

    Ich empfehler die übrigens mit ID's zu arbeiten. Dann würde dein Statement zum Löschen so aussehen (oder ähnlich):

    PHP-Quellcode

    1. <?php
    2. $loeschen = "DELETE FROM ticket
    3. WHERE id = '$id'";
    4. $loesch = mysql_query($loeschen);
    5. ?>


    Das ist eine Performancesteigerung die man sich direkt von Anfang an merken sollte. Doch auch hier wird das erst bei größreren Statements bemerkbar.
    [tabmenu]
    [tab='Werbung in eigener Sache']
    Du suchst einen Instant Messenger dessen Verbindung voll verschlüsselt ist? Weiterhin soll er mit anderen Instant Massenging Protokollen verknüpfbar sein? Außerdem möchtest du weltweit erreichbar sein (ähnlich icq und msn)? - Dann schick mir Post und erhalte ein unverbindliches, auf alle Fälle kostenloses, Angebot:
    [Blockierte Grafik: http://easy-scripting.net/icon/vCollection/pmEmptyS.png]
    [tab='Vorstellung']
    NurPech
    [tab='meine Tutorials']
    [subtab='C#']

    [subtab='PHP']

    [/tabmenu]

    Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von [Blockierte Grafik: http://i.creativecommons.org/l/by-nc-nd/3.0/80x15.png] verwendet werden
  • ups ja

    habe grade mal das aufn Webspace geladen , doch nach der eingabe und den Sprung auf die danke.php( die wo es übermittelt wird) kommt einfach nur eine weiße seite.... zusehen auch hier:

    meintestforum.tk/ticket/


    Es werden keine Daten an die Datenbank übermittelt.... alle Daten sind richtig und es kommt auch keine Fehlermeldung... ich weiß Langsam nicht woran es liegen kann....

    und wenn ich abfragen will ob der eingeloggt ist (er loggt sich in einer anderen .php ein) muss ich ja include(index.php) machen oder? und dann einfach abfragen ob der bool auf true ist oder?