Ein paar Fragen

T

ThaHammer

Aktives Mitglied
Thread Starter
Dabei seit
01.06.2004
Beiträge
3.303
Reaktionspunkte
13
Ich habe da eine kleine Denkblockade bei meinem kleinen CMS System. Vielleicht hat ja einer von euch eine Gute Idee wie ich da ein kleineres Problem lösen könnte?

Ich habe eine Änderungsseite gemacht die funktioniert soweit auch, was allerdings abgeht ist das löschen einzelner Daten. Also mit dem Formular kann man zwar alles schön eintragen, und ändern, aber nichts raus löschen.
Jetzt weiß ich nicht wie ich das lösen soll, habe echt keine Gute Idee.
Neue Buttons oder radiobuttons führten auch nicht zum Erfolg.

Das nächste wäre eine Uploadmöglichkeit für die Bilder die angegeben werden.
Läuft das nur über die FTP Funktion von PHP, oder?
 
Zum Thema Upload wird dir das hier helfen.

Den Rest verstehe ich nicht ganz. Sollen ganze Datensätze, oder nur einige Felder gelöscht werden?
Wenn es um ganze Datensätze geht könntest du ja einfach beim Änderungsformular einen Button "Datensatz löschen" platzieren.
 
SaC schrieb:
Zum Thema Upload wird dir das hier helfen.

Den Rest verstehe ich nicht ganz. Sollen ganze Datensätze, oder nur einige Felder gelöscht werden?
Wenn es um ganze Datensätze geht könntest du ja einfach beim Änderungsformular einen Button "Datensatz löschen" platzieren.

Ganze Datensätze löschen gibt es schon. Es geht um einzelne Felder löschen!
Also z.B. ein Bild, hat die variable b1 in der Tabelle für einen Datensatz löschen. na ja man bekommt ein Formular, die Werte des datensatzes werden als Values übergeben damit sie schon in den Feldern stehen. Wie lösche ich da einen raus?

enctype="multipart/form-data" macht bei mir Probleme, das war auch mein ansatz von gestern. Mit der Angabe wird beim Post nur das übergeben was auch ausgefüllt ist! Damit habe ich beim auslesen wiederrum Probleme, weil ich mich auf eine feste Zahl stütze!
 
Zuletzt bearbeitet:
Am besten postest du mal ein wenig Code, ich weiß nämlich ehrlich gesagt nicht genau wo das Problem liegt.
 
PHP:
echo "<br><form  method='post' action='aendern.php' name='Eingabe'>";
	echo "<table>";
	echo "<tr><td content width='55' height='30' valign='top'>Archivnummer:</td><td></td>
			<td width='40' valign='top'><input type='text' name='anr' size='12' value='$line[1]'></td></tr>";
	echo "<tr><td content width='55' height='30' valign='top'>Titel1:</td><td></td>
			<td width='350' valign='top'><input type='text' name='titel1' size='56' value='$line[2]'></td></tr>";
	echo "<tr><td content width='55' height='30' valign='top'>Beschriftung:</td><td></td>
			<td width='350' valign='top'><input type='text' name='beschr1' size='56' value='$line[3]'></td></tr>";
	echo "<tr><td content width='55' height='30' valign='top'>Bild1:</td><td></td>
// gekürzt es sind immerhin 22 Felder!
echo "<input type='submit' name='Submit' Value='&Auml;ndern'>";
	echo "</form>";

Ganz normales Formular.

PHP:
$result = mysql_query('SELECT * FROM geiger');
// Als erstes die MYSQL Anweisung erzeugen und ausführen
do
{
	if(!empty($wert))
	{
			if($a<=19)
			{
				$schalter = 1;
				$dummy[$a] = $wert; 								// Alles ins Array dummy eintragen
				$variablen[$a] = mysql_field_name($result,$a); 		// Spaltennamen rausfinden
// Hier fehlt der Bilderupload
				$variablen[$a] = mysql_field_name($result,$a); 		// Spaltennamen rausfinden
				switch($variablen[$a])								// Pfade zusammensetzten!
				{
					case "b1":$dummy[$a] = "Bilder/".$dummy[$a];break;
					case "b2":$dummy[$a] = "Bilder/".$dummy[$a];break;
					case "b3":$dummy[$a] = "Bilder/".$dummy[$a];break;
					case "b4":$dummy[$a] = "Bilder/".$dummy[$a];break;
					case "b5":$dummy[$a] = "Bilder/".$dummy[$a];break;
					case "b6":$dummy[$a] = "Bilder/".$dummy[$a];break;
					case "b7":$dummy[$a] = "Bilder/".$dummy[$a];break;
				}	
				$commando = $commando." ".$variablen[$a]."='".$dummy[$a]."',";
			}
		}
	$a++;
}
while(list($textfeld,$wert) = each($_POST));							// Alles auslesen
$Spleng = strlen($commando);
$commando = substr($commando,0,($Spleng-1));								// Komma am Ende muß wieder raus
$sqlstring1 = "UPDATE geiger SET ".$commando." WHERE anr='".$dummy[1]."'";	// MYSQL Anweisung zusammensetzten
echo $sqlstring1;
if($schalter!=0)
{
	if(!empty($dummy[1]))
	{
		$sqlstring = "SELECT * FROM geiger WHERE anr='".$dummy[1]."'";
		$result = mysql_query($sqlstring);
		$line = mysql_fetch_row($result);

		echo "<font color='#0000ff'>Datensatz ge&auml;ndert!</font>";
		mysql_query($sqlstring1) or die ('Fehler');								// MYSQL Ausführen ************
	}
}
else
{
	echo "Sie haben nichts eingegeben!";
}
// Inhalt der Tabelle noch zur Kontrolle ausgeben
$result = mysql_query('SELECT * FROM geiger');
$anzahl = mysql_num_rows($result);
$menge = mysql_num_fields($result);
echo "<p><table  width='450' border='1' cellspacing='4' cellpadding='2'><tr>";
for($x=1;$x<$menge;$x++)
{
	$name[$x] = mysql_field_name($result,$x); 							// Spaltennamen in die Tabelle schreiben
	echo "<td><b>$name[$x]</b>";	
	echo"</td>";		
}
echo "</tr>";
for($a=0;$a<$anzahl;$a++)
{
	$line = mysql_fetch_row($result);
	for($i=1;$i<$menge;$i++)
	{
		 echo "<td>$line[$i]"; 
		 echo "</td>";
	} 
	echo "<td><a onclick='window.open(\"beschreibung.php?a=$line[0]\",\"Default\",\"width=730,top=0,left=0,screenY=0,screenX=0,scrollbars\");return false;' href='javascript:void(0)'>ansehen</a></td>";
	echo "</tr>";
}
echo "</table>";
// Ende der Seite
echo "<p><a href='aendernseite.php'>zur&uuml;ck zum &auml;ndern</a><p>";
echo "</center>";
mysql_close();

Die Seite zum eigentlichen Eintragen in die Tabelle!
 
Ehrlich gesagt: nach dem Code kenne ich mich jetzt noch weniger aus :(

Zum Upload: Was genau macht bei multipart/form-data "probleme" eventuell sind auf dem Server die Rechte nicht richtig gesetzt (chmod 777 probieren).

Zum löschen: Wirklich "Löschen" kannst du einzelne Felder nicht. Du kannst sie höchstens leeren (UPDATE table SET field='' WHERE id=zeile;)
Bilder löschen kannst du mit unlink("dateiname.jpg");
 
SaC schrieb:
Ehrlich gesagt: nach dem Code kenne ich mich jetzt noch weniger aus :(

Zum Upload: Was genau macht bei multipart/form-data "probleme" eventuell sind auf dem Server die Rechte nicht richtig gesetzt (chmod 777 probieren).

Zum löschen: Wirklich "Löschen" kannst du einzelne Felder nicht. Du kannst sie höchstens leeren (UPDATE table SET field='' WHERE id=zeile;)
Bilder löschen kannst du mit unlink("dateiname.jpg");

Der Code ist hier auch komisch Farblich gekennzeichnet.
ja, mein Code ist sicher nicht der beste, aber dafür das ich nicht einmal seit 2 Monaten PHP lerne ist der glaube ich ganz OK! :D

Soweit bin ich ja noch gar nicht mit dem Upload! Erstens weil ich noch keinen Server habe um das zu Testen und zweitens weil es dann bei der Formularauswertung Probleme gibt!

Das mit dem Löschen ist schon klar! Die Bilder werde ich nicht löschen, sollen die selber machen. :)
 
PHP:
td><a href='aendernformular.php' onclick='mysql_query('UPDATE geiger SET b1=\"\" WHERE id=".$test."')>l&ouml;schen</a></td>

Das ist meine Idee von heute morgen! Ich mache einfach neben dem Formualr noch Spalten in die Tabelle und darin einen href auf die eigene seite und ein onclick. Das Onclick führt dann die MYSQL Abfrage (Update) aus!
Sollte doch so gehen? Oder?
 
So wenn mir jetzt noch einer sagen kann warum das hier nicht funktioniert, wäre ich echt dankbar!

PHP:
$bild1="mysql_query('UPDATE geiger SET b1=\"\" WHERE id=\"$test\"')";

// Teil des Formulars
echo "<tr><td content width='55' height='30' valign='top'>Bild1:</td><td></td>
			<td width='350' valign='top'><input type='file' name='b1' size='40'><b>$line[4]</b></td>
			<td><a href='' onclick='";$bild1; echo "'>l&ouml;schen</a></td></tr>"; // Bild1

Ich kriege keinerlei Fehler angezeigt, aber machen tut er es auch nicht.
 
ThaHammer schrieb:
Sollte doch so gehen? Oder?
Nein, das wird nie funktionieren, weil es nicht möglich ist PHP Befehle (serverseitig) mit DHTML-Ereignissen wie onclick (clientseitig) aufzurufen. Du wirst allerhöchstens einen JavaScript Error bekommen.
Der PHP-Code wird NUR beim laden der Seite ausgeführt! Wenn du mit PHP was ändern willst, muss die Seite neu aufgerufen werden.
 
SaC schrieb:
Nein, das wird nie funktionieren, weil es nicht möglich ist PHP Befehle (serverseitig) mit DHTML-Ereignissen wie onclick (clientseitig) aufzurufen. Du wirst allerhöchstens einen JavaScript Error bekommen.
Der PHP-Code wird NUR beim laden der Seite ausgeführt! Wenn du mit PHP was ändern willst, muss die Seite neu aufgerufen werden.

Das habe ich befürchtet! :mad:

Na gut, also bei PHP gibt es keine Event Handler wie unter JS oder HTML.
Verstehe ich das richtig, einzige Möglichkeit ist immer der erneute Seitenaufruf?
 
Zurück
Oben Unten