CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
14.08.2009, 16:43:45
|
Anfänger
|
|
Registriert seit: Jun 2009
Alter: 42
Beiträge: 119
|
|
AW: Löschfunktion geht nur teilweise
Hallo vt1816,
Zu 1.
Die Dateinamen (Bildnummern) sind identisch. Es gibt keinen Schreibfehler.
Zu 2.
Rechte sind in Ordnung, das Thumnailbild wird ja auch aus demselben Ordner gelöscht.
Zu 3.
Werde ich mal ausprobieren.
Mir ist da gerade noch eine Idee gekommen. Wenn jetzt z.B. die Bildnummer 10 durchgelaufen ist, kann es sein das sie dann für die nächste Unlinkfunktion garnicht mehr zur Verfügung steht?
Obwohl $path/th_$Bildnummer.jpg steht ja an zweiter Stelle im Script und dieses wird ja richtig gelöscht. Wenn dann wäre es ja anders herum.
Gruß
René
|
14.08.2009, 16:50:16
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Löschfunktion geht nur teilweise
Zitat:
Zitat von Auf der Mauer
Zu 1.
Die Dateinamen (Bildnummern) sind identisch. Es gibt keinen Schreibfehler.
|
Auch der Pre-/Suffix?
Zitat:
Zitat von Auf der Mauer
Zu 2.
Rechte sind in Ordnung, das Thumnailbild wird ja auch aus demselben Ordner gelöscht.
|
Haben beide Bilder auch den gleichen Eigentümer?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
14.08.2009, 17:02:56
|
Anfänger
|
|
Registriert seit: Jun 2009
Alter: 42
Beiträge: 119
|
|
AW: Löschfunktion geht nur teilweise
Denke schon, hier mal per copy & paste die Dateiamen aus dem Bilderordner.
Zugriff erfolgt über Filezilla.
re_1250249940.jpg
th_1250249940.jpg
und hier die Löschaufforderung im Script.
PHP-Code:
unlink ("$path/re_$Bildnummer.jpg");
unlink ("$path/th_$Bildnummer.jpg");
Beide Bilder liegen im gleichen Ordner aber nur das Thumbnailbild wird gelöscht.
Zitat:
Haben beide Bilder auch den gleichen Eigentümer?
|
Das Bild wurde von mir raufgeladen und das Thumbnailbild wurde auch von mir erstellt.
Gruß
René
|
14.08.2009, 17:30:05
|
Anfänger
|
|
Registriert seit: Jun 2009
Alter: 42
Beiträge: 119
|
|
AW: Löschfunktion geht nur teilweise
Hallo vt1816,
klingt vielleicht doof, aber ich habe jetzt eine zweite Schleife dahintergesetzt.
Jetzt funktioniert es ohne Probleme. Vielleicht konnte die Zahl, welche ja identisch ist
nur einmal benutzt werden. Das heißt um auch das Originalbild zu löschen muss die Schleife ein zweites Mal durchlaufen. Ich lösche jetzt in der ersten Schleife das Vorschaubild und in der zweiten das Originalbild.
PHP-Code:
$Bild = $_POST['delete'];
foreach($Bild as $Bildnummer)
{
unlink ("$path/th_$Bildnummer.jpg");
}
und
PHP-Code:
foreach($Bild as $Bildnummer)
{
unlink ("$path/re_$Bildnummer.jpg");
}
Vielen Dank für deine Hilfe!
Gruß
René
|
14.08.2009, 18:29:16
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Löschfunktion geht nur teilweise
Nicht perfekt - aber wenn es Dich nicht stört, ist es doch in Ordnung ...
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
15.08.2009, 16:43:48
|
Anfänger
|
|
Registriert seit: Jun 2009
Alter: 42
Beiträge: 119
|
|
AW: Löschfunktion geht nur teilweise
Hallo vt1816,
Perfekt, was ist schon perfekt? ;-)
Nee stört mich nicht wirklich. Aber man könnte ja ggf. noch angeben wie oft die Schleife durchlaufen soll dann würde vielleicht auch eine ausreichen.
Ich sitze momentan an den Funktionen welche es ermöglichen Bilddaten zu ändern/einzutragen.
Die Bilddaten wenn bereits in der MySql Tabelle vorhanden werden als Vorbelegung in den Eingabefeldern angezeigt. Bis auf das <select></select> feld klappt das auch schon ganz gut. Mit value="$row->Kategorie" geht es da leider nicht.
Da ich ja jetzt bei der Löschfunktion so schön gelernt habe wie man eine foreach Schleife benutzt (eine wirklich feine Sache) möchte ich diese auch bei der anderen Funktion benutzen.
Jetzt habe ich hinter die Inputfeldernamen eine [] gesetzt damit die Inhalte in einem Array gespeichert werden. So hatte ich es ja auch bei den Bildnummern gemacht. Wenn ich jetzt "Daten ändern" klicke wird eine Datei aufgerufen die dafür zuständig ist das die Feldeingaben in die MySql Tabelle geschrieben werden.
Hier wollte ich wieder mit der foreach Schleife arbeiten habe aber Schwierigkeiten weil ich mehrere Arrays habe. Gestern ging es nur um 1 Array.
Ich lasse mir auf dieser Seite testweise alle Array ausgeben und kann bestätigen das alle Arrayinhalte ordnungsgemäß an die zweite Datei übergeben wurden. Wie müßte denn das Gerüst aussehen damit ich die Arrays durchlaufen kann und nur eine Update Funktion für die My Sql Tabelle brauche?
Kann ich hier vielleicht mit array_map() arbeiten um die Arrays vorher zu verbinden und dann eben nur das eine Hauptarray durchlaufen?
Hier ist mal mein bisheriger Code:
Das durchlaufen funktioniert, das geht ja aus der Ausgabe hervor.
Ich will da nur jetzt nicht in jeden Durchlauf eine MySql Abfrage reinsetzen zumal die Bildnummer ja in jedem benötigt werden würde. Die Bildnummer ist nämlich die Zuordnung welche Eintrag überhaupt geändert werden soll.
PHP-Code:
//Sessionvariabel entgegenehmen
$SESSID = $_POST['PHPSESSID'];
echo "SessionID = $SESSID";
echo"<br><br>";
echo "<b>Bildnummer(n)</b><br>";
$Bild = $_POST['Bildnummer'];
foreach($Bild as $Nummer)
{
echo $Nummer,"<br>";
}
echo "<br><br>";
echo "<b>Titel</b><br>";
$Titel = $_POST['Titel'];
foreach($Titel as $Bildtitel)
{
echo $Bildtitel,"<br>";
}
echo "<br><br>";
echo "<b>Tags</b><br>";
$Tags = $_POST['Tags'];
foreach($Tags as $Stichworte)
{
echo $Stichworte,"<br>";
}
echo "<br><br>";
echo "<b>Beschreibung</b><br>";
$Beschreibung = $_POST['Beschreibung'];
foreach($Beschreibung as $Bildbeschreibung)
{
echo $Bildbeschreibung,"<br>";
}
echo "<br><br>";
echo "<b>Kategorie</b><br>";
$Kategorie = $_POST['Kategorie'];
foreach($Kategorie as $Bereich)
{
echo $Bereich,"<br>";
}
//Verbindung zur Datenbank aufbauen
include 'connect.php';
//Daten in Tabelle ändern
$aendern = "UPDATE BildDB Set Titel = '$Bildtitel' WHERE Nummer = '$Nummer' ";
$update = mysql_query($aendern);
//Weiterleitung zum privaten Memberbereich
header("Location:http://xxx.net/memberbereich.php?PHPSESSID=$SESSID");
Bin für jeden Tip dankbar
Gruß
René
|
16.08.2009, 08:49:39
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Löschfunktion geht nur teilweise
Wie sieht der Inhalt der vier Arrays aus? Werden immer alle Angaben zu allen Bildern geändert? Bei vier Bildern wird ein SQL-Statment nicht ausreichen.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
16.08.2009, 12:20:52
|
Anfänger
|
|
Registriert seit: Jun 2009
Alter: 42
Beiträge: 119
|
|
AW: Löschfunktion geht nur teilweise
Hallo vt1816,
ich habe in der Zwischenzeit etwas rumgetestet.
Code 1 (foreach)
PHP-Code:
echo "<b>Bildnummer(n)</b><br>"; $Bild = $_POST['Bildnummer']; foreach($Bild as $Nummer) { echo $Nummer,"<br>"; }
Ausgabe ist:
Code:
1250338537
1250266131
1250262501
1250260272
Code 2 (array_merge)
PHP-Code:
<pre> <?php
$Werte = array_merge ($Bildnummer, $Titel ,$Stichworte ); print_r($Werte);
?> </pre>
Ausgabe ist:
Code:
Array
(
[0] => 1250338537
[1] => 1250266131
[2] => 1250262501
[3] => 1250260272
[4] => Rosa Blüte
[5] => Wartende Frau
[6] => Rote Beeren
[7] => Bella Luna
[8] => Balkonblüte
[9] => Bronzestatue
[10] => Beeren
[11] => Vollmond
)
Array
Hier wird alles nacheinander ausgegeben.
Nummer 0, 4, 8 wären 1 Eintrag und Nummer 1, 5, 9 wäre der zweite Eintrag usw.
Code 3 (array_map)
PHP-Code:
<pre> <?php
function verbinden($m, $n) { return array ($m => $n); } $Bildnummer = $_POST['Bildnummer']; $Titel = $_POST['Titel']; $Stichworte = $_POST['Tags'];
$Werte = array_map("verbinden", $Bildnummer, $Titel, $Stichworte); print_r($Werte);
?> </pre>
Ausgabe ist:
Code:
(
[0] => Array
(
[1250338537] => Rosa Blüte
)
[1] => Array
(
[1250266131] => Wartende Frau
)
[2] => Array
(
[1250262501] => Rote Beeren
)
[3] => Array
(
[1250260272] => Bella Luna
)
)
Ich denke das sieht doch schon besser aus. Im letzten Beispiel werden die Daten pro Array gespeichert. Das heißt Array 1 entällt einen kompletten Datensatz (Nummer und Titel) und Array zwei auch und so weiter.
Ich konnte bisher aber noch kein weiteres Array hinzufügen warum weiß ic nicht.
Ich dachte oben bei function kommt dann einfach ein $o hinzu und bei return array ein =>$o aber die Stichworte werden nicht aufgelistet.
Ganz schön komplizierte Geschichte um die Daten in der Tabelle zu ändern.
Mit einem Wert aus einer Variabel ist es ja noch leicht aber so. :-(
Gruß
René
|
16.08.2009, 12:39:04
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Löschfunktion geht nur teilweise
Habe den Eindruck Du denkst zurzeit zu kompliziert.
Aus Unkenntnis Deines Ursprungformulars und der nur geringen Beschreibung Deines Ziels, ist es schwer Dir den richtigen Weg aufzuzeigen. Letztendlich hast Du ja bereist alles was Du zum Update Deiner Datenbanktablle benötigst. Die Inhalte der Array kommen ja richtig im Verarbeitungsscript an. Baue Dir daraus Dein SQL-Statment (je Bild) zusammen.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
16.08.2009, 13:12:37
|
Anfänger
|
|
Registriert seit: Jun 2009
Alter: 42
Beiträge: 119
|
|
AW: Löschfunktion geht nur teilweise
Hallo vt1816,
ja aber es ist doch kompliziert ;-)
Mein Urpsungsformular sieht so aus.
PHP-Code:
include 'connect.php'; <form action="aendern.php" method="post" name="formular" id="formular">
$Bild = $_POST['edit']; foreach($Bild as $Bildnummer) { $abfrage = "SELECT Titel, Bildlink, Thumb, Beschreibung, Tags, Kategorie FROM BildDB WHERE Nummer IN ('$Bildnummer')"; $ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis)) { echo "<a href= '$row->Bilderlink' target='pic_haupt'><img class='rand' src='$row->Thumb' width=126 height=126 border=0></a><br><br>
TITEL:<br><input name='Titel[]' type='text' value= '$row->Titel' size='15' maxlength='25'><br><br>
TAGS:<br><input name='Tags[]' type='text' value= '$row->Tags' size='15' maxlength='25'><br><br>
BESCHREIBUNG:<br><textarea name='Beschreibung[]' cols='13' rows='3'>$row->Beschreibung</textarea><br><br>
KATEGORIE:<br><select name='Kategorie[]' value= '$row->Kategorie' size='1'> <option></option> <option>Architektur</option> <option>Essen & Trinken</option> <option>Experimentell</option> <option>Geschichte</option> <option>Kunst & Kultur</option> <option>Menschen</option> <option>Natur</option> <option>Orte</option> <option>Sport/Action</option> <option>Stillleben</option> <option>Technik</option> </select><br><br>
BILDNUMMER:<br> $Bildnummer
<input name='Bildnummer[]' type='hidden' value='$Bildnummer'> <input type=\"hidden\" value=\"$SESSID\" name=\"PHPSESSID\">";
<input type='submit' name='submitbutton' id='submitbutton' value='Daten ändern'> </form>
Zuerst macht man ein Häkchen bei den Bildern (max. 4) welche bearbeitet werden sollen und bei Klick auf ändern wird diese Datei (oben) aufgerufen. Erst werden anhand der Bildnummern die passenden Einträge aus der Tabelle geholt und in die Eingabefelder als Vorbelegung reingesetzt. Die Werte in den Eingabefeldern egal ob alt oder neu werdern in Arrays gespeichert. Daher die eckigen Klammern [] hinter den Eingabefeldernamen.
Wenn alle Veränderungen gemacht wurden werden die Arrays an diese Datei geschickt.
PHP-Code:
//foreach Test
echo "<b>Bildnummer(n)</b><br>"; $Bild = $_POST['Bildnummer']; foreach($Bild as $Nummer) { echo $Nummer,"<br>"; }
//array_merge
<pre>
$Werte = array_merge ($Bildnummer, $Titel ,$Stichworte ); print_r($Werte);
</pre>
//array_map
<pre>
function verbinden($m, $n) { return array ($m => $n); } $Bildnummer = $_POST['Bildnummer']; $Titel = $_POST['Titel']; $Stichworte = $_POST['Tags'];
$Werte = array_map("verbinden", $Bildnummer, $Titel, $Stichworte); print_r($Werte);
</pre>
Hier werden die Arrays jetzt testweise ausgegeben um zu sehen ob die Inhalte /Veränderungen welche im Formular gemacht wurde auch übernommen werde. Ja es geht. Jetzt sollen die Daten aus den Arrays in die MySql Tabelle geschrieben werden und zwar anhand der Bildnummern.
Gruß
René
Geändert von Auf der Mauer (16.08.2009 um 13:38:11 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:11:28 Uhr.
|