Forum » Server-Side scripting » Beter of niet
Berichten: 866
avatar
Offline Stuur privebericht
Wat is beter zes Querys of een while loop waarin zes Querys worden geprint?
12-06-2011 19:20
Dit topic is 220 keer bekeken door 48 verschillende leden
Reacties op: "Beter of niet"
1
thexeroxprojects.be
Berichten: 352
avatar
Offline Stuur privébericht
Dat lijkt me net het zelfde hoe je het uitlegt.
12-06-2011 19:27
Berichten: 866
avatar
Offline Stuur privébericht
Ik bedoel

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
$mysqli->query("UPDATE `bla` WHERE `tab`='1'");
$mysqli->query("UPDATE `bla` WHERE `tab`='2'");
$mysqli->query("UPDATE `bla` WHERE `tab`='3'");
$mysqli->query("UPDATE `bla` WHERE `tab`='4'");
$mysqli->query("UPDATE `bla` WHERE `tab`='5'");
$mysqli->query("UPDATE `bla` WHERE `tab`='6'");


of met een for (foutje niet met while)
12-06-2011 19:29
De causeur!
Berichten: 504
avatar
Offline Stuur privébericht
Code | Selecteer Alles
minimaliseren
1
$mysqli->query("UPDATE `bla` WHERE (`tab`> 0 OR `tab`< 6)");
12-06-2011 19:41
Berichten: 866
avatar
Offline Stuur privébericht
Nee ze moeten apart, want ze moeten verschillen updaten het is of 6 querys of een for loop
12-06-2011 19:53
Berichten: 637
avatar
Offline Stuur privébericht
@Malik
Je kan met mysqli meerdere query's tegelijk uitvoeren:

Code | Selecteer Alles
minimaliseren
1
$mysqli->multi_query("INSERT INTO gegevens (naam, email) VALUES ('Piet', 'piet@example.com'); UPDATE inserts SET last_insert = NOW() WHERE naam = 'Piet'");
12-06-2011 21:09
Rapifia Europe
Berichten: 3716
avatar
Offline Stuur privébericht
@Bever,
Dat maakt alsnog niet uit volgens mij.
Met of zonder loop maakt ook niets uit. Een loop doet namelijk precies hetzelfde, het scheelt je alleen code. Dus ik raad het je met een loop aan om zo min mogelijk code te behouden .
12-06-2011 22:38
Informatica Student
Berichten: 1406
avatar
Online Stuur privébericht
Als ik me niet vergis maakt het wel uit.
Het is misschien minder code met een loop, maar deze maakt dus wel vaker connectie met de database ipv. één keer contact op te nemen met de database.
12-06-2011 22:39
Berichten: 637
avatar
Offline Stuur privébericht
En een loop kost ook meer load. Maar Volgens mij is het beter een multi_query te nemen i.v.m. load. En het scheelt je nog eens code. In een loop zou ik zoizo niet doen.
12-06-2011 23:22
Berichten: 2123
avatar
Offline Stuur privébericht
Een while-loop heeft als enige voordeel dat je code een beetje overzichtelijk blijft. Maar hoe dan ook, dit hoort in één query, anders is je database niet echt geoptimaliseerd...

Eén query en dan je data scheiden is veel sneller, iedere query die je aanroept in je PHP-code kost gewoon tijd, en data binnen PHP scheiden/verwerken is meestal zo snel dat de performance verwaarloosbaar is.
13-06-2011 02:20
Berichten: 866
avatar
Offline Stuur privébericht
Ik zal de multi_query van Bever gebruiken, lijkt me stukken beter dan een for.


Maar ik heb een vraagje? als je soms 3-4 querys moet uitvoeren, allemaal verschillend? is het dan aangeraden om multi_query te gebruiken?

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
if ($core['land'] == "1") { $gev_1 == "5"; } else { $gev_1 == "0" }
                        if (
$core['land'] == "2") { $gev_2 == "5"; } else { $gev_2 == "0" }
                        if (
$core['land'] == "3") { $gev_3 == "5"; } else { $gev_3 == "0" }
                        if (
$core['land'] == "4") { $gev_4 == "5"; } else { $gev_4 == "0" }
                        if (
$core['land'] == "5") { $gev_5 == "5"; } else { $gev_5 == "0" }
                        if (
$core['land'] == "6") { $gev_6 == "5"; } else { $gev_6 == "0" }
                        if (
$core['land'] == "7") { $gev_7 == "5"; } else { $gev_7 == "0" }
                        
                        
$mysqli->multi_query("INSERT INTO `detective` (`gebruiker`, `slachtoffer`, `tijd`, `land`, `sec`, `vind`) VALUES ('".$fetch['login']."', '".$naam."', '".time()."', '1', '1800', '".$gev_1."'); INSERT INTO `detective` (`gebruiker`, `slachtoffer`, `tijd`, `land`, `sec`, `vind`) VALUES ('".$fetch['login']."', '".$naam."', '".time()."', '2', '1800', '".$gev_2."');INSERT INTO `detective` (`gebruiker`, `slachtoffer`, `tijd`, `land`, `sec`, `vind`) VALUES ('".$fetch['login']."', '".$naam."', '".time()."', '3', '1800', '".$gev_3."');INSERT INTO `detective` (`gebruiker`, `slachtoffer`, `tijd`, `land`, `sec`, `vind`) VALUES ('".$fetch['login']."', '".$naam."', '".time()."', '4', '1800', '".$gev_4."');INSERT INTO `detective` (`gebruiker`, `slachtoffer`, `tijd`, `land`, `sec`, `vind`) VALUES ('".$fetch['login']."', '".$naam."', '".time()."', '5', '1800', '".$gev_5."');INSERT INTO `detective` (`gebruiker`, `slachtoffer`, `tijd`, `land`, `sec`, `vind`) VALUES ('".$fetch['login']."', '".$naam."', '".time()."', '6', '1800', '".$gev_3."');INSERT INTO `detective` (`gebruiker`, `slachtoffer`, `tijd`, `land`, `sec`, `vind`) VALUES ('".$fetch['login']."', '".$naam."', '".time()."', '7', '1800', '".$gev_7."');");


Is dit wel netjes?
13-06-2011 09:14
Reageer op: "Beter of niet"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden