php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.04.2005, 15:29  
Erfahrener Benutzer
 
Registriert seit: 16.08.2004
Beiträge: 145
DDogg
Standard probleme beim löschen aus der datenbank

Hi!

Ich hab folgendes Problem.

Ich möchte Bilder aus meiner Datenbank löschen. Dazu lasse ich den User in einem Formular auswählen aus welchem Artikel er Bilder löschen möchte:


Code:
<?

$sql3 = "select AID, Katid, Subkatid, Header, Bild1name, Bild2name, Bild3name, Teasertext, Haupttext1, Haupttext, Erscheinungsdatum, Haltbarkeit, KeineLoeschung, Author, Bild1, Bild2, Bild3, Freigabe, EmailAuthor, $username from stgeorg_artikel where $username = 1 and Bild1 = 1 order by AID";
  $res = send_sql($sql3);
  $anzahl3=mysql_numrows($res);

  if ($anzahl3)
  {
    for ($k=0;$k<$anzahl3;$k++)
          {

$AID=mysql_result($res, $k, AID);
$Katid=mysql_result($res, $k, Katid);
$Subkatid=mysql_result($res, $k, Subkatid);
$Header=mysql_result($res, $k, Header);
$Bild1name=mysql_result($res, $k, Bild1name);
$Bild2name=mysql_result($res, $k, Bild2name);
$Bild3name=mysql_result($res, $k, Bild3name);
$Teasertext=mysql_result($res, $k, Teasertext);
$Haupttext1=mysql_result($res, $k, Haupttext1);
$Haupttext=mysql_result($res, $k, Haupttext);
$Erscheinungsdatum=mysql_result($res, $k, Erscheinungsdatum);
$Haltbarkeit=mysql_result($res, $k, Haltbarkeit);
$KeineLoeschung=mysql_result($res, $k, KeineLoeschung);
$Author=mysql_result($res, $k, Author);
$Bild1=mysql_result($res, $k, Bild1);
$Bild2=mysql_result($res, $k, Bild2);
$Bild3=mysql_result($res, $k, Bild3);
$Freigabe=mysql_result($res, $k, Freigabe);
$EmailAuthor=mysql_result($res, $k, EmailAuthor);


echo "<table ><tr><td></td><td></td><td><img src=\"Bilder/teasertrenner.gif\" width=\"367\" height=\"1\" border=\"0\" alt=\"\">

</td></tr> <tr>  <td valign=\"top\">·</td>  <td width=\"2\"> </td>  <td>$Header von Author: $Author
<a href=\"admin.php?Aufruf=90&edit=$AID\">Bilder Anzeigen</a></td> </tr> </table>";
          }
 }

?>
Japs.

Dann werden die Bilder aus dem ausgewählten Artikel aufgerufen:

Code:
<?

if ($edit > 0)
  {
echo "<form action=\"bildkick.php\" method=\"post\">Bilder löschen 
 
";

echo "<form action=\"bildkick.php\" method=\"post\" enctype=\"multipart/form-data\">Bitte wählen Sie das Bild aus, dass Sie löschen wollen.
(Es ist nicht möglich, mehrere Bilder auf einmal zu löschen.)


";

  $sql = "select AID, Bild1, Bild2, Bild3, Bild1name, Bild2name, Bild3name, Height1, Height2, Height3, Unterschrift1, Unterschrift2, Unterschrift3 from stgeorg_artikel where AID = $edit";

  $res = send_sql($sql);
  $anzahl=mysql_numrows($res);
    if ($anzahl)
        {
  for ($z=0;$z<$anzahl;$z++)
   {
      $AID=mysql_result($res, $z, AID);
      $Bild1=mysql_result($res, $z, Bild1);
      $Bild2=mysql_result($res, $z, Bild2);
      $Bild3=mysql_result($res, $z, Bild3);
      $Bild1name=mysql_result($res, $z, Bild1name);
      $Bild2name=mysql_result($res, $z, Bild2name);
      $Bild3name=mysql_result($res, $z, Bild3name);
      $Height1=mysql_result($res, $z, Height1);
      $Height2=mysql_result($res, $z, Height2);
      $Height3=mysql_result($res, $z, Height3);
      $Unterschrift1=mysql_result($res, $z, Unterschrift1);
      $Unterschrift2=mysql_result($res, $z, Unterschrift2);
      $Unterschrift3=mysql_result($res, $z, Unterschrift3);

if ($Bild1 == 1 and $Bild2 == 0 and $Bild3 == 0)
{
      echo "<table > <tr><td><input type=\"Checkbox\" name=\"Bild1\" value=\"$AID\"></td>  <td width=\"5\"> </td><td><img src=\"Gallerie/$Bild1name\" width=\"119\" height=\"$Height1\" border=\"0\" alt=\"\"></td>  <td bgcolor=\"#EFEFEF\" width=\"5\"> </td>  <td bgcolor=\"#EFEFEF\" valign=\"middle\" width=\"200\" align=\"center\">$Unterschrift1</td> </tr></table>";
}

if ($Bild1 == 1 and $Bild2 == 1 and $Bild3 == 0)
{
      echo "<table > <tr><td><input type=\"Checkbox\" name=\"Bild1\" value=\"$AID\"></td>  <td width=\"5\"> </td><td><img src=\"Gallerie/$Bild1name\" width=\"119\" height=\"$Height1\" border=\"0\" alt=\"\"></td>  <td bgcolor=\"#EFEFEF\" width=\"5\"> </td>  <td bgcolor=\"#EFEFEF\" valign=\"middle\" width=\"200\" align=\"center\">$Unterschrift1</td> </tr> <tr>  <td><input type=\"Checkbox\" name=\"Bild2\" value=\"$AID\"></td>  <td width=\"5\"> <td><img src=\"Gallerie/$Bild2name\" width=\"119\" height=\"$Height2\" border=\"0\" alt=\"\"></td>  <td bgcolor=\"#DFDFDF\" width=\"5\"> </td>  <td bgcolor=\"#DFDFDF\" valign=\"middle\" width=\"200\" align=\"center\">$Unterschrift2</td> </tr> </table>";
}

if ($Bild1 == 1 and $Bild2 == 1 and $Bild3 == 1)
{
      echo "<table > <tr><td><input type=\"Checkbox\" name=\"Bild1\" value=\"$AID\"></td>  <td width=\"5\"> </td><td><img src=\"Gallerie/$Bild1name\" width=\"119\" height=\"$Height1\" border=\"0\" alt=\"\"></td>  <td bgcolor=\"#EFEFEF\" width=\"5\"> </td>  <td bgcolor=\"#EFEFEF\" valign=\"middle\" width=\"200\" align=\"center\">$Unterschrift1</td> </tr> <tr>  <td><input type=\"Checkbox\" name=\"Bild2\" value=\"$AID\"></td>  <td width=\"5\"> <td><img src=\"Gallerie/$Bild2name\" width=\"119\" height=\"$Height2\" border=\"0\" alt=\"\"></td>  <td bgcolor=\"#DFDFDF\" width=\"5\"> </td>  <td bgcolor=\"#DFDFDF\" valign=\"middle\" width=\"200\" align=\"center\">$Unterschrift2</td> </tr> <tr>  <td><input type=\"Checkbox\" name=\"Bild3\" value=\"$AID\"></td>  <td width=\"5\"> <td><img src=\"Gallerie/$Bild3name\" width=\"119\" height=\"$Height3\" border=\"0\" alt=\"\"></td>  <td bgcolor=\"#EFEFEF\" width=\"5\"> </td>  <td bgcolor=\"#EFEFEF\" valign=\"middle\" width=\"200\" align=\"center\">$Unterschrift3</td> </tr> </table>";
}

}
}
echo "
<input type=\"Submit\" name=\"Absenden\" value=\"Löschen\">";
}

?>
Japs.

Nun habe ich eine schöne kleine Tabelle mit Checkboxen vorne dran. Je nach dem welches Bild ausgewählt wird, wird die Varialbe Bild1 oder Bild2 oder Bild 3 mit dem Inhalt $AID also der Identifizierungsnummer des Artikels übergeben. Diese wird an folgendes php script übergeben:

Code:
 <?

  include("shared.php");
  connect();

  parse_str($QUERY_STRING);

  echo "$Bild1, $Bild2, $Bild3";

  if ($Bild1 > 0)
  {
  $sql = "UPDATE stgeorg_artikel SET Bild1 = '0' WHERE AID = '$Bild1' LIMIT 1";
  $res = send_sql($sql);


  $sql2 = "select AID, Bild1, Bild2, Bild3, Bild1name, Bild2name, Bild3name, Unterschrift1, Unterschrift2, Unterschrift3, Height1, Height2, Height3, height11, height22, height33, width11, width22, width33 from stgeorg_artikel where AID = $Bild1";
  $res2 = send_sql($sql2);

      $AID=mysql_result($res2, 0, AID);
      $Bild1db=mysql_result($res2, 0, Bild1);
      $Bild2db=mysql_result($res2, 0, Bild2);
      $Bild3db=mysql_result($res2, 0, Bild3);
      $Bild1namedb=mysql_result($res2, 0, Bild1name);
      $Bild2namedb=mysql_result($res2, 0, Bild2name);
      $Bild3namedb=mysql_result($res2, 0, Bild3name);
      $Height1db=mysql_result($res2, 0, Height1);
      $Height2db=mysql_result($res2, 0, Height2);
      $Height3db=mysql_result($res2, 0, Height3);
      $Unterschrift1db=mysql_result($res2, 0, Unterschrift1);
      $Unterschrift2db=mysql_result($res2, 0, Unterschrift2);
      $Unterschrift3db=mysql_result($res2, 0, Unterschrift3);
      $height11db=mysql_result($res2, 0, height11);
      $height22db=mysql_result($res2, 0, height22);
      $height33db=mysql_result($res2, 0, height33);
      $width11db=mysql_result($res2, 0, width11);
      $width22db=mysql_result($res2, 0, width22);
      $width33db=mysql_result($res2, 0, width33);

if ($Bild2db = 1 and $Bild3db = 1)
{
  $sql = "UPDATE stgeorg_artikel SET Bild1 = '1', Bild2 = '1', Bild3 = '0', Bild1name = '$Bild2namedb', Bild2name = '$Bild3namedb', Bild3name = '', Height1 = '$Height2db', Height2 = '$Height3db', Height3 = '', Unterschrift1 = '$Unterschrift2db', Unterschrift2 = '$Unterschrift3db', Unterschrift3 = '', Height11 = '$Height22db', Height22 = '$Height33db', Height33 = '', width11 = '$width22db', width22 = '$width33db', width33 = '' WHERE AID = '$Bild1' LIMIT 1";
  $res = send_sql($sql);
}

if ($Bild2db = 1 and $Bild3db = 0)
{
  $sql = "UPDATE stgeorg_artikel SET Bild1 = '1', Bild2 = '0', Bild1name = '$Bild2namedb', Bild2name = '', Height1 = '$Height2db', Height2 = '', Unterschrift1 = '$Unterschrift2db', Unterschrift2 = '', Height11 = '$Height22db', Height22 = '', width11 = '$width22db', width22 = '' WHERE AID = '$Bild1' LIMIT 1";
  $res = send_sql($sql);
}

  }

 if ($Bild2 > 0)
  {
    $sql = "UPDATE stgeorg_artikel SET Bild2 = '0' WHERE AID = '$Bild2' LIMIT 1";
  $res = send_sql($sql);

  $sql2 = "select AID, Bild1, Bild2, Bild3, Bild1name, Bild2name, Bild3name, Unterschrift1, Unterschrift2, Unterschrift3, Height1, Height2, Height3, height11, height22, height33, width11, width22, width33 from stgeorg_artikel where AID = $Bild2";
  $res2 = send_sql($sql2);

      $AID=mysql_result($res2, 0, AID);
      $Bild1db=mysql_result($res2, 0, Bild1);
      $Bild2db=mysql_result($res2, 0, Bild2);
      $Bild3db=mysql_result($res2, 0, Bild3);
      $Bild1namedb=mysql_result($res2, 0, Bild1name);
      $Bild2namedb=mysql_result($res2, 0, Bild2name);
      $Bild3namedb=mysql_result($res2, 0, Bild3name);
      $Height1db=mysql_result($res2, 0, Height1);
      $Height2db=mysql_result($res2, 0, Height2);
      $Height3db=mysql_result($res2, 0, Height3);
      $Unterschrift1db=mysql_result($res2, 0, Unterschrift1);
      $Unterschrift2db=mysql_result($res2, 0, Unterschrift2);
      $Unterschrift3db=mysql_result($res2, 0, Unterschrift3);
      $height11db=mysql_result($res2, 0, height11);
      $height22db=mysql_result($res2, 0, height22);
      $height33db=mysql_result($res2, 0, height33);
      $width11db=mysql_result($res2, 0, width11);
      $width22db=mysql_result($res2, 0, width22);
      $width33db=mysql_result($res2, 0, width33);

if ($Bild3db = 1)
{
  $sql = "UPDATE stgeorg_artikel SET Bild2 = '1', Bild3 = '0', Bild2name = '$Bild3namedb', Bild3name = '', Height2 = '$Height3db', Height3 = '', Unterschrift2 = '$Unterschrift3db', Unterschrift3 = '', Height22 = '$Height33db', Height33 = '', width22 = '$width33db', width33 = '' WHERE AID = '$Bild2' LIMIT 1";
  $res = send_sql($sql);
}
  }

if ($Bild3 > 0)
  {
    $sql = "UPDATE stgeorg_artikel SET Bild3 = '0' WHERE AID = '$Bild3' LIMIT 1";
  $res = send_sql($sql);
  }
?>
Dieses Script bezweckt das das ausgewählt Bild auf 0 gesetzt wird (Dann wird es nichtmehr angeziegt bzw ist in der Datenbank nichtmehr vorhanden). Falls das Bild 2 gelöscht wird und ein Bild3 existiert, dann rückt das Bild3 an die Stelle von Bild2, wird also zu Bild2.

Genauso wenn Bild1 gelöscht wird. Dann rückt 3 auf 2 und 2 auf 1.

Mein script arbeiten auch einwandfrei! Aber nur einmal!?! Sagen wir ich Lösche Bild2. Dann rutscht 3 auf 2 und das orginal 2 verschwindet. Wudnerbar. Das geht bei allen möglcihen Kombinationen!

Aber:

WEnn ich nachdem das 2te gelöscht würde nun noch das erste oder das jetzt zweite löschen will, geht das nichtmehr. Er löscht mir zwar alle zum bild gehörigen Daten aus der Datenbank (Height1, Height 11, width22, unterschrift1 usw) Aber den Bildstatus lässt er auf 1. Warum???

Ich weiss das es wahrscheinlich schwer ist sich da reinzudenken. Aber vieleicht ist mein Fehler ja so offensichtlich das ein geübtes Auge ihn gleich sieht.

Vielen Dank fürs lesen -.-

[/code]
DDogg ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.04.2005, 15:36  
Gast
 
Beiträge: n/a
Standard Re: probleme beim löschen aus der datenbank

Zitat:
Zitat von DDogg
Vielen Dank fürs lesen -.-
 
Alt 26.04.2005, 15:40  
Erfahrener Benutzer
 
Registriert seit: 30.01.2005
Beiträge: 435
Jojo1
Standard

vielleicht erstmal php-tags verwenden
ich versteh richtig?
wenn man löscht geht das und wenn man nochmal löschen will, geht das nicht mehr richtig?

ich nehm mal an, dass es bei nem pagereload wieder geht?
dann kannst du ja ein umleitung benutzen (header())
ist nur ein lösungsvorschlag, wenn das stimmt, was ich sage^^
Jojo1 ist offline  
Alt 26.04.2005, 15:44  
Erfahrener Benutzer
 
Registriert seit: 16.08.2004
Beiträge: 145
DDogg
Standard

sorry wegen dem falschen codedingens ...

Ist genauso wie du sagst. Einmal löschen geht. Nochmal löschen aus dem selben Artikel geht nicht. Bzw geht schon. Er löscht alle Daten die er löschen soll. Ausser eben die Variable Bild1 (bzw Bild2 oder Bild3). Diese soll auf 0 gesetzt werden. Sie bleibt aber auf 1 -.-

nach einem Pagerreload gehts auch nich. Ich kann 50 mal Aktualisieren klicken, ändert sich nichts .... Weil der Wert Bild(1, 2 oder 3) bei 1 bleibt
DDogg ist offline  
Alt 26.04.2005, 15:45  
Erfahrener Benutzer
 
Registriert seit: 16.08.2004
Beiträge: 145
DDogg
Standard

Wiedersprech ich mir im Code irgendwo?
DDogg ist offline  
Alt 26.04.2005, 15:50  
Erfahrener Benutzer
 
Registriert seit: 16.08.2004
Beiträge: 145
DDogg
Standard

falls intresse besteht kann man sich das ganze auch ankucken. Steht alles online. Ich würde dann einen Gastzugang anlegen.
DDogg ist offline  
Alt 26.04.2005, 17:32  
Gast
 
Beiträge: n/a
Standard

Mal was anderes: Dein mysql_result-Marathon ist einfach nur grausam. 19x mysql_result statt einmal mysql_fetch_array oder mysql_fetch_object. Und ganz extrem ist das in der Schleife. Sagen wir mal, es gibt 10 Datensätze, da brauchst du 190 Datenbankzugriffe statt 10.

Gruß
phpfan
 
Alt 27.04.2005, 11:59  
Erfahrener Benutzer
 
Registriert seit: 16.08.2004
Beiträge: 145
DDogg
Standard

So ein Marathon ensteht wenn man Php und MySql per Learning by Doing und gelegentlicher Forumnachfragerei lernt ... -.-

Ich probier das halt so aus wie ich mir das denke. Ohne zu wissen das es auch besser geht. Und wenns dann funktioniert, bin ich zufrieden das ichs geschafft hab. Ich bin Anfänger, und wenns bessere und einfachere Wege gibt, Dinge zu tun, muss ich die erst lernen. Von daher bin ich für deinen Hinweis sehr dankbar

Hab das Problem übrigens anderst gelöst. ... lange geschichte ... aber es geht. Und das is ja nun mal die Hauptsache

Wenn ich das in zwei monaten nochmal tun muss, werd ich mich wahrscheinlich über meine jetzige vorgehensweise kaputtlachen ... aber es is noch kein meister vom himmel gefallen ..
DDogg ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datenbank Probleme Lern_HEIKO PHP Tipps 2008 8 03.11.2007 18:35
Probleme mit MySql Datenbank PHP Tipps 2006 13 09.05.2006 16:33
Connection Probleme PHP-MSSQL DaOnkel PHP Tipps 2006 4 11.04.2006 07:39
Probleme beim �bertragen an eine Mysql Datenbank Datenbanken 2 07.03.2006 21:26
Eingabeformular Probleme mit Übergabe an Datenbank PHP Tipps 2005-2 4 12.10.2005 14:13
Probleme mit dem Eintragen in die Datenbank picco PHP Tipps 2005-2 1 29.09.2005 19:50
[Erledigt] Probleme beim Datenupload zu meiner Datenbank Datenbanken 3 05.09.2005 19:47
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
[Erledigt] Probleme mit Sonderzeichen... Datenbanken 1 02.08.2005 23:37
Probleme beim speichern in die Datenbank Jojo1 PHP Tipps 2005 14 03.02.2005 14:50
[Erledigt] probleme mit event datenbank Datenbanken 1 04.09.2004 00:30


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.