kostenloser Webspace werbefrei: lima-city


MySQL-Abfrage: leeres Resultat obwohl Datensätze vorhanden

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    lan-im-netz

    lan-im-netz hat kostenlosen Webspace.

    Hallo ihr alle!

    ich arbeite seit einiger Zeit an einer kleinen Community und bin schon vor einer ganzen Zeit auf ein Problem gestoßen, das ich einfach nicht in den Griff bekomme, und bei dem weder Google noch ein Freund, der sich sher gut mit php und dem drumherum auskennt, Rat weiß.

    Folgendes:
    Jeder User kann Gästebucheinträge und Kommentare zu geposteten Links verfassen., die man auch wieder löschen können soll. Das Problem ist, dass man natürlich nur die Kommentare/Einträge löschen darf, die man selbst geschrieben hat. Es wird also immer, wenn man den betreffenden Eintrag selbst verfasst hat, ein kleines Kreuz angezeigt, das einen zu der Seite
    index.php?section=links&action=deletecomment&id=46 weiteleitet (Die 46 ist nur ein Beispiel und steht stellvertretend für die ID des zu löschenden Kommentars/Eintrags). Da man diesen Link aber einfach verändern kann, kann man ja nicht einfach sagen, wir löschen jetzt den Kommentar mit der ID 46. Also nimmt man aus der Tabelle "Kommentar" die "AutorID" und vergleicht sie mit der eigenen "UserID". Dazu folgende Abfrage:
    if($_GET['action'] == 'deletecomment') {
          if(!isset($_GET['id'])) {
    	$ret['filename'] = 'links_overview.tpl';
       	return $ret;
          }
          $sql = 'SELECT
                      AutorID
                  FROM
                      Kommentar
                  WHERE
                      ID = ?';
          if (!$stmt = $db->prepare($sql)) {
              die ('MySQL-Fehler: '.$db->error);
          }
          $stmt->bind_param('i', $_GET['id']);
          if (!$stmt->execute()) {
              die ('MySQL-Statement-Fehler: '.$stmt->error); 
          }
          $stmt->bind_result($AutorID);
          $stmt->close();
          var_dump($AutorID);
          if($AutorID != $UserID) {
          	return NO_RIGHTS;
          }
          $sql = 'DELETE FROM
                        Kommentar
                  WHERE
                        AutorID = ? AND
                        ID = ?';
          $stmt = $db->prepare($sql);
          if (!$stmt) {
             return $db->error;
          }
          $stmt->bind_param('ii', $UserID, $_GET['id']);
          if (!$stmt->execute()) {
             return $stmt->error;
          }
          $stmt->close();
          return showSuccess('Kommentar erfolgreich entfernt.');
      }

    Das Problem ist nun, dass bei var_dump($AutorID); das Ergebnis "int(0)" ist, und ich weiß absolut nicht was ich falsch gemacht habe.
    Vlt kann mir ja jmd von euch helfen? Ich hab hier extra alles ausführlich(st) erklärt, wenn jmd eine andere Lösung hat würde mir das auch sehr weiterhelfen...

    mfg

    Beitrag zuletzt geändert: 14.11.2010 14:44:59 von lan-im-netz
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du hast vergessen nach dem bind_result ein fetch zu machen ;)

    PS: Für zukünftige Projekte solltest du mysqli nicht mehr benutzen, zugunsten von PDO MySQL ;)
  4. Autor dieses Themas

    lan-im-netz

    lan-im-netz hat kostenlosen Webspace.

    hey super vielen dank klappt...
    naja typisch anfänger(fehler)...
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!