"Abo-Funktion", auf Vorhandensein überprüfen

  • Themenstarter Themenstarter ans meer
  • Beginndatum Beginndatum
A

ans meer

Hallo und einen schönen Nachmittag,

ich habe mir vor einer Weile einen Blog prorgrammiert (für die, die das nicht kennen: eine Art Online-Tagebuch) inklusive Kommentarfunktion. Nun wollte ich ihn so erweitern, dass man, wenn man einen Kommentar abgibt, wählen kann, ob man zu weiteren Kommentaren zu diesem Eintrag benachrichtigt werden will.

Ich habe dann in meiner Datenbank eine weitere Tabelle angelegt, die folgende Spalten enthält:
- id (nur zur Identifizierung des Abos)
- entry_id (zu welchem Eintrag gehört das Abo)
- user_name (Name des Kommentierenden)
- user_mail (Email-Adresse des Kommentierenden)
- code (Absicherung zum Löschen eines Abos)

Nun möchte ich, dass bevor ein neues Abo in diese Tabelle eingetragen wird, überprüft wird, ob denn für den gleichen Eintrag und die gleiche Email-Adresse schon ein Abo vorhanden ist.

Dabei dachte ich mir, er soll alle Datensätze aus diese Tabelle heraussuchen, bei denen sowohl entry_id als auch user_mail mit den aktuellen Werten übereinstimmen, diese zählen und wenn als Ergebnis 0 ist, dann darf er weitermachen.

PHP:
/* Überprüfung, ob bereits ein Abo für diesen Eintrag vorhanden ist */

            $comments_abo_exists = 'SELECT * FROM journal_comments_abo WHERE entry_id = "'.$entry_id.'" AND user_mail = "'.$mail.'" ORDER BY id';
			$comments_abo_exists = mysql_num_rows($comments_abo_exists);
			$existst = '';
			
			if ($comments_abo_exists == '0' OR $comments_abo_exists == '')
				{
				$exists = 'no';
				}
			else { $exists = 'yes'; }

Die Fehlermeldung, die ich bekomme, ist ziemlich simpel, aber ehrlich gesagt: ich finde auf Teufel komm raus keinen Fehler.
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\xampp\htdocs\moi\journal\comment.php on line 72
Ich habe bereits überprüft: die Variablen $mail und $entry_id sind nicht leer und enthalten auch die korrekten Werte, den Tabellennamen habe ich auch richtig geschrieben.

Ich wäre sehr dankbar, wenn jemand den Fehler finden würde, ich verzweifle hier nämlich schon beinahe. Merci für's Anschauen,

lieeb Grüße.
 
lass dir doch mal mit mysql_error() den Fehler ausgeben oder kopiere
deine Abfrage in phpmyadmin und führe sie dort aus. dann bekommst
du auch eine Fehlermeldung, die Aussagekraft hat.
 
In phpMyAdmin bekomme ich (leider) gar keine Fehlermeldung, sondern es tut alles, wie es auch soll. :/
 
Hallo,

probier doch mal folgendes:

PHP:
/* Überprüfung, ob bereits ein Abo für diesen Eintrag vorhanden ist */ 

			$comments_abo_exists = 'SELECT * FROM journal_comments_abo WHERE entry_id = "'.$entry_id.'" AND user_mail = "'.$mail.'" ORDER BY id'; 
			$comments_abo_exists = mysql_query($comments_abo_exists); 
			$comments_abo_exists = mysql_num_rows($comments_abo_exists); 
			$existst = ''; 
			 
			if ($comments_abo_exists == '0' OR $comments_abo_exists == '') 
				{ 
				$exists = 'no'; 
				} 
			else { $exists = 'yes'; }
 
Wuah, du bist toll! *g* Jetzt tut es so, wie es soll, alles perfekt, vielen, vielen Dank (:
 
Zurück