Prüfen ob Eintrag noch in Datenbank vorhanden

Tomas1967

Mitglied
Hallo,

ich habe ein Problem. Wenn ich auf meiner Seite beispielsweise Einträge lösche, dann lässt sich die Seite/URL noch aufrufen.

Ist es irgendwie möglich zu prüfen, ob ein Eintrag/ID noch in der Dateinbank vorhanden ist?

Wenn nicht mehr vorhanden irgendwas sinnvolles machen. Wenn noch vorhanden nichts tun.

Hoffentlich versteht mich auch wer *gg*
 
Zuletzt bearbeitet:
Hallo!
Hoffentlich versteht mich auch wer *gg*
Könnte sein.....

Wenn Du Dein Query ausführst, wird im Erfolgsfall TRUE zurück gegeben..... andernfalls FALSE.
PHP:
$query = mysql_query("DELETE FROM............ ");
if($query) {
    echo "Eintrag wurde gelöscht";
} else {
    echo "Eintrag konnt nicht gelöscht werden!";
}
Gruss Dr Dau
 
Neee, ich möchte ja nichts löschen.

Beispiel - ich habe einen Eintrag mit folgender Url - http://www.meineDomain.de/eintrag-12.html

In der Datenbank steht dieser mit - ID, Cid, Titel, Beschreibung u.s.w

Wenn ich diesen Eintrag jetzt aus der Datenbank löschen, dann lässt sich die URL - http://www.meineDomain.de/eintrag-12.html aber noch aufrufen.

Und genau das möchte ich unterbinden. Nur weiß ich nicht wie *heul*

Ich benötige eine Abprüfung, ob ein Eintrag noch in der Datenbank vorhanden ist.

Eintrag nicht vorhanden = mach was
Eintrag vorhanden = alles okay
 
Prüf über die SuperGlobale GET , ob der Wert einen Abgleich in der Datenbank hat

PHP:
$get = htmlentities($_GET['get']);
if ((!empty($get)) && (is_numeric($get))) {
$sql = mysql_query("SELECT ID FROM $tabelle WHERE ID = '".mysql_real_escape_string($get)."'");
if (mysql_num_rows($sql) == 1) {
echo " alles okay";
} else {
echo "mach was";
}
}
 
Zuletzt bearbeitet:
Die HTML Datei ist also auf dem Webspace weiterhin vorhanden?

Hmm, keine Ahnung ob sich da irgendwas mit mod_rewrite machen lässt.
Wenn nicht, dann würde ich in jede Seite eine Datenbankabfrage einbauen (oder einbinden).
PHP:
<?php
$domain = "http://www.meineDomain.de";
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("Datenbank") or die(mysql_error());
$check = mysql_query("SELECT * FROM `Tabelle` WEHRE `URL` = '".mysql_real_escape_string($domain.$_SERVER['PHP_SELF'])."'");
if($check == false) {
    header("Location: ".$domain); /* Auf die Startseite umleiten, da die Seite nicht in der Datenbank steht */
} else {
?>
<html>
<!-- HTML-Code ausgeben -->
....
....
....
....
</html>
<?php
}
?>
Dann noch Apache mittels .htaccess beibringen Dateien mit der Endung .html durch den PHP Parser zu jagen:
Code:
AddType aplication/x-httpd-php .html
Die Geschichte ist aber entsprechen serverlastig..... da bei jeder Seite die aufgerufen wird, eine Datenbankabfrage stattfindet.
 
PHP:
$id = htmlentities($_GET['id']); 
if ((!empty($id)) && (is_numeric($id))) { 

$sql = mysql_query("SELECT id FROM $tabelle WHERE id = '".mysql_real_escape_string($id)."'"); 
if (mysql_num_rows($sql) == 1) { 
$content.= "<meta name=\"robots\" content=\"index,follow\" />\n";
} else { 
$content.= "<meta name=\"robots\" content=\"NOINDEX, NOFOLLOW\" />\n";
} 
}
Nun wird mir diese Zeile aber in den Kategorien nicht mehr angezeigt.

$content.= "<meta name=\"robots\" content=\"index,follow\" />\n";

Gibt es da nicht eine Lösung, die nur was macht wenn id nicht vorhanden und sonst alles so belässt?
 
PHP:
$id = htmlentities($_GET['id']); 
if ((!empty($id)) && (is_numeric($id))) { 

   $sql = mysql_query("SELECT id FROM $tabelle WHERE id = '".mysql_real_escape_string($id)."'"); 
   if (mysql_num_rows($sql) == 0) { 
       # ID nicht vorhanden ...
   }
}
 
Zurück