Die letzten 5 Postings in diesem Thema » Alle anzeigen
von raiserle |
Eine Frage zur Schreibweise: ".$_GET['del']." Ist das das Gleiche wie \"$GET_['del']\" ? |
nein, es ist nicht das selbe. du willst bestimmt auf das mysql-statement hinaus.
id='wert' die einfachen hochkomma könnten an dieser stelle auch weggelassen werden, da die id ja int ist.
die ".$var." sind nur eine stringverkettung das 1. doppelhochkomma geht aus dem string raus, der punkt ist der verkettungsoperator .... und andersrum
normal werden Variablen in doppelhochkommas mit geparsed, aber ich mag es nicht.
ausserdem darfst du dann nicht das assoziativarray $_GET['del'] in einfache hochkommas setzen. es müsste dann so aussehen $_GET[del]
nochwas zur richtigen anwendung von mysql-statements.
benutze mysql_real_escape_string(); |
von chrisbears |
So einfach kann das Leben sein...
@raiserle: Deine Lösung funktioniert. Nur nochmal zur Kontrolle:
Du lässt den ganzen Formularkram weg und hängst stattdessen "?del" an die URL. Das wiederum definierst Du im gleichen Atemzug als '.$row['id'].'
Diesen Wert holst Du dann weiter unten mit ".$_GET['del']." wieder hervor und definierst damit die id, die gelöscht werden soll.
Mehr nicht???
Mann, Mann, Mann...
Die Datensätze werden jetzt korrekt gelöscht; angezeigt wird das aber erst, wenn ich die Seite reloade. Ich nehme mal an, Dein Hinweis auf header(); zielt genau darauf. Ich guck' mir das mal an und geh' Euch in den nächsten Tagen bestimmt wieder auf den Sack damit...
Eine Frage zur Schreibweise: ".$_GET['del']." Ist das das Gleiche wie \"$GET_['del']\" ?
@progrookie: Der </form> tag stand ausserhalb des <?PHP> Bereichs; den hatte ich nicht mit gepostet. Mann, jag' mir doch nicht so einen Schrecken ein; ich war kurz davor mir den Schädel an der Tischkante einzudreschen; hab' dann aber vorsichtshalber doch noch mal nachgeschaut.
Ich dank' Euch vielmals für die Hilfe!
Viele Grüße,
chris |
von raiserle |
um es vorwegzunehmen. das script ist nicht grad, das was man ordentlich strukturiert
nennt, aber es sollte seine zweck jetzt erfüllen, wenn es auch zu unerwateten
FEHLERN führen kann.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76: | <?PHP
$dp = @mysql_connect("localhost", "user", "pass") or die("keine Verbindung zu MYSQL");
@mysql_select_db("datenbank", $dp) or die("keine Verbindung zur Datenbank");
if (isset ($_POST['submit'])) {
$sql = "INSERT INTO termine (datum, name, ort, beschreibung) VALUES ('$_POST[datum]', '$_POST[name]', '$_POST[ort]', '$_POST[beschreibung]')";
$result = mysql_query($sql);
if ($result) {
echo "Dateneingabe erfolgreich";
} else {
echo "GOTTVERFLUCHTE STINKENDE DRECKSCHEISSE!!!";
}
}
?>
<form action="<?PHP echo $_SERVER['PHP_SELF'] ?>" method="post">
<h2 style="margin-left: 50px"><u>Markttermine eintragen</u></h2>
<table>
<tr>
<td>Datum (YYYY-MM-DD)</td>
<td>Name des Marktes</td>
<td>Ort</td>
<td>Beschreibung</td>
</tr>
<tr>
<td><input type="text" name="datum" size="20" value="<?PHP echo $POST[datum] ?>"/></td>
<td><input type="text" name="name" size="20" value="<?PHP echo $POST[name] ?>"/></td>
<td><input type="text" name="ort" size="20" value="<?PHP echo $POST[ort] ?>"/></td>
<td><input type="text" name="beschreibung" size="20" value="<?PHP echo $POST[beschreibung] ?>"/></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Termin eintragen"/></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</form>
<hr noshade/>
<?PHP
$sql2 = "SELECT * FROM termine";
$result = mysql_query($sql2);
$felder = mysql_num_fields($result);
$daten = mysql_num_rows($result);
?>
<h2 style="margin-left: 50px"><u>Termin Übersicht (<?PHP echo "<b>$daten</b>" ?> Termine)</u></h2>
<table>
<tr>
<?PHP
for ($i = 0;$i < $felder;$i++) {
$feldname = mysql_field_name($result, $i);
echo "<th><b>$feldname</b></th>";
}
?>
</tr>
<?PHP
//$id = $_GET['id'];
while ($row = mysql_fetch_assoc($result)) {
echo "<tr>";
foreach ($row as $key => $value) {
echo "<td style='border: 1px solid black; padding: 5px'>$value</td>";
}
echo '<td> <a href="?del='.$row['id'].'">Löschen</a></td>';
echo "</tr>";
}
if (isset ($_GET['del'])) {
//mysql_select_db("datenbank", $dp);
$query_delete = ("DELETE FROM termine WHERE id = '".$_GET['del']."'");
$delete = mysql_query($query_delete);
}
?> |
ich habe das löschen nicht über POST gelöst sondern per GET, weil es einfacher zu handhaben ist.
ich würder dir auch empfehlen mal mit
header();
zu arbeiten.denn jedesmal wenn du den browser nach einem eintrag refreshst, wird der post nochmal abgesetzt.
wenn du dafür hilfe brauchst. einfach nochmal melden.
gruß raiserle |
von progrookie |
also was mir noch aufgefallen ist folgendes:
Du erzeugst 2x ein FormTag. Das erste funktionier auch deshalb weil es geschlossen wurde(</form>). Beim 2ten wird es allerdings nicht geschlossen. Dadurch kann auch normalerweise kein Postback ausgelöst werden. Wenn doch, dann weiß er logischerweise nicht welcher Button gedrückt wurde. Wenn Du kurz bevor dur dein FormularTag schließt deine Hiddenfield befüllst und deklarierst kannst Du darauf zugreifen wie zuvor...!
Ich denke mir, dass war es schon |
von chrisbears |
Hmm, keine Ahnung, ob Du das zu einfach verstanden hast; ich weiss ja nicht, wie einfach mein Problem ist...
***grins***
Das mit dem HIDDEN-FIELD habe ich auch schon durch, leider ohne Erfolg.
Ich habe da, glaube ich, ein grundsätzliches Verständnisproblem:
Das Script holt sich brav die Daten aus der Datenbank, schreibt alles in die Tabelle und setzt den <input type="submit" name="loeschen"> an das Ende der Tabellenzeile.
Alles was ich jetzt mit
1:
2:
3:
4: | if (isset ($_POST['loeschen'])) {
mysql_select_db("datenbank", $dp);
$query_delete = ("DELETE FROM termine WHERE id = '$id'");
$delete = mysql_query($query_delete, $dp); |
versuche, ist meiner Meinung nach Blödsinn, da das Script ja gar nicht weiss, welche id gemeint ist.
1:
2:
3: |
$id = $_GET['id']
|
war da nur ein halbherziger Versuch ohne dass ich da genau wusste, was ich da mache.
Tja, wie hole ich diese Information und wo und wie übergebe ich sie?
Und wie schreibe ich diesen Text, ohne dass jemand merkt, dass ich überhaupt keine Ahnung habe?
Argh...
Grüße und Danke für die Antwort,
chris |
|
|
|