Veröffentlicht 12. Mai 200322 j 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?
12. Mai 200322 j Hallo, schreib mal folgendes. mysql_query($db_name,"DELETE FROM events WHERE id=" .$content['id']. ""); [/php] Frank
12. Mai 200322 j Ich will zwar nicht ins Raten verfallen aber wie wärs damit: mysql_query($db_name,"DELETE FROM events WHERE id='$content[id]');[/php] Noxy
12. Mai 200322 j 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
12. Mai 200322 j 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.
12. Mai 200322 j 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]
12. Mai 200322 j Du hast aber eine Verbindung zur Datenbank mit User und Passwort hergestellt oder? Und Du das die richtige Datenbank ausgewählt oder? Frank
12. Mai 200322 j 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
12. Mai 200322 j 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.
12. Mai 200322 j 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. ""); }
12. Mai 200322 j 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.
12. Mai 200322 j 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
12. Mai 200322 j 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
12. Mai 200322 j 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]
12. Mai 200322 j mysql_query($db_name,"DELETE FROM events WHERE id LIKE '$delete' "); ersetze das $db_name durch $link. Und vertausche die Reihenfolge, d.h. erst die abfrage, dan den resource link_identifier. http://www.php.net/manual/en/function.mysql-query.php und das LIKE durch ein =
12. Mai 200322 j 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 Konto oder melde dich an, um einen Kommentar zu schreiben.