php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.05.2005, 09:00  
Erfahrener Benutzer
 
Registriert seit: 22.03.2005
Beiträge: 355
faux
faux eine Nachricht über ICQ schicken faux eine Nachricht über AIM schicken faux eine Nachricht über MSN schicken faux eine Nachricht über Yahoo! schicken
Standard Mehrere Abfragen oder eine große durchlaufen

Hallo!

Ich hab grad bemerkt, dass ich über längere Zeit etwas umständlich Programmiert habe.

Ich hab eine Tabelle, in der das Feld `field` pro `owner` von 0 bis 4 durchläuft:

Code:
         X       X
+----+-------+-------+------+------+------+------+------+
| id | OWNER | FIELD | res0 | res1 | res2 | res3 | res4 |
+----+-------+-------+------+------+------+------+------+
|  1 |     1 |     0 |   11 |    0 |    0 |    0 |    0 | <- Von hier...
|  2 |     1 |     1 |    0 |    0 |    0 |    0 |    0 |
|  3 |     1 |     2 |    0 |    0 |    0 |    0 |    0 |
|  4 |     1 |     3 |    0 |    0 |    0 |    0 |    0 |
|  5 |     1 |     4 |    0 |    0 |    0 |    0 |    0 | <- ...bis hier ist owner 1
|  6 |     2 |     0 |   11 |    0 |    0 |    0 |    0 |
|  7 |     2 |     1 |    0 |    0 |    0 |    0 |    0 |
|  8 |     2 |     2 |    0 |    0 |    0 |    0 |    0 |
|  9 |     2 |     3 |    0 |    0 |    0 |    0 |    0 |
| 10 |     2 |     4 |    0 |    0 |    0 |    0 |    0 |
| 11 |     3 |     0 |   11 |    0 |    0 |    0 |    0 |
| 12 |     3 |     1 |    0 |    0 |    0 |    0 |    0 |
| 13 |     3 |     2 |    0 |    0 |    0 |    0 |    0 |
| 14 |     3 |     3 |    0 |    0 |    0 |    0 |    0 |
| 15 |     3 |     4 |    0 |    0 |    0 |    0 |    0 |
| 16 |     5 |     0 |   11 |    0 |    0 |    0 |    0 |
| 17 |     5 |     1 |    0 |    0 |    0 |    0 |    0 |
| 18 |     5 |     2 |    0 |    0 |    0 |    0 |    0 |
| 19 |     5 |     3 |    0 |    0 |    0 |    0 |    0 |
| 20 |     5 |     4 |    0 |    0 |    0 |    0 |    0 |
| 21 |     6 |     0 |   11 |    0 |    0 |    0 |    0 |
| 22 |     6 |     1 |    0 |    0 |    0 |    0 |    0 |
| 23 |     6 |     2 |    0 |    0 |    0 |    0 |    0 |
| 24 |     6 |     3 |    0 |    0 |    0 |    0 |    0 |
| 25 |     6 |     4 |    0 |    0 |    0 |    0 |    0 |
| 26 |     7 |     0 |   11 |    0 |    0 |    0 |    0 |
| 27 |     7 |     1 |    0 |    0 |    0 |    0 |    0 |
| 28 |     7 |     2 |    0 |    0 |    0 |    0 |    0 |
| 29 |     7 |     3 |    0 |    0 |    0 |    0 |    0 |
| 30 |     7 |     4 |    0 |    0 |    0 |    0 |    0 |
+----+-------+-------+------+------+------+------+------+
Jedenfalls will ich in einen Array alle Zeilen eines Owners schreiben.
Sol also:
Array[$feld][$res]
Also im $feld stehen Werte von 0 bis 4 und im $res Stehen auch Werte von 0 bis 4 (siehe Feld `res0` - `res4`). Ja klar, oder?

Jeder würde das so machen:

PHP-Code:
<?php
$query 
"SELECT `res0`, `res1`, `res2`, `res3`, `res4` FROM `astros` WHERE `owner`=$_SESSION[id]"#ev. noch mit LIMIT 5
$result mysql_query($query);
for (
$i=0;$i<=5;$i++) {
  
$data mysql_fetch_array($resultMYSQL_NUM);
  for (
$j=0;$j<=5;$j++)
    Array[
$i][$j] = $data[$j];
}
?>
ich aber, habe das aus "versehen" (war schon sehr müde... ) so gemacht:

PHP-Code:
<?php
for ($i=0;$i<=5;$i++) {
  
$query "SELECT `res0`, `res1`, `res2`, `res3`, `res4` FROM `astros` WHERE `owner`=$_SESSION[id] AND `field`=$i LIMIT 1";
  
$result mysql_query($query);
  
$data mysql_fetch_array($resultMYSQL_NUM);

  for (
$j=0;$j<=5;$j++)

    Array[
$i][$j] = $data[$j];
}
?>
Ist das schlimm, oder bleibt sich das gleich, ob man für jedes `field` jetzt eine neue Abfrage macht, oder eine Abfrage und dann diese nach einander durchläuft?

In meinem Fall ist es etwas komplizierter als hier, also ich würde es nur umändern, wenn es wirklich Nachteile hat (ist in mehreren Dateien).

Danke schon mal.
__________________
Wer weiß dass er nichts weiß, weiß mehr, als der der nicht weiß dass er nichts weiß.
www.e-faux.com
faux ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.05.2005, 10:12  
Gast
 
Beiträge: n/a
Standard

warum nicht so, oder so ähnlich:
PHP-Code:
<?php
$query 
"SELECT `res0`, `res1`, `res2`, `res3`, `res4` FROM `astros` WHERE `owner`=$_SESSION[id]"#ev. noch mit LIMIT 5

$result mysql_query($query);

while {
$data mysql_fetch_assoc($result)
{
    
$array[] = array($data['res0'],$data['res1'],$data['res2'],$data['res3'],$data['res4']);
}

print 
'<pre>';
print_r($array);
print 
'</pre>';
?>
mfG ~dilemma~
  Mit Zitat antworten
Alt 28.05.2005, 12:11  
Erfahrener Benutzer
 
Registriert seit: 22.03.2005
Beiträge: 355
faux
faux eine Nachricht über ICQ schicken faux eine Nachricht über AIM schicken faux eine Nachricht über MSN schicken faux eine Nachricht über Yahoo! schicken
Standard

Weil ich unbedacht das 2. Beispiel verwendet habe.
Ich wollte nur wissen, ob das große Leistungseinbussen sind...
__________________
Wer weiß dass er nichts weiß, weiß mehr, als der der nicht weiß dass er nichts weiß.
www.e-faux.com
faux ist offline   Mit Zitat antworten
Alt 28.05.2005, 12:19  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.818
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von faux
Weil ich unbedacht das 2. Beispiel verwendet habe.
Ich wollte nur wissen, ob das große Leistungseinbussen sind...
ja, denn eigentlich tust du mit beiden abfragen der datenbank weh.... mit zweiterem beispiel noch mehr als mit ersterem beispiel.

http://de.wikipedia.org/wiki/Normali...28Datenbank%29
axo ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PDO und parallele Abfragen Normalo PHP Tipps 2008 1 09.06.2008 12:39
PHP bzw. mysql abfragen optimieren Kori Datenbanken 3 26.09.2007 21:02
Array auf NULL abfragen LP PHP Tipps 2006 3 10.10.2006 15:39
nicht-numerisches-array durchlaufen und dabei auf nächstes.. Crypi PHP Tipps 2006 7 16.08.2006 08:38
mehrere Abfragen (Selects) verbinden???? CIMM Datenbanken 15 03.05.2006 18:59
Datentyp abfragen PHP Tipps 2006 7 24.02.2006 15:53
[Erledigt] 204 077 15-4 in DB mit WHERE als 204077154 abfragen Datenbanken 6 24.01.2006 11:47
javascript: alle id's abfragen HTML, Usability und Barrierefreiheit 2 24.10.2005 16:45
Suche Script zum Abfragen von Inhalten einer anderen Seite Beitragsarchiv 7 26.09.2005 19:21
[Erledigt] Dateiendung abfragen PHP Tipps 2005-2 6 18.08.2005 17:11
while Schleife nur 5 mal durchlaufen lassen MatthiasNI PHP Tipps 2005-2 5 30.07.2005 11:21
Frames abfragen PHP Tipps 2005-2 9 21.06.2005 14:52
2 Forschleifen durchlaufen PHP Tipps 2005 8 19.01.2005 11:20
Zeitraum durchlaufen und für jeden tag eine aktion Crypi PHP Tipps 2004-2 2 02.12.2004 11:05
Abfragen schedulen? MortakArtos Datenbanken 2 29.11.2004 08:18

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
große oder mehrere abfragen, php mehr durchlaufen, php große abfragen, php große datenbanken abfragen, große datenbanken durchlaufen php

Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.