Rechnung stornieren, Daten zurückbuchen

Ich möchte dir zu nahe treten.

Aber ich schreibe schon die ganze Zeit warum es nicht funktioniert.

Wenn das script mit
PHP:
  $zurueck_buchen = "UPDATE bm_versionen
                   SET
                       abgang = abgang - $of['menge']
                   WHERE
                       art_nr = $of['art_nr']
                       ";
                       mysql_query($zurueck_buchen);

läuft, wird nichts angezeigt alles weiß

Nehme ich dieses Teil heraus funktioniert das script NUR es wird nichts zurück gebucht.
Gruß
gg
 
Ich möchte dir zu nahe treten.
Ich hoffe, du meintest das Gegenteil, denn ich scheine der einzige zu sein, der sich noch die Mühe macht, dein Problem verstehen zu wollen.

Aber ich schreibe schon die ganze Zeit warum es nicht funktioniert
Nur antwortest du nicht auf die Fragen, die man dir stellt.

Es KANN sein, dass dieses Query länger dauert, als es dein Server zulässt. Dazu müsste man aber wissen, ob das Skript tatsächlich noch länger läuft, oder ob es gleich zu anfang abbricht (und jetzt sag bitte nicht, es ist alles weiß, das hab ich schon verstanden)

Nochmal - was bezweckst du damit:
PHP:
while($of = mysql_fetch_assoc($storno_rechnungen)){}

Das ist eine leere Schleife, in der ÜBERHAUPT NICHTS passiert.
Das einzige was du damit erreichst, ist, dass in $of nach diesem Code-Abschnitt einer der in zufälliger Reihenfolge zurückgegebenen Datensätze steht.
Also was soll das?
 
sorry habe das "nicht" vergessen.

Ich weis nicht wie man erkennt wie lange der Aufbau der Seite braucht und dann serverseitig abbricht. Falls es wichtig ist der Quelltext ist komplett leer.

Ich habe nicht die Ahnung in diesem Bereich wie du

Ich dachte ich brauche dies für das Update. Ich hatte vor, mir die Daten zuholen von der
z.B. RechnungNr.3 mit 3 Artikel art_nr, menge und wollte es mit dem update wieder zurück buchen.


PHP:
  $zurueck_buchen = "UPDATE bm_versionen
                   SET
                       abgang = abgang - $of['menge']
                   WHERE
                       art_nr = $of['art_nr']
                       ";
                       mysql_query($zurueck_buchen);

Ich hoffe ich habe es verständlich geschrieben
gg
 
Ich weis nicht wie man erkennt wie lange der Aufbau der Seite braucht und dann serverseitig abbricht
In jedem Browser dreht sich irgendwas, während eine Seite lädt. Früher war's beim IE ne Weltkugel, jetzt sind es irgendwo Kreise. Zusätzlich steht irgendwo meistens ... wird geladen.

Ich dachte ich brauche dies für das Update. Ich hatte vor, mir die Daten zuholen von der
z.B. RechnungNr.3 mit 3 Artikel art_nr, menge und wollte es mit dem update wieder zurück buchen

Dann wäre vom Prinzip folgendes richtiger:


PHP:
while($of = mysql_fetch_assoc($storno_rechnungen)){
  $zurueck_buchen = "UPDATE bm_versionen 
                   SET 
                       abgang = abgang - $of['menge'] 
                   WHERE 
                       art_nr = $of['art_nr'] 
                       "; 
                       mysql_query($zurueck_buchen); 
}
 
Die Seite ist sofort da und es dreht und bewegt sich nicht das ein denken lässt das die Seite noch läd.

Nur der IE browser zeigt im Quelltext:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>

Ich habe es jetzt so eingetragen

PHP:
   foreach ($_POST["storno"] as $key => $val1)
        {
        $liefers1  = "UPDATE lieferschein
                      SET storno = '$datum'
                      WHERE lf_id = $val1
                     ";
                     mysql_query($liefers1);
                     }

  $storno_rechnungen = mysql_query("
                         SELECT
                              *
                         FROM
                               rechnung
                         WHERE
                               rechnungsnr =$val1
                         ");

             while($of = mysql_fetch_assoc($storno_rechnungen)){

               $zurueck_buchen = "UPDATE bm_versionen
                           SET
                               abgang = abgang - $of['menge']
                           WHERE
                               art_nr = $of['art_nr']
                               ";
                               mysql_query($zurueck_buchen);
               }
}

NUR es wird auch nichts angezeigt
 
Ähm, was sollte denn eigentlich angezeigt werden?
Ist das jetzt dein ganzes Skript?
Weil, da ist nämlich nirgends ein echo zu finden.
 
Es wird nicht angezeigt nur in der DB sollte etwas passieren.

Ich sende dir das ganze skript

Zur Info:
Auf der Seite die nur für mich ist und nicht für den Kunden sollen alle offene Lieferscheine angezeigt werden und die Lieferscheine die schon bearbeitet wurden bekommen einen Haken
oder eine Mahnung oder ein storno alles mit Datum was auch funktioniert. Nur das zurückbuchen macht Probleme.
Du hättest es bestimmt besser gemacht aber ich bin froh das ich es soweit hingekommen habe.

PHP:
<?php
session_start();
?>

<html>
<head>
<title>warenkorb</title>
<meta name="author" content="rpw">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
<META http-equiv=Content-Type content="text/html; charset=latin1">
<link rel="stylesheet" href="offene_lieferscheine.css" type="text/css">
</head><body>

<?php
// Verbindung herstellen
$host="xxxxx.de";
$user="xxxxx";
$pwd="xxxxx";
$db="xxxxx";

$linkid=@mysql_connect($host,$user,$pwd);

// Datenbank auswählen
$succ=mysql_select_db($db);

$datum = date("Y-m-d");

if ($_POST["dat"])
{
   foreach ($_POST["dat"] as $key => $val)
        {
        $liefers  = "UPDATE lieferschein
                     SET ware_erhalten = '$datum'
                     WHERE lf_id = $val
                   ";
                    mysql_query($liefers);
                    }
}


echo "Test, geht hier überhaupt was?";
echo ">".$_POST["storno"]."<";

if ($_POST["storno"])

{
   foreach ($_POST["storno"] as $key => $val1)
        {
        $liefers1  = "UPDATE lieferschein
                      SET storno = '$datum'
                      WHERE lf_id = $val1
                     ";
                     mysql_query($liefers1);
                     }

  $storno_rechnungen = mysql_query("
                         SELECT
                              *
                         FROM
                               rechnung
                         WHERE
                               rechnungsnr =$val1
                         ");

             while($of = mysql_fetch_assoc($storno_rechnungen)){

               $zurueck_buchen = "UPDATE bm_versionen
                           SET
                               abgang = abgang - $of['menge']
                           WHERE
                               art_nr = $of['art_nr']
                               ";
                               mysql_query($zurueck_buchen);
               }
}



if ($_POST["mahn1"])
{
   foreach ($_POST["mahn1"] as $key => $val1)
        {
        $liefers2  = "UPDATE lieferschein
                     SET mahn1 = '$datum'
                     WHERE lf_id = $val1
                   ";
                    mysql_query($liefers2);
                    }
}
if ($_POST["mahn2"])
{
   foreach ($_POST["mahn2"] as $key => $val2)
        {
        $liefers3  = "UPDATE lieferschein
                     SET mahn2 = '$datum'
                     WHERE lf_id = $val2
                   ";
                    mysql_query($liefers3);
                    }
}


echo "<form action=\"offene_lieferscheine.php\" name=\"senden\" method=\"POST\">";
echo "<table>
<tr>
    <td colspan=\"3\" align=\"center\">
                 Offene Lieferscheine
    </td>
    <td colspan=\"6\" align=\"center\">
      <input type=\"submit\" name=\"liefersch\" value=\" Lieferschein \n erledigt &nbsp;/ &nbsp;geändert \"></input>
    </td>
</tr>
<tr align=\"center\">
        <td>Liefers.Nr.</td>
        <td>KundenNr.</td>
        <td>BestellDatum</td>
        <td>Tage Diff.</td>
        <td>offene <br>Liefers.</td>
        <td>Storno</td>
        <td>Mahn1</td>
        <td>Mahn2</td>
</tr>
";
$offene_lieferscheine = mysql_query("
                         SELECT
                              *
                         FROM
                               lieferschein
                         WHERE
                               lf_id > 0
                         AND
                               ware_erhalten < 1
                         AND
                               storno < 1
                               ");

                     while($of = mysql_fetch_assoc($offene_lieferscheine)){

echo "<tr>
          <td class=\"breite1\">".$of[lf_id]."</td>
          <td class=\"breite3\">".$of[kd_id]."</td>
          <td class=\"breite2\">".$of[datum]."</td>
          ";

$aktuell = strtotime("$datum");
$alt = strtotime($of[datum]);
$dif = ($aktuell - $alt)/86400;
echo "
          <td class=\"breite3\">$dif</td>";

          if ($dif > 6 OR $of['ware_erhalten'] = 0){
          echo "<td class=\"breite3\"><input type=\"checkbox\" name=\"dat[]\" value=\"$of[lf_id]\" checked></input></td>";
          }
          else{
          echo "<td class=\"breite3\"><input type=\"checkbox\" name=\"dat[]\" value=\"$of[lf_id]\" ></input></td>";

          }
          if ($of['storno'] >=1){
          echo "<td class=\"breite2\">".$of[storno]."</td>";
          }
          else{
          echo "<td class=\"breite3\"><input type=\"checkbox\" name=\"storno[]\" value=\"$of[lf_id]\"></input></td>";
          }
          if ($of['mahn2'] >=1){
              echo "<td class=\"breite2\">".$of[mahn1]."</td>";
              echo "<td class=\"breite2\">".$of[mahn2]."</td>";
              }

    else{

          if ($of['mahn1'] >=1){
              echo "<td class=\"breite2\">".$of[mahn1]."</td>";
              echo "<td class=\"breite2\"><input type=\"checkbox\"
                name=\"mahn2[]\" value=\"$of[lf_id]\" ></input></td>";
          }
          else{
              echo "<td class=\"breite2\"><input type=\"checkbox\"
                name=\"mahn1[]\" value=\"$of[lf_id]\" ></input></td>";
          }

    }
echo "</tr>";
}

echo "</table></form>";
?>
</body>
</html>
 
moin,

habe den Fehler gefunden:)

ALT:
PHP:
             while($of = mysql_fetch_assoc($storno_rechnungen)){

               $zurueck_buchen = "UPDATE bm_versionen
                           SET  abgang = abgang - $of['menge']

                           WHERE
                               art_nr = $of['art_nr']
                               ";
                               mysql_query($zurueck_buchen);
               }

Geändert:
ALT >> abgang = abgang - $of['menge']
NEU>> abgang = abgang - ".$of['meng."
ALT >> art_nr = $of['art_nr']
NEU>> art_nr = '".$of['art_nr']."' // ist string keine Zahl.

Danke an alle für die viele Hilfe.
 
Zurück