php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 30-01-2008, 14:25
skyjumper
 Newbie
Links : Onlinestatus : skyjumper ist offline
Registriert seit: Jan 2008
Beiträge: 5
skyjumper ist zur Zeit noch ein unbeschriebenes Blatt
Standard [PHP5] problem mit for-schleife

Guten tag alle zusammen(kleine anmerkung--> bin php-neuling)

ich habe mir zum ziel gestzt eine bildgallerie zu schreiben.

folgender ablauf: mit einem formular möchte ich bereits hochgeladene bilder bearbeit zb. titel, bemerkung ändern oder gegebenfals auch das bild löschen. sämtliche daten sind in einer datenbank abgespeichert und in 11 kategorien aufgeteilt. jede kategroie hat eine separate tabelle.
ich möchte das ich mehrere bilder zur gleichen zeit verändern oder auch löschen kann. dazu werden die daten per post in einem array verschickt. der teil mit dem updaten funktioniert einwandfrei.

folgendes problem:das problem liegt im löschenden teil. jedes mal wen ich das formular absende und mehrere bilder löschen möchte(auch wen ich ein bild auf einmal löschen möchte), wird automatisch nur das erste bild gelöst...., so also ob die ifschleife nur 1mal auf true schalten würde.... ich kann es mir nicht erklären, warscheinlich habe ich einfach etwas banales übersehen. naja ich hoffe es findet jemand den bug.

bedanke mich jez schon im voraus.





PHP-Code:
include("connect.php");

for(
$i=0;$i<count($_POST["bildid"]);$i++){

if(
$_POST['loschen'][$i]){

$delet="delete from gal_diffus where id='".$_POST['bildid'][$i]."'";
$delete mysql_db_query("$dbname",$delet);
if(
$delete){
echo
"bild".$_POST['bildid'][$i]." wurde gel&#xF6;schet<br>";
}else{
echo
"bild".$_POST['bildid'][$i]." wurde nicht gel&#xF6;schet<br>";
}
unlink("bilder/original/diffus/".$_POST['bildname'][$i]."");
unlink("bilder/thumps/diffus/".$_POST['bildnamet'][$i]."");
}else{

echo
"update teil";
$update="
  update gal_diffus 
set
  titel     = '"
.$_POST['titel'][$i]."',
  preis     = '"
.$_POST['preis'][$i]."',
  bemerkung = '"
.$_POST['bemerkung'][$i]."',
  verkauft   = '"
.$_POST['verkauf'][$i]."'
where
  id        = '"
.$_POST['bildid'][$i]."'
"
;
$updatde mysql_db_query("$dbname",$update);

if(
$update){
echo
"bild".$_POST['bildid'][$i]." wurde geupdatet<br>";
}else{
echo
"bild".$_POST['bildid'][$i]." wurde nicht geupdatet<br>";
}
}
}
//<--forschleife 




PHP-Code:
 <form name="speichern\" action=\"$_POST[themen]conf.php\" method=\"post\"> \n";
                
          
$SQL_Befehl2="select * from gal_$_POST[themen]";
          
$daten2 mysql_db_query("$dbname",$SQL_Befehl2);
          
          while ( @
$row mysql_fetch_row $daten2 ) )
                  {   
$spaltename[]=$row[0];
                        
$splatenummern++;
                          echo
"
                              <td>
                                <input type=\"hidden\" name=\"bildnamet[]\" value=\"$row[11]\">
                                <input type=\"hidden\" name=\"bildname[]\" value=\"$row[1]\">
                                <input type=\"hidden\" name=\"them[]\" value=\"$_POST[themen]\">
                       
                                <input type=\"hidden\" name=\"bildid[]\" value=\"$row[0]\">
                                <img src=\"bilder/thumps/$_POST[themen]/$row[11]\"><br>
                                <input type=\"checkbox\" name=\"verkauf[]\" value=\"checked\" $row[5]>Verkauft<br> 
                                <input type=\"checkbox\" name=\"loschen[]\" value=\"true\">L&#xF6;schen<br>
                                Preis:<br>
                                <input type=\"text\" name=\"preis[]\" value=\"$row[3]\" size=\"13\"><br>
                                Titel:<br>
                                <input type=\"text\" name=\"titel[]\" value=\"$row[2]\" size=\"13\"><br>
                                Bemerkung:<br>
                                <textarea name=\"bemerkung[]\" rows=\"3\" cols=\"10\">$row[5]</textarea><br>
                              </td>\n"
;
                            }
                       echo
"<input type=\"submit\" name=\"speichern\" value=\"&#xC4;nderungen Speichern\">
                    </form> 
Mit Zitat antworten
  #2 (permalink)  
Alt 30-01-2008, 14:32
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

also zunächst mal solltest du erst die bilder mit unlink löschen, und danach den eintrag aus der db entfernen. hast du in der schleife mal testausgaben gemacht, z.b.
PHP-Code:
echo "bilder/original/diffus/".$_POST['bildname'][$i].'<br>'
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 30-01-2008, 14:50
skyjumper
 Newbie
Links : Onlinestatus : skyjumper ist offline
Registriert seit: Jan 2008
Beiträge: 5
skyjumper ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also hab jetzt unlink nach oben verschoben.

ja testausgaben wurden gemacht, erfolgreich, wen man die löschfunktionen kommentiert hatte und zb das bild löschen möchten dan zeigte es ein bild an, aber nicht das richtige... halt einfach immer das was im array an erster stelle stehen würde, obwohl ich eigentlich eins aus der mite ausgewähl hätte...

könnte es den sein, das es irgent welche problem gibt wen man den wert true in ein array speichern möchte? (kann es mir echt nicht vorstellen)

PHP-Code:
echo"<img src=\"bilder/original/diffus/".$_POST['bildname'][$i]."\"><br>"
Mit Zitat antworten
  #4 (permalink)  
Alt 30-01-2008, 15:10
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zuerst ein paar Bemerkungen:
  • Wenn du Hilfe willst, musst du deine Code vernünftig einrücken
  • Für jede Kategorie eine eigene Tabelle ist wahrscheinlich überflüssig
  • mysql_db_query() ist veraltet
  • Wozu soll « . ""» gut sein?
  • SELECT * FROM ist nicht das Gelbe vom Ei
  • Ich würde nur einen DELETE-Befehl am Ende absetzten, mit der Syntax
    Code:
    DELETE FROM
    	gal_difus
    WHERE
    	id IN(" . implode(', ', $_POST['loschen']) . ")";
  • [*klugscheiss*]Wie wärs mit geändert statt geupdatet?[/*klugscheiss*]
All das kann allerdings das Problem nicht lösen. Dazu braucht es noch mehr Testausgaben. Mach mal ein var_dump($_POST) an den Anfang, und schaue, wieviel, bzw. welche Bild-Id's zum Löschen vorgemerkt sind.

EDIT:
Ich habe das zweite Script erst jetzt angeschaut.
PHP-Code:
                               ' <input type=\"checkbox\" name=\"verkauf[]\" value=\"checked\" $row[5]>Verkauft<br> 
                                <input type=\"checkbox\" name=\"loschen[]\" value=\"true\">L&#xF6;schen<br>' 
ist natürlich Quatsch, wenn du nach dieser Auswahl löschen willst, muss das value im loschen-Feld der Bild-Id entsprechen. Und was value im verkauf-Feld sein muss, ist mir unklar, aber sicher nicht 'checked'.

__________________
Gruss
H2O

Geändert von H2O (30-01-2008 um 15:17 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 30-01-2008, 15:28
skyjumper
 Newbie
Links : Onlinestatus : skyjumper ist offline
Registriert seit: Jan 2008
Beiträge: 5
skyjumper ist zur Zeit noch ein unbeschriebenes Blatt
Standard

tut mir leid für die vielen ungereimtheiten....

ich benutze sonst nie ein forum.

also vardump hat folgendes ergeben.

PHP-Code:
$_POST[bildid]

array(
4) {
  [
0]=>
  
string(2"31"
  
[1]=>
  
string(2"32"
  
[2]=>
  
string(2"33"
  
[3]=>
  
string(2"34"
}


$_POST[loschen]

array(
1) {
  [
0]=>
  
string(4"true"
}



$_POST[bildname]

array(
4) {
  [
0]=>
  
string(36"31_Half-Life_Counter-Strike JPEG.jpg"
  
[1]=>
  
string(36"32_Half-Life_Counter-Strike JPEG.jpg"
  
[2]=>
  
string(44"33_half-life counter-strike   the charge.jpg"
  
[3]=>
  
string(33"34_Counter-Strike matrix jump.jpg"


ok ich denke das ich den fehler gefunde habe... und zwar muss im array "$_POST[loschen]" an den stellen an denen vom formular kein true kommt, auch etwas stehen, sonst wird jo wen ich ein bild lösche automatisch nur das erste gelöst, oder wen ich das zweite und das zweitletzte (wen es jez ca. 10bilder häte) löschen möchte würden nur die ersten 2 bilder gelöst, weil im array ja nur die ersten 2felder belegt würde.


mh.. aber wie umschiff ich das nur....!?
Mit Zitat antworten
  #6 (permalink)  
Alt 30-01-2008, 15:37
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von skyjumper
und zwar muss im array "$_POST[loschen]" an den stellen an denen vom formular kein true kommt, auch etwas stehen,
Nein! Wie ich schon geschrieben habe, soll dort nicht true stehen, sondern die Bildnummer. Übermittelt werden dann nur diejenigen Nummern, die ausgewählt wurden
__________________
Gruss
H2O
Mit Zitat antworten
  #7 (permalink)  
Alt 30-01-2008, 15:44
skyjumper
 Newbie
Links : Onlinestatus : skyjumper ist offline
Registriert seit: Jan 2008
Beiträge: 5
skyjumper ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry hab nicht gesehen das du dein beitrag editirt hast.

das checked, benötige ich damit die checkbox im formular selectiert ist.
PHP-Code:
<input type="checkbox\" name=\"verkauf[]\" value=\"checked\" $row[5]>Verkauft<br> 
deswegen hab ich auch in dieser checkbox den datenbankwert "$row[5]" geschrieben, da drin wird später mal checked stehen wen es ausgewählt wurde. an einer anderen stelle würde dan eine if abfrage ein entsprechenden text ausgeben. das es verkauft ist.


ich werds jez mal mit der id übergeben.. ich muss aber deswegen den rest ändern... ich schreib dan wider wen es was neues gibt.
Mit Zitat antworten
  #8 (permalink)  
Alt 30-01-2008, 16:02
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von skyjumper

das checked, benötige ich damit die checkbox im formular selectiert ist.
...
da drin wird später mal checked stehen wen es ausgewählt wurde.
Das ist natürlich nicht so. Damit das Feld ausgewählt ist, gibt es das Attribut checked. Und der Wert des Feldes wird mit value angegeben. Das sieht dann etwa so aus:
PHP-Code:
echo "<input type='checkbox' name='verkauf[]' value='$row[5]' checked='checked' />Verkauft<br /> 
      <input type='checkbox' name='loschen[]' value='$row[0]' />L&ouml;schen<br />"

Aber das sind eigentlich einfachste HTML-Grundlagen.
__________________
Gruss
H2O
Mit Zitat antworten
  #9 (permalink)  
Alt 30-01-2008, 16:22
skyjumper
 Newbie
Links : Onlinestatus : skyjumper ist offline
Registriert seit: Jan 2008
Beiträge: 5
skyjumper ist zur Zeit noch ein unbeschriebenes Blatt
Standard

(sorry wegen der langsamen reaktionszeit von mir, bin noch an 2 pc's am installieren.)

ok hab jez das geändert das die id des bildes mit $_POST[loschen] übergeben wird.
es löst jez zumindest den datenbank eintrag richtig.

ich muss jez das nur noch mit dem befehl unlink verknüpfen, aber ich denke das schaff ich auch alleine:-).

danke noch für den tip mit "checked".

werde es entsprechend anpassen.

danke noch für eure hilfe

gruss skypii^^
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:56 Uhr.