Zum Inhalt springen

mysql - automatisch löschen


Empfohlene Beiträge

Hallo Leute!

Ich habe mir eine Eventdatenbank programmiert. Dieses funktioniert im Grunde auch nur bei dem automatischen Löschbefehl läufts noch nicht so ganz...

Ich füge neue Datensaätze mit einem eigenen Formular hinzu. Wie gesagt geht einwandfrei...

Nun werden die Events nach dem Datum bei der Anzeige sotiert ( timestamp ). Nun würde ich gerne Events löschen die schon stattgefunden haben.

Leider funktioniert das nicht so ganz :(

Folgender Error tritt auf:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/www/web104/html/events.php on line 88

Line 88 ist die Löschezeile:

mysql_query($db_name,"DELETE FROM events WHERE id=" .$content["id"]. "");

Ausschnitt:

$ak_time = time();
$timestamp = $content["datum"];
if ($timestamp < $ak_time) {
mysql_query($db_name,"DELETE FROM events WHERE id=" .$content["id"]. "");
}[/PHP]

Habt ihr eine Idee? :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was hälst du denn davon:

 
$ak_time = time();
$timestamp = $content["datum"];
$content=" ".$content["id"];
if ($timestamp < $ak_time) {
mysql_query($db_name,"DELETE FROM events WHERE id LIKE '$content');
}
[/PHP]

Wenn du eine Datenbankanfrage mit einer Variablen stellen möchtest, musst du grundsätzlich mit LIKE arbeiten. Da funktioniert "=" leider nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm naja also es kommt noch immer das gleiche ich hab nun folgenden code:

$ak_time = time();
$timestamp = $content["datum"];
if ($timestamp < $ak_time) {
mysql_query($db_name,"DELETE FROM events WHERE id LIKE " .$content["id"]. "");
}[/PHP]

Error:

[b]Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/www/web104/html/events.php on line 89[/b]

Line 89:

[b]mysql_query($db_name,"DELETE FROM events WHERE id LIKE " .$content["id"]. "");[/b]

Link zu diesem Kommentar
Auf anderen Seiten teilen

mysql_query($db_name,"DELETE FROM events WHERE id LIKE " .$content["id"]. "");

Das kann ja nicht funktionieren, denn:

Wenn du die Variable $content in "" einschließt, interpretiert PHP das Ganze, als wäre der Query zu Ende. Dass du dann nen Fehler bekommst, ist logisch. Also setz das alles mal in '' einfache Anführungszeichen, und bastel die das $content am besten vorher schon zusammen, sonst musst du "id" mit ''id'' (Doppelte, einfache Gänsefüsschen) maskieren. Alles etwas krumm und schief, aber das sollte es eigentlich tun.

Ich nehme mal an, dass $content ein Array ist. Wie wäre es, wenn du dann dessen Inhalt in einen eifache Variable schreibst, dann kannst du dir den ganzen Kram mit [] und "" sparen. Ist nur ne potentielle Fehlerquelle.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hm bin ich zu blöd?!? naja also 1. ja das ist ein array so nun hab ich diese beiden sachen gemacht aber geht noch immer net also was meinst du den ich checks wohl net so ganz...

$ak_time = time();
$timestamp = $content["datum"];
if ($timestamp < $ak_time) {
$delete = $content["id"];
mysql_query($db_name,"DELETE FROM events WHERE id LIKE ' .$delete. '");
}[/PHP]

und

[PHP]$ak_time = time();
$timestamp = $content["datum"];
if ($timestamp < $ak_time) {
$delete = $content["id"];
mysql_query($db_name,"DELETE FROM events WHERE id LIKE " .$delete. "");
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Tobitobe

Wenn du eine Datenbankanfrage mit einer Variablen stellen möchtest, musst du grundsätzlich mit LIKE arbeiten. Da funktioniert "=" leider nicht.

Das ist nicht richtig.

Ich sehe das Problem hier eher darin, das du $db_name auf den Datenbanknamen, und nicht - wie es richtig währe - auf die Verbindung anwendest.

Es wäre vielleicht hilfreich wenn du diesen Abschnitt auch mal posten würdest.

gruß gurkenpapst

Link zu diesem Kommentar
Auf anderen Seiten teilen

okay also hier das gesamte script:

<?php

$db_name = "user_web101_1";

$link = mysql_connect("localhost", "web109", "b4Ag11sFsm8");
if (!$link)
die("Kann den Server nicht erreichen.");
if (!mysql_select_db("$db_name", $link))
die("Kann die Datenbank nicht anwählen.");

$query = "SELECT * FROM events ORDER BY datum limit 0,12";
$result = mysql_query($query, $link);

$zeilen = mysql_num_rows($result);

$a=1;
while($content = mysql_fetch_array($result)){

if($a==1) {
$bgcolor="#BE5F00";
$a=$a+1;
}else{
$bgcolor="#d8d8d8";
$a=1;
}



$ak_time = time();
$timestamp = $content["datum"];
if ($timestamp < $ak_time) {
$delete = $content["id"];
mysql_query($db_name,"DELETE FROM events WHERE id LIKE '$delete' ");
}

$datum = date("d.m.Y",$timestamp);

echo "<tr>";
echo "<td bgcolor=\"" .$bgcolor. "\"><div align=\"center\"><a href=\"" .$content["url"]. "\" target=\"_blank\"><img src=\"gfx/folder.gif\" width=\"16\" height=\"16\" border=0></a></div></font></td>";
echo "<td width=\"30%\" bgcolor=\"" .$bgcolor. "\"><font size=\"1\" face=\"Verdana, Arial, Helvetica\">" .$datum. "</font></td>";
echo "<td width=\"35%\" bgcolor=\"" .$bgcolor. "\"><font size=\"1\" face=\"Verdana, Arial, Helvetica\">" .$content["event"]. "</font></td>";
echo "<td width=\"30%\" bgcolor=\"" .$bgcolor. "\"><font size=\"1\" face=\"Verdana, Arial, Helvetica\">" .$content["location"]. "</font></td>";
echo "</tr>";


}
mysql_close($link);
?>[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...