Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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:

Geschrieben

Ich will zwar nicht ins Raten verfallen :D aber wie wärs damit:


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

Noxy

Geschrieben
Original geschrieben von Noxy


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

[/b]

hm ne das kann nicht gehn trotzdem danke ;)

Geschrieben

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.

Geschrieben

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]

Geschrieben

jap es geht alles einwandfrei wenn ich nur den löschbefehl entferne also die grundteile könnt ihr ausschließen ;) naja nur will ich eben den löschbefehl :D

Geschrieben

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.

Geschrieben

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. "");
}

Geschrieben

Try this one:

 
$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]

Sollte es tun. Ansonsten bin ich auch etwas ratlos.

Geschrieben

tjo netter versuch is leider nicht:

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

das ist doch echt schlimm... wieso geht das nur nicht :(

Geschrieben
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

Geschrieben

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]

Geschrieben

bitte schreib hin was du mit dem tauschen meinst... weis nun net was ich da tauschen soll :confused:

okay danke es geht

mysql_query("DELETE FROM events WHERE id = '$delete' ", $link);

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...