Beiträge von IngamPlay

    Erstmal natürlich wiedermal vielen Dank an euch, ich denke der Code ist soweit fast funktionsfähig, er gibt also keine Fehlermeldung aus.


    jedoch tut sich immer noch nichts wenn ich den Button drücke, ich denke es liegt daran das der "button" gar nicht ausgibt das er gedrückt wurde, sondern nur weiterleitet.


    PHP
    <td>
    <a href="loeschen.php?delete=<?php echo $fetch['id']; ?>"></html>
    <center>
    <button>
    <img width="25" src="../images/button_cancel.png" alt="read_message" >
    </button>
    </center>
    </a>
    </td>;


    Und die loeschen.php benötigt ja bei der Abfrage das wissen ob er denn nun gedürckt wurde.

    Code
    if(isset($_SESSION["username"]) && isset($_GET['delete']) && is_numeric($_GET['delete']))
    [size=10]

    [/size]



    Wie müsste ich denn den HTML button definieren das er mit PHP kommuniziert? funktioniert da auch value? Eher nicht, oder? 8|


    - sql Query zusamenstellen:

    PHP
    §query = "
    DELETE FROM `nachrichten`
    WHERE 
        empfaenger = ".mysql_real_escape_string($username)." -- "extra" sicher stellen, dass der benutzer stimmt
        AND id = ".mysql_real_escape_string($_GET['delete'])." 
    LIMIT 1 -- FALLS mal jemand eine SQL injection hinbekommen sollte, dann KANN man damit u.U. schlimmeres verhindern. Kann man aber auch umgehen. (Thema schweift zu sehr ab)
    "


    Wenn jetzt doch de id, also die Nachricht nicht existieren sollte, dann passiert "einfach nix".
    Ein UPDATE oder DELETE gibt keinen Fehler zurück, wenn kein passender Datensatz gefunden wurde.

    Das ist das einzige was ich momentan so gar nicht verstehe ?(
    Hast du eventuell den Code falsch geschrieben?


    egal in welchen formen ich deinen Code anwende bekomme ich immer nur eine Fehlermeldung in der 18 Zeile. (hier 12)
    AND id = '.mysql_real_escape_string($_GET['delete']).'


    Ich poste mal den gesamten Code, ich glaube eher das ich einen Fehler gemacht haben.


    PS: ansonsten funktioniert alles super! :)


    Code von loeschen.php
    [PHP]


    <?php
    if(isset($_GET['delete'])and is_numeric($_GET['delete'])) {
    ?>
    <?php
    }
    ?>
    <?php
    $query = "
    DELETE FROM nachrichten
    WHERE
    empfaenger = '.mysql_real_escape_string($username).'
    AND id = '.mysql_real_escape_string($_GET['delete']).'
    LIMIT 1
    "
    ?>
    [/PHP]

    Hallo an alle!


    (wie immer) stelle ich eine sehr komplizierte Frage, ... zumindest für mich. ^^


    Ich benötige einen Button der bei einem Klick eine bestimmte Action in PHP ausführt. Die PHP Funktion soll eine ganz bestimmte Zeile Löschen.


    ganz billig geschrieben würde sie ca. so aussehen:

    SQL
    DELETE FROM nachrichten WHERE benutzer='$username' AND gelesen='1' AND empfaenger='$empfaenger' AND zeit='$datum'

    (nur grobe angaben zum Verständnis)


    Soweit so gut. Das einzige Problem an der ganzen Sache ist nur das ich diese Variablen wie $empfaenger oder $datum gar nicht habe.
    Die größte Frage ist bei mir wie schreibe ich diese Variablen?


    PS: Ich denke die frage ist sehr ungenau und nicht sonderlich zu verstehen. Daher schreibe ich euch mal meinen Code etc.
    -----------------------------------------------------------------------------------------------------------------------------------
    Dies ist der Code zum erstellen der Tabelle
    [PHP]
    $username = $_SESSION["username"];
    $ungelesentabelle = "SELECT * FROM nachrichten WHERE gelesen = '0' AND empfaenger = '$username'";
    $query = mysql_query($ungelesentabelle) or die(mysql_error());
    ?>
    <?php


    $username = $_SESSION["username"];
    $ungelesentabelle = "SELECT * FROM nachrichten WHERE gelesen = '0' AND empfaenger = '$username'";
    $query = mysql_query($ungelesentabelle) or die(mysql_error());
    ?>
    <?php
    echo '<table border height=80 border="1">';
    echo '<colgroup>';
    echo '<col width="80">';
    echo '<col width="80">';
    echo '<col width="150">';
    echo '<col width="60">';
    echo '<col width="70">';
    echo '</colgroup>';
    echo '<tr>';
    echo '<th>Für: </th>';
    echo '<th>Von: </th>';
    echo '<th><center>Datum</center></th>';
    echo '<th><center>Lesen</center></th>';
    echo '<th><center>Löschen</center></th>';
    echo '<tr>';
    while($fetch = mysql_fetch_assoc($query)) {
    echo '<tr>';
    echo '<td>' . $fetch['empfaenger'] . '</td>';
    echo '<td>' . $fetch['benutzer'] . '</td>';
    echo '<td><center>' . $fetch['zeit'] . '</center></td>';
    echo '<td><center><button><img width="25" src="../images/read_message.png" alt="read_message" ></button></center></td>';
    echo '<td><center><button><img width="25" src="../images/button_cancel.png" alt="read_message" ></button></center></td>';
    echo '</tr>';
    }
    echo '</table>';
    ?>[/PHP]
    -----------------------------------------------------------------------------------------------------------------------------------
    Meine ausgegebene Tabelle sieht anschließend so aus:


    [Blockierte Grafik: http://metrostorm.bplaced.com/Unbenannt.PNG]


    -----------------------------------------------------------------------------------------------------------------------------------


    Nun möchte ich das wenn man auf "Löschen" klickt, (also das img) das der Button "sagt" sobald er geklickt wurde "eh du, PHP? lösche mal bitte die Zeile, die mit allen Einträgen übereinstimmen.)
    Also soll geprüft werden das der Absender der selbe ist, der Empfänger der selbe ist, ebenfalls das Datum.
    So, das PHP genau diese Nachricht so sehr in der Tabelle 'nachrichten' gefiltert hat und sie anschließend löschen kann. bzw. automatisch gelöscht wird sobald das img bzw. der Button gedrückt wurde.


    SO! Sorry wenn sich die Frage sooo lang gezogen hat. eigentlich wollte ich nur kurz eine Frage posten, dann wurde es jedoch immer mehr, so das ich nun meinen gesamten Fehler geschildert habe.


    Ich hoffe das sich die mühe für die Frage gelohnt hat und hoffe auf weiterhin hilfreiche Antworten! :)

    Hallo an alle!


    Ich benötige eine etwas kompliziertere Abfrage an der ich schon etwas länger hänge.



    Dies ist die Abfrage die ich schon soweit geschafft habe, die auch funktioniert.
    (sorry wenn ich die PHP code-Funktion nicht verwende, jedoch wird alles etwas falsch formatiert.


    PHP
    <?php
      $abfrage = "SELECT * FROM nachrichten WHERE gelesen = '0'";
      $ergebnis = mysql_query($abfrage);
      $menge = mysql_fetch_row($ergebnis);
      $menge = $menge[0];
      echo $menge;
    ?>


    Jetzt wird mir auch die menge ausgegeben die ich haben wollte. Fast.


    Nun würde ich noch gerne eine Abfrage einbauen die nachschaut ob man der richtige User ist.
    Den Usernamen lasse ich immer durch ($_SESSION["username"]) ausgeben.


    Nun ist die Frage wie ich das alles zusammen vermischen soll, ebenfalls wie ich daraus eine Zahl ausgeben soll.


    Wüsstet Ihr eventuell wie man das regelt?


    Vielen Dank für die Hilfe! :)

    wolf
    Danke für den Ratschlag, ich werde mir mal überlegen um zu steigen. Vorerst wollte ich jedoch meine eigenen Fehler korregieren und auch verstehen. :)


    Nun habe ich mit mysqli nur ein kleines Problem, Die Fehlermeldung ist nur das die Variable $DB_Datenbank nicht ausreicht. Wenn ich die Daten extrern ohne Variable eingebe wird mir beispielsweise gesagt das ich zu viele Daten angegeben habe.


    --------------------------------------------------------------------


    Hier der Fehlercode:
    Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in /users/metrostorm/www/Messanger/messages.php on line 23
    Fehler mit der Datenbank


    --------------------------------------------------------------------




    Wüsstest du was man noch angeben muss? Ich dachte nochmal den Datenbank namen oder die Tabelle nochmals angeben. Aber bisher war keins davon richtig. 8| Ebenfalls bringt es leider nichts "null" zu schreiben. :huh:

    wolf
    Erstmal vielen Dank für deine Bemühungen! Hat auch fast alles geklappt. Meine Daten eingegeben und selber ein wenig angepasst mit Login etc. Nun ist jedoch das Problem das ich ebenfalls nichts in die DB eintragen kann. Womöglich liegt es an dem "i" bei mysql. Wurde im Fehlercode ja beschrieben.
    ---------------------------------------------------------------
    Deprecated: mysql_connect() [function.mysql-connect]: The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /users/metrostorm/www/Messanger/messages.php on line 17
    Konnte nicht eingetragen werden


    ---------------------------------------------------------------

    Weißt du eventuell wie man dann mysqli verwendet? Ich habe einfach mal ganz billig ein "i" hinter mysql geschrieben, aber wer hätte es gedacht, es klappt nicht. :D

    Die Ordnung mit dem Quellcode ist da leider nicht so meins! Meine anderen Dateien sehen leider auch nicht besser aus ... müsste ich mich mal ran setzen. :)
    Php error reporting? habe ich noch nie etwas von gehört! Bin auch gerade mal seit rund 3 - 4 Tagen in PHP, also noch ein sehr neuer! Aber danke für die Unterstützung :)

    Guten Abend!
    ich sitze nun seit rund zwei Stunden daran ein Nachrichtensystem zu schreiben und zu entwickeln. Über diesem YouTube Link wollte ich es lernen, sowie mit meiner Datenbank etc. anwenden. Obwohl ich nach mehrfachem durchschauen alles 1:1 so habe, wie in dem Video, möchte die php einfach keinen Eintrag in meine Datenbank machen. ebenfalls habe ich diese 1:1 so erstellt wie im Video. Da dies auf dauer sehr lange an meinen Nerven zieht, bin ich in der Hoffnung das mir hier eventuell einer weiter helfen könnte!