SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 14.08.2009, 16:43:45
Auf der Mauer Auf der Mauer ist offline
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é
Mit Zitat antworten
  #12  
Alt 14.08.2009, 16:50:16
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Löschfunktion geht nur teilweise

Zitat:
Zitat von Auf der Mauer Beitrag anzeigen
Zu 1.
Die Dateinamen (Bildnummern) sind identisch. Es gibt keinen Schreibfehler.
Auch der Pre-/Suffix?


Zitat:
Zitat von Auf der Mauer Beitrag anzeigen
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!
Mit Zitat antworten
  #13  
Alt 14.08.2009, 17:02:56
Auf der Mauer Auf der Mauer ist offline
Anfänger
 
Registriert seit: Jun 2009
Alter: 42
Beiträge: 119
AW: Löschfunktion geht nur teilweise

Zitat:
Auch der Pre-/Suffix?
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é
Mit Zitat antworten
  #14  
Alt 14.08.2009, 17:30:05
Auf der Mauer Auf der Mauer ist offline
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é
Mit Zitat antworten
  #15  
Alt 14.08.2009, 18:29:16
Benutzerbild von vt1816
vt1816 vt1816 ist offline
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!
Mit Zitat antworten
  #16  
Alt 15.08.2009, 16:43:48
Auf der Mauer Auf der Mauer ist offline
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é
Mit Zitat antworten
  #17  
Alt 16.08.2009, 08:49:39
Benutzerbild von vt1816
vt1816 vt1816 ist offline
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!
Mit Zitat antworten
  #18  
Alt 16.08.2009, 12:20:52
Auf der Mauer Auf der Mauer ist offline
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é
Mit Zitat antworten
  #19  
Alt 16.08.2009, 12:39:04
Benutzerbild von vt1816
vt1816 vt1816 ist offline
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!
Mit Zitat antworten
  #20  
Alt 16.08.2009, 13:12:37
Auf der Mauer Auf der Mauer ist offline
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)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formular / Inhalt geht (teilweise) verloren LiLiConsult PHP Grundlagen 4 18.05.2009 00:33:57
DB läuft nur teilweise auf anderem PC theresa PHP Grundlagen 2 22.05.2008 00:01:21
Eintrag aus DB lesen - funktioniert nur teilweise exweised PHP Grundlagen 4 07.09.2004 12:04:25
INPUT type=image mit Hilfe einer Imagemap nur teilweise klickbar? obermi PHP Grundlagen 2 08.05.2004 14:38:07
teilweise erledigt christina PHP Grundlagen 0 18.09.2002 16:32:49


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:11:28 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt