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 ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign 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 > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 24.07.2015, 19:53:50
Einradkohorte Einradkohorte ist offline
Anfänger
 
Registriert seit: Jul 2015
Alter: 33
Beiträge: 2
HILFE: Datensätze werden als bearbeitet makiert, obwohl sie nicht bearbeitet wurden.

Hallo Gemeinde,

ich habe hier ein kleines Script geschrieben und mein Chef hat eine Anmerkung gemacht. Kann mir jemand bitte helfe dieses Problem zu lösen und mir eine short-description dazu geben damit ich das einwandfrei nachvollziehen kann? Hier das Script plus Anmerkung. Danke für eure Unterstützung ich weiß den Support echt zu schätzen.

Script:

PHP-Code:
<?php
include_once(dirname(__FILE__) . '/../bootstrap.php');

$oDb oxDb::getDboxDb::FETCH_MODE_ASSOC );
$sQ1 "SELECT `oxid` FROM `oxorder` WHERE `oxtransstatus` = 'NOT_FINISHED' AND `oxpaymenttype` = 'trosofortgateway_su'";
$oRs $oDb->getArray$sQ1falsefalse );

foreach (
$oRs as $oxOrderID) {
    
$oxOrderID $oxOrderID['oxid'];
    
$sQ "SELECT oxorderid, oxartid, oxartnum, oxamount FROM `oxorderarticles` WHERE `oxOrderID` = '$oxOrderID'";
    
$oRs $oDb->getArray$sQfalsefalse );


    foreach (
$oRs as $oxArticle){
        
$oArticle oxNew('oxarticle');


        if (
$oArticle->load($oxArticle['oxartid'])) {
            
$oArticle->reduceStock(-$oxArticle['oxamount'], true);

        }

    }

$updstatus "UPDATE oxorder SET oxtransstatus = 'NOT_FINISHED_MODI' WHERE oxtransstatus = 'NOT_FINISHED' AND `oxpaymenttype` = 'trosofortgateway_su'";
$result mysql_query($updstatus) or die ('Update fehlgeschlagen : ' msql_error($oDb));
}

?>
Anmerkung vom Chef:

++ $result = mysql_query($updstatus) or die ('Update fehlgeschlagen : ' . msql_error($oDb)); ++

Du änderst hier ALLE Datensätze, d. h. auch zwischenzeitlich neu eingetroffene Datensätze werden direkt als bearbeitet markiert obwohl, sie nicht bearbeitet wurden. Bitte ändere das so, dass nur der aktuell bearbeitete Datensatz als bearbeitet markiert wird. So können wir das nicht verwenden.
Mit Zitat antworten
  #2  
Alt 25.07.2015, 03:56:44
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: HILFE: Datensätze werden als bearbeitet makiert, obwohl sie nicht bearbeitet wurd

Hallo und willkommen hier im Forum.

In Deinem Update-Statment fehlt die richtige WHERE-Klausel.
__________________
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
  #3  
Alt 25.07.2015, 12:13:01
Einradkohorte Einradkohorte ist offline
Anfänger
 
Registriert seit: Jul 2015
Alter: 33
Beiträge: 2
AW: HILFE: Datensätze werden als bearbeitet makiert, obwohl sie nicht bearbeitet wurd

Dankeschön :), ich versteh aber nicht genau was du meinst. Ich habe doch "WHERE oxtransstatus = 'NOT_FINISHED' AND `oxpaymenttype` = 'trosofortgateway_su'";. was habe ich denn übersehen?

Vielleicht kannst du mir ein link zu eine tutorial oder ähnlichem schicken damit ich das gescheit nachvollziehen kann und in Zukunft solche Fragen nichtmehr stellen muss :)
Mit Zitat antworten
  #4  
Alt 27.07.2015, 10:39:52
raiguen raiguen ist offline
Anfänger
 
Registriert seit: Jul 2011
Alter: 71
Beiträge: 30
AW: HILFE: Datensätze werden als bearbeitet makiert, obwohl sie nicht bearbeitet wurd

Mit deiner WHERE-Klausel updatest du ALLE Datensätze, die dieser Bedingung entsprechen! Somit hat dein Chef schon recht.

Was du übersehen hast, ist die eindeutige ID oxid, die jeder Datensatz hat und die du ja auch in der foreach-Schleife verwendest.
Also musst du diese ID in die WHERE-Klausel des UPDATE-Statements einarbeiten:
PHP-Code:
$updstatus "UPDATE oxorder SET `oxtransstatus` = 'NOT_FINISHED_MODI' WHERE `oxid` = '$oxOrderID'"
Somit wird auch nur dieser passende Datensatz entsprechend geupdatet ;-)
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
Datensätze nach letztem Zugriff sortieren yaem MySQLi/PDO/(MySQL) 1 04.06.2015 12:52:33
Einzelne Datensätze sperren, wenn sie bearbeitet werden MrLongbaugh MySQLi/PDO/(MySQL) 0 15.10.2006 12:28:41


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:10:29 Uhr.


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


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