php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 27-10-2006, 05:03
Zine
 Junior Member
Links : Onlinestatus : Zine ist offline
Registriert seit: Oct 2005
Ort: Barssel
Beiträge: 143
Zine ist zur Zeit noch ein unbeschriebenes Blatt
Standard fehlerhaftes Update

Hallo,

zur Zeit arbeite ich an einem Projekt, welches es erfordert eine große Menge Daten in die Datenbank zu schreiben.
Dies ging problemlos, nun musste ich einige dieser Datensätze aktualisieren, bzw deren Eigenschaften ergänzen.
Es geht hierbei um ca. 16.000 Datensätze, pro Datensatz mehrere Spalten mit verschiedenen Einträgen.
Nun sollte eigt jede Spalte und jede Zeile gefüllt sein, aber es gibt in unregelmäßigen Abständen immerwieder mal einen Datensatz, der keine neuen Eigenschaften hat. woran kann das liegen?
Das ganze wurde über eine while Schleife realisiert, sprich es gab 16.000 Querys.
Könnte es sich um eine Überlastung handeln?


regards
Zine
Mit Zitat antworten
  #2 (permalink)  
Alt 27-10-2006, 08:11
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich behaupte einfach mal, es lag eher am Code als an Überlastung. Zeigst du ihn uns?
Mit Zitat antworten
  #3 (permalink)  
Alt 27-10-2006, 16:21
Zine
 Junior Member
Links : Onlinestatus : Zine ist offline
Registriert seit: Oct 2005
Ort: Barssel
Beiträge: 143
Zine ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Gern...

Das Script soll nur den unbewohnbaren Planeten Eigenschaften hinzufügen, da es schon bewohnbare gibt, muss ich diese natürlich abziehen.
In dem Array id_array sind sämtliche ID's der bewohnbaren Planeten.


PHP-Code:
$sql="SELECT id FROM koords_planet"
$resultmysql_query($sql) or die(mysql_error()); 
$num_rows mysql_num_rows($result);
    
$unbewohnbar $num_rows $bewohnbare_planeten;
$count 1;
while(
$count $unbewohnbar)
    {

 if(
in_array($count,$id_array)) {$count++;} else
    {
    
$temp_min rand(-300,399);
    
$temp_max rand($temp_min,400);
    
$atmo rand(3,6);
    
$sql ="UPDATE koords_planet SET temp_min = $temp_min, temp_max = $temp_max, atmo = $atmo, bewohnbar = '0' WHERE id = '$count'";
    
mysql_query($sql) or die(mysql_error());
    
$count++;
    }
   } 
Mit Zitat antworten
  #4 (permalink)  
Alt 27-10-2006, 22:46
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich behaupte ferner, dass sich das mit einer einzigen Query lösen läßt.

'UPDATE koords_planet SET temp_min = FLOOR(-300 + RAND() * (399 + 300), temp_max = FLOOR(-300 + RAND() * (400 + 300), atmo = FLOOR(3 + RAND() * (6 - 3), bewohnbar = 0 WHERE id NOT IN ('.implode(',', $id_array).')'

Das entspricht nicht ganz deinem Code was die Min/Max-Temperaturen angeht. Aber ich sehe auch wenig Sinn in deinem Ansatz und wenn du ihn dennoch exakt wie geplant umsetzen mußt, setzt du alle temp_max eben mit einer zweiten Query.
Mit Zitat antworten
  #5 (permalink)  
Alt 28-10-2006, 00:03
Zine
 Junior Member
Links : Onlinestatus : Zine ist offline
Registriert seit: Oct 2005
Ort: Barssel
Beiträge: 143
Zine ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hm, wo siehst du wenig Sinn in meinem Ansatz?
Ich versteh den Query nicht so ganz, denn schliesslich könnte so bei temp_min ja utopische Zahlen rauskommen.

FLOOR(-300 + RAND() * (399 + 300)

-300+Zufallszahl bis 32767 * (399+300)
-300+(zb)10000*699
-300+6990000

Ergebnis: 6989700

Ziel sollte es ja eigt sein, Temperaturen von -300 bis max +400 zu ermitteln.
Mit Zitat antworten
  #6 (permalink)  
Alt 28-10-2006, 13:57
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben auf http://dev.mysql.com/doc/refman/5.0/...functions.html
Returns a random floating-point value v between 0 and 1 inclusive (that is, in the range 0 <= v <= 1.0)
FLOOR(-300 + RAND() * (399 + 300)) ist also z.B.
FLOOR(-300 + 0.5 * (399 + 300)) = FLOOR(49,5) = 49

In der Query habe ich übrigens einige Klammern vergessen, ist mir grad aufgefallen. Aber dein Ansatz ist richtig - sorry, war spät gestern - und du brauchst eine 2. Query. Die erste läßt du nur die temp_min setzen und mit der zweiten dann temp_max in Abhängigkeit von temp_min.

Damit sollte sich dein ursprüngliches Problem erledigt haben oder zumindest einfacher tracken lassen, denn es findet alles in MySQL statt.
Mit Zitat antworten
  #7 (permalink)  
Alt 28-10-2006, 17:14
Zine
 Junior Member
Links : Onlinestatus : Zine ist offline
Registriert seit: Oct 2005
Ort: Barssel
Beiträge: 143
Zine ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Achja.. mal wieder PHP/MYsql verwechselt.. sorry.
Mit den Klammern war mir auch schon aufgefallen, aber ich wollte nicht so altklug wirken.
Erstmal vielen Dank, hilft mir sicherlich weiter.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:31 Uhr.