Probleme mit 2 DB-Abfragen in einem Script?

Status
Für weitere Antworten geschlossen.

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
312
Punkte für Reaktionen
10
Punkte
18
Hallo zusammen,

ich habe seit heute ein seltsames Problem mit dem Webserver meiner DS.

Ich nutze diesen immer um Seiten mit PHP zu erstellen.

Nur seit heute bekomme ich jedesmal, wenn ich an der Seite etwas ändere, abspeichere und im Browser aktualisiere im PHPDesigner immer die Meldung, dass die Datei von einem anderen Program verändert wurde und ob diese aktualisiert werden solle. Ich muss dass dann immer verneinen. Nur das nervt langsam, vor allem weil ich das nie gehabt habe.

ch konnte das Problem jetzt ein wenig eingrenzen: Kann es sein dass die DS Probleme mit zwei DB-Abfragen innerhalb eines Scripts hat?

Kennt jemand von euch das Problem oder kann damit was anfangen?

Besten dank

Frederic
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Wenn ich dich richtig verstehe, dann hast du eine PHP-Skript-Datei in einem Editor-ähnliche Tool auf und testest es gleichzeitig per Apache? Dann änedr der Apache die Datei-Header und du bekommst die Aufforderung, dass Skript-Datei doch bitte noch einmal einzulesen, richtig? Ich halte dieses Verhalten für völlig normal, wenn die 'Lese-Zeit' im Datei-Header geändert wird und der Editor so sensibel ist, dass zu bemerken.

Itari
 

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
312
Punkte für Reaktionen
10
Punkte
18
Nicht ganz:

Wenn ich nur eine DB-Abfrage drinn habe, dann ist das ganze kein Problem, nur wenn ich zwei davon in einem Script habe, dann bekomme ich diese Fehlermeldung. UNd so wirklich normal kann das nicht sein, ich arbeite öfters mit solchen Kombinationen und beimeiner alten DS 209 hatte ich diese Probleme nie...

Ich habe das vorhon z.B. bei anderen php-Dateien (ohne DB-Zugriff) probiert und bekomme keine Probleme...

Das seltsame ist vor allem: Selbst wenn ich die zweite DB-Abfrage auskommentiere bekomme ich die Fehlermeldung obwohl keine Abfrage stattfindet. Nur wenn ich diese komplett lösche geht es. Es spielt aber auch keine Rolle ob ich die erste oder zweite lösche, solange eine weg ist gibts keine Fehlermeldung...

NACHTRAG: KOmmando zurück: Es scheint wohl eher an der länge des Scriptes zu liegen. Habe jetzt mal Dummy-Code eingefügt und habe das gleiche PRoblem.

Aber bei einer XAMPP-Arbeitsumgebung ist das ganze kein Problem, oder man hat an einer neuen Apache-Version was geändert...

Es nervt trotzdem kolossal...
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Um hier weiter zu diskutieren, müsstest du mal Passagen des Skriptes posten.

Itari
 

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
312
Punkte für Reaktionen
10
Punkte
18
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<meta name="robots" content="index"/>
<meta name="robots" content="follow"/>
<meta name="language" content="deutsch, de"/>
<meta name="author" content="xxx"/>
<meta name="publisher" content="xxx"/>
<meta name="distribution" content="global"/>
<meta name="robots" content="all"/>
<meta name="page-topic" content="Internet"/>
<meta name="siteinfo" content="http://www.xxx.de/robots.txt"/>
<meta http-equiv="reply-to" content="xxx@xxx.de"/>
<meta http-equiv="cache-control" content="no-cache"/> 
<meta http-equiv="pragma" content="no-cache"/>
<meta name="revisit-after" content="5 days"/>
<title>..:: xxx ::..</title>
<link href="css/style.css" rel="stylesheet" type="text/css"/> 
<!--[if lte IE 6]>
<link href="css/style_ie6.css" rel="stylesheet" type="text/css" />
<![endif]-->
<!--[if IE 7]>
<link href="css/style_ie7.css" rel="stylesheet" type="text/css" />
<![endif]-->
<link rel="shortcut icon" href="images/favicon.ico" type="image/vnd.microsoft.icon" />
<link rel="icon" href="images/favicon.ico" type="image/vnd.microsoft.icon" />
</head>

<body>

    <?php

	include ('inc/inc_db.php');
        
        mysql_query("SET NAMES 'utf8'");
        
	$mysql_abfrage  = "SELECT einkauf.einkauf_id, einkauf.einkauf_menge, einkauf.einkauf_produkt, einkauf.einkauf_einzelpreis, einkauf.einkauf_gesamtpreis, einkauf.einkauf_gesamt_id, ";
        $mysql_abfrage .= "einkauf_gesamt.einkauf_gesamt_id, einkauf_gesamt.einkauf_gesamt_datum, einkauf_gesamt.einkauf_gesamt_kaufhaus_id, einkauf_gesamt.einkauf_gesamt_gesamtpreis_einkauf ";
        $mysql_abfrage .= "FROM einkauf LEFT JOIN einkauf_gesamt ON einkauf.einkauf_gesamt_id=einkauf_gesamt.einkauf_gesamt_id";  
		
		$mysql_ergebnis=mysql_query($mysql_abfrage);
		
		$num = mysql_num_rows($mysql_ergebnis);
		
		if ($num == 0)
		{
			echo '<br /><p>Es liegen keine aktuellen Daten vor...</p><br />';
		}
		
		else
		{
			while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
			{
                
                echo '<p>----------------------------------------------------------------------------------------</p>';
                echo '<p>Datum: ' . $datensatz["einkauf_gesamt_datum"] . '</p>';
                echo '<p>Einkauf-ID: ' . $datensatz["einkauf_gesamt_id"] . '</p>'; 
                echo '<p>Produkt-ID: ' . $datensatz["einkauf_id"] . '</p>';               
                echo '<p>' . $datensatz["einkauf_menge"] . '  -  ' . $datensatz["einkauf_produkt"] . '  -  ' . $datensatz["einkauf_einzelpreis"] . ' Euro</p>';
                echo '<p>Kaufhaus: ' . $datensatz["einkauf_gesamt_kaufhaus_id"] . '</p>';
                echo '<p>Gesamtpreis: ' . $datensatz["einkauf_gesamt_gesamtpreis_einkauf"] . '</p>';
                echo '<p>----------------------------------------------------------------------------------------</p>';
			}
		}
        
            
?>

<?php
        mysql_query("SET NAMES 'utf8'");
        
        $mysql_abfrage = "SELECT einkauf_gesamt_id, einkauf_gesamt_datum, einkauf_gesamt_kaufhaus_id, einkauf_gesamt_gesamtpreis_einkauf ";
        $mysql_abfrage .= "FROM einkauf_gesamt";
         
		
		$mysql_ergebnis=mysql_query($mysql_abfrage);
		
		$num = mysql_num_rows($mysql_ergebnis);
		
		if ($num == 0)
		{
			echo '<br /><p>Es liegen keine aktuellen Daten vor...</p><br />';
		}
		
		else
		{ 
			while ($datensatz = mysql_fetch_assoc($mysql_ergebnis))
			{
                echo '<p>----------------------------------------------------------------------------------------</p>';
                echo '<p>Einkauf-ID: ' . $datensatz["einkauf_gesamt_id"] . '</p>'; 
                
                 
                $mysql_abfrage_produkt  = "SELECT einkauf_id, einkauf_menge, einkauf_produkt, einkauf_einzelpreis, einkauf_gesamtpreis, einkauf_gesamt_id ";
                $mysql_abfrage_produkt .= "FROM einkauf WHERE einkauf_gesamt_id='" . $datensatz["einkauf_gesamt_id"] . "'"; 
                 	
        		$mysql_ergebnis_produkt=mysql_query($mysql_abfrage_produkt);
        		
        		$num_produkt = mysql_num_rows($mysql_ergebnis_produkt);

                while ($datensatz_produkt = mysql_fetch_assoc($mysql_ergebnis_produkt))
                {
                    echo '<p>Produkt-ID: ' . $datensatz_produkt["einkauf_id"] . '</p>';               
                    echo '<p>' . $datensatz_produkt["einkauf_menge"] . '  -  ' . $datensatz_produkt["einkauf_produkt"] . '  -  ' . $datensatz_produkt["einkauf_einzelpreis"] . ' Euro</p>';
                
                }
                
                echo '<p>Kaufhaus: ' . $datensatz["einkauf_gesamt_kaufhaus_id"] . '</p>';
                echo '<p>Gesamtpreis: ' . $datensatz["einkauf_gesamt_gesamtpreis_einkauf"] . '</p>';
                
                echo '<p>----------------------------------------------------------------------------------------</p>';
			}
		}
            
	?>
    

    
</body>
</html>


Bitte schön...

Es handelt sich um ein Haushaltsbuch und ich probiere gerade die DB-Abfragen durch, weil ich die Sortierung nicht so hinbekomme, daher nicht wundern...

Aber schau Dir bitte auch noch meinen Nachtrag im Post davor an...
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Also ich kann beim flüchtigen Drüberschauen nichts entdecken, was jetzt PHP/MySQL-mäßig irgendwie anormal aussieht. Wenn die Dateigröße aber jetzt der Verursacher ist, kannst ja noch einmal mit einem kleinen PHP-Skript und mehreren MySQL-Queries abtesten, ob es dann wirklich an den Datenbankgeschichten liegt.

Ansonsten könnte man schauen, ob man für das Verhalten PHP-Optionen verändern kann, am besten in einer httpd.conf oder in der php.ini (dann musste das Format ändern) ... das wäre hier mal eine Auswahl:

#php_admin_value post_max_size 512M
#php_admin_value upload_max_filesize 512M
#php_admin_value max_execution_time 2400
#php_admin_value max_input_time 600
#php_admin_value memory_limit 32M

Manchmal kann man auch durch einen remount des volume1 (wo dein Webverzeichnis wahrscheinlich liegt) mit der Option -noatime dafür sorgen, dass die Lesezugriffe nicht mehr in die inodes geschrieben wird. Ob as aber jetzt zielführend ist, kann ich dir nicht sagen.

Auch könntest das PHP-Buffer-Handling mal hin- und herschalten (im DSM) ... sind ja alles so Dinge, die zusammen kommen können.

Itari
 

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
312
Punkte für Reaktionen
10
Punkte
18
Also das mit dem Buffer -Handling habe ich so schon probiert, hat nichts gebracht. Auch habe ich den Web-Dienst neu gestartet.

Reicht es die php.ini in das Page-Verzeichnis zu speichern? Wenn ja bringt das auch nichts...

Und wie könnte ich das mit dem -noatime machen?

Jetzt wird es aber auch ganz gruselig: Ich muss nicht mal die Seite aktualisieren, es reicht schon wenn ich in den Browser klicke und dann wieder in den Editor. Da greift der Apache doch noch gar nicht drauf zu....oder doch?

NACHTRAG:

Habe mir jetzt auf meinem Rechner noch ein XAMPP eingerichtet und da tritt das Problem nicht auf. Habe mal die Apache-Versionen verglichen:

Auf der DS:
Apache/2.2.16 (Unix) PHP/5.3.3
Post Max Size: 32MB
max_execution_time: 240
max_input_time: 60
memory_limit: 128MB

XAMPP: Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1
Post Max Size: 8MB
max_execution_time: 30
max_input_time: 60
memory_limit: 128MB

Die Werte sehen bei der DS eigentlich besser aus. Weiß also nicht ob das dafür verantwortlich ist...
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
312
Punkte für Reaktionen
10
Punkte
18
Aber gilt dass dann für das ganze Volume? Das könnte dann doch Probleme bei BackUps geben, oder?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Aber gilt dass dann für das ganze Volume? Das könnte dann doch Probleme bei BackUps geben, oder?

Hmm, wird denn die Access-Time für einen Backup-Lauf ausgewertet? Nicht die Modification-Time (mtime bzw. ctime)?

Itari
 

dany

Benutzer
Mitglied seit
31. Mrz 2008
Beiträge
352
Punkte für Reaktionen
0
Punkte
22
Könnte es sein das du mittels SAMBA-Freigabe auf deine php-Daten zugreifst? Ich habe ab und zu die gleichen Meldungen, wenn ich Programmiere. (Dreamweaver mit PHP auf einem Ubuntu Linux Server)

Gruss Dany
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat