Hilfe: bitte script ansehen

tefnut

Mitglied
Guten Morgen!,

meine Verzweiflung ist so gross, dass ich gleich das ganze script online stelle ... ich sehe nicht, wo mein Gedankenfehler ist und hoffe,
jemand von Euch kann mir weiterhelfen .

Und zwar soll das Script folgendes leisten:

Wenn auch nur eine der Variablen a, b, c oder d (die alle in einer Zeile einer
Tabelle liegen) einen Inhalt hat, soll die Meldung "Es müssen erst alle
freigegeben sein, bevor ..." kommen, wenn alle 4 Variablen und das in jeder
Zeile der Tab. leer sind, darf gelöscht werden. Leider erhalte ich zwar die
Fehlermeldung, aber gelöscht wird trotzdem auch wenn noch eine Variable
einen Wert hat. Zudem - angenommen nur in Zeile 6 der Tab. steht etwas -
bekomme ich entsprechend der Anzahl der Tab. die Meldung "Bereich wurde geloescht", und in Zeile 6 die Fehlermeldung :confused:

Grüße
Karin

PHP:
//echo "$ug1 <br> "; echo "$ug2 <br> "; //(ist OK)
//nehme jede Variable(Zelle) pro Zeile aus Tabelle $ug1 und ...

$query="SELECT a, b, c, d FROM `$ug1`";
$res=mysql_query($query) or die(mysql_error());

while($row=mysql_fetch_array($res))
{
   $a = $row['a'];         // echo "$a\n";  echos  OK
   $b = $row['b'];
   $c = $row['c'];
   $d = $row['d'];

  if ($res)
 {
 // ... wenn auch nur ein Zelleninhalt nicht leer ist :
  if ( $a!='' or $b!='' or $c!='' or $d!='')
  {
   echo '<br><strong>Es müssen erst alle freigegeben sein, bevor der Bereich   gelöscht werden kann!</strong><br><br>';
   echo '<a href="../../index.php">zurück zur Startseite</a><br> ';
  }

  //nur wenn alle Zellen pro Zeile in der Tabelle namens $ug1 leer sind, so   lösche:
  if ( $a=='' and $b=='' and $c=='' and $d=='' )
  {
   $res2 = mysql_query(" DELETE FROM `IPDB` WHERE `id` = '$ug2' ");  //zugehörigen Eintrag aus IPDB löschen
   $res3 = mysql_query(" DROP TABLE IF EXISTS `$ug1` "); // Tabelle $ug1 löschen
   if ($res2 and $res3)
   { echo '<p><b>Bereich wurde geloescht</b></p>'; }
  }
 }
}
 
versuch es mal so:


PHP:
// ... wenn auch nur ein Zelleninhalt nicht leer ist : 
  if ( isset(!$a || !$b || !$c || !$d))
 
danke, aber nun erhalte ich einen parse error:
parse error, expecting `T_VARIABLE' or `'$'' für genau jene Zeile ...
aber ich habe in der Zeile davor ein Semikolon, Klammer fehlt auch nicht ...und nun?
 
PHP:
$query="SELECT a, b, c, d FROM `$ug1`"; 
$res=mysql_query($query) or die(mysql_error());

while($row=mysql_fetch_array($res)) // Schleife
{
   $a = $row['a'];
   $b = $row['b'];
   $c = $row['c'];
   $d = $row['d'];

  if(!empty($a) || !empty($b) || !empty($c) || !empty($d))  //wenn eins nicht leer ist dann...
  {
   $err = 1;     //setzt eine Variable als Error
   echo '<br><strong>Es müssen erst alle freigegeben sein, bevor der Bereich   gelöscht werden kann!</strong><br><br>';
   echo '<a href="../../index.php">zurück zur Startseite</a><br> ';
  exit;
  }
} //ende der Schleife

if (!isset($err)) //wenn die Errorvariable nicht gesetzt ist
  {
   $res2 = mysql_query(" DELETE FROM `IPDB` WHERE `id` = '$ug2' ");  //zugehörigen Eintrag aus IPDB löschen
   $res3 = mysql_query(" DROP TABLE IF EXISTS `$ug1` "); // Tabelle $ug1 löschen
   if ($res2 and $res3)
   { echo '<p><b>Bereich wurde geloescht</b></p>'; }
  }
 
Zuletzt bearbeitet:
Zurück