abonnement Unibet Coolblue Bitvavo
pi_27119156
Bweuh, even duf van het leren voor m'n examens. Tijd voor wat ontspanning

Als ik de volgende query heb:

1
2
3
4
5
6
7
8
9
10
SELECT
    id
FROM
    table
WHERE
    col1 = (waarde)
ORDER BY
    col2 ASC,
    col3 ASC,
    col4 ASC


Klopt het dan dat als ik één index maak op col1,col2,col3,col4 (in die volgorde dus) dat MySQL de bovenstaande query kan optimaliseren door gebruik te maken van de index?
pi_27119794
Dat lijkt me van wel. Of MySQL het ook echt doet kan je met EXPLAIN zien.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_27121008
ff een snel vraagje... wat is he tverschil tussen:
1if($_GET['actie'] == "kaart_titel" || $_GET['actie'] == "kaart_code")

en
1if($_GET['actie'] == "kaart_titel" OR $_GET['actie'] == "kaart_code")


dus het verschil tussen or en ||
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_27121311
Voor zover ik weet zijn ze exact hetzelfde, de PHP manual geeft nog aan dat er een verschil in precedence (voorrang) zit:

http://nl2.php.net/operators
pi_27139322
ok, maakt niet uit dus, hmmzzz in welk geval zou het verschil merkbaar zijn?
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_27139608
quote:
Op donderdag 19 mei 2005 08:08 schreef markiemark het volgende:
ok, maakt niet uit dus, hmmzzz in welk geval zou het verschil merkbaar zijn?
hmm: http://www.webhobbit.nl/reports/reports/fok701079/
pi_27139659
1
2
$a = true && false or true;
$b = true and false || true;

$a is true, $b is false
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  donderdag 19 mei 2005 @ 10:20:20 #83
90061 coz
laat een bericht achter na de
pi_27141982
cool topic ... ik ben een beetje de oude delen doorgelopen maar kon het zo snel niet vinden

wat ik wel vond, [zeurmode]

[PHP/(My)SQL] voor dummies - Deel 6
quote:
Dat klopt. Alleen als een artiestnaam begint met 01 t/m 09 zou het in dat geval te filteren zijn. Er is geen bandnaam die met die tekens begint.
en de band !!! dan ?

[serieus]

is er al ergens een stukje geschreven over makkelijk een generieke en opmaakbare table zuigen uit een database ?

als ik bij de php site kijk dan kom ik niet verder als een onopgemaakte table
vind ik net dit stukje nog niet getest

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$link = mysql_connect("localhost", "nobody");
mysql_select_db("mybd", $link);
$qry = mysql_query("SELECT * FROM agenda", $link);

?><table border="1" width="100%"><tr><?php

if (mysql_num_rows($qry) > 0) {
   for ($i = 0; $i<mysql_num_fields($qry); $i++) {
           echo "<td align=center><strong>" . mysql_field_name($qry, $i) . "</td>";
   }
}

?></tr><?php

if (mysql_num_rows($qry) > 0) {
   for ($j = 0; $j<mysql_num_rows($qry); $j++) {

       ?><tr><?php

       for ($k = 0; $k<mysql_num_fields($qry); $k++) {
           echo "<td align=center>" . mysql_result($qry,$j, $k) . "</td>";
       }

       ?></tr><?php

   }
}

?>


[ Bericht 2% gewijzigd door coz op 19-05-2005 20:10:49 ]
Leesen verrry carefully, I weel zay zis only once
Ill quit thinking w my dick when u quit fucking with my head
pi_27143091
Ik heb een database class die een tabel (array van arrays) terug kan geven. Zo'n tabel kan je dan makkelijk omzetetn naar html. Een simpel voorbeeld:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function TableToHtml($rows) {
   $numRows = count($rows);
   if ($numRows == 0) {
      $html = 'Empty table';
   } else {
      $html = '<table>';
      $html .= '<tr>';
      foreach (array_keys($rows[0]) as $key) {
         $html .= '<th>'. htmlEntities($key) .'</th>';
      }
      $html .= '</tr>';
      for ($i = 0; $i < $numRows; $i++) {
         $html .= '<tr>';
         foreach ($rows[$i] as $item) {
            $html .= '<td>'. htmlEntities($item) .'</td>';
         }
         $html .= '</tr>';
      }
      $html .= '</table>';
   }
   return $html;
}

$db = new Database();
$sql = "SELECT ProductID, ProductName FROM Products";
$products = $db->execTable($sql);
echo TableToHtml($products);


De functie TableToHtml zou je nog wat kunnen uitbreiden zodat je bijvoorbeeld een array met headers op kan geven.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  donderdag 19 mei 2005 @ 10:54:05 #85
90061 coz
laat een bericht achter na de
pi_27143150
ik ga vanavond wel hobbyen
Tnx
Leesen verrry carefully, I weel zay zis only once
Ill quit thinking w my dick when u quit fucking with my head
pi_27143229
quote:
Op donderdag 19 mei 2005 10:52 schreef SuperRembo het volgende:
Ik heb een database class die een tabel (array van arrays) terug kan geven. Zo'n tabel kan je dan makkelijk omzetetn naar html. Een simpel voorbeeld:
[ code verwijderd ]

De functie TableToHtml zou je nog wat kunnen uitbreiden zodat je bijvoorbeeld een array met headers op kan geven.
better to use while(list($key,$value) = each($array)) in deze situaties.
pi_27143525
Roonaan, waarom dat? Het verbetert de leesbaarheid niet echt én je hebt een extra variabele en als het om optimalisatie gaat had je natuurlijk ook $i++ kunnen noemen, dat moet natuurlijk ++$i worden vanwege de temporary variable die er nu in zit
pi_27143703
quote:
Op donderdag 19 mei 2005 11:05 schreef JeRa het volgende:
Roonaan, waarom dat? Het verbetert de leesbaarheid niet echt én je hebt een extra variabele en als het om optimalisatie gaat had je natuurlijk ook $i++ kunnen noemen, dat moet natuurlijk ++$i worden vanwege de temporary variable die er nu in zit
Omdat foreach een kopie maakt van de array voordat deze gaat loopen, en dat een enorme aanslag op je geheugengebruik kan gaan worden als je met data-tabellen aan de gang gaat.
pi_27143796
quote:
Op donderdag 19 mei 2005 11:11 schreef Roönaän het volgende:

[..]

Omdat foreach een kopie maakt van de array voordat deze gaat loopen, en dat een enorme aanslag op je geheugengebruik kan gaan worden als je met data-tabellen aan de gang gaat.
Is er eigenlijk een reden waarom foreach zoiets doet?

edit: aan de source van de Zend engine te zien wordt er áltijd een kopie gemaakt van de array of het object waar foreach op toegepast wordt, zonder te kijken of de array of het object daadwerkelijk binnen het block wordt benaderd. Er zal wel structureel iets verkeerd zitten waarom ze zoiets nog niet hebben aangepast.

[ Bericht 25% gewijzigd door JeRa op 19-05-2005 11:44:19 ]
pi_27145059
Hmmm, dat wist ik niet. Het scheel al snel erg veel

Getest met een tabel van 500 rows, 100 coll, elke cell een string van 100 chars:
While time: 0.75952410697937 s
Foreach time: 13.919291973114 s
While time: 0.0003209114074707 s
Foreach time: 14.71986413002 s
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_27146355
quote:
Op donderdag 19 mei 2005 11:13 schreef JeRa het volgende:

[..]

Is er eigenlijk een reden waarom foreach zoiets doet?

edit: aan de source van de Zend engine te zien wordt er áltijd een kopie gemaakt van de array of het object waar foreach op toegepast wordt, zonder te kijken of de array of het object daadwerkelijk binnen het block wordt benaderd. Er zal wel structureel iets verkeerd zitten waarom ze zoiets nog niet hebben aangepast.
Zover ik weet is het een ontwerp keuze.
pi_27151322
hmm ik vond die foreach altijd erg handig maar als ik dit zo zie....
  donderdag 19 mei 2005 @ 15:11:17 #93
32768 DionysuZ
Respect my authority!
pi_27152225
quote:
Op donderdag 19 mei 2005 11:54 schreef SuperRembo het volgende:
Hmmm, dat wist ik niet. Het scheel al snel erg veel

Getest met een tabel van 500 rows, 100 coll, elke cell een string van 100 chars:
While time: 0.75952410697937 s
Foreach time: 13.919291973114 s
While time: 0.0003209114074707 s
Foreach time: 14.71986413002 s
ik vond foreach altijd handig en lekker beknopt. Maar als ik dit zo zie word ik alles behalve vrolijk.
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_27152495
quote:
Op donderdag 19 mei 2005 14:47 schreef ikke_ook het volgende:
hmm ik vond die foreach altijd erg handig maar als ik dit zo zie....
ach. op kleine datasets heb je misschien een honderste milliseconde verschil. lekker boeien dan.
pi_27152521
Bovenstaande foreach-optimalisatie werkt dus alleen zoals foreach als je in de loop geen aanpassingen doet aan de array (items verwijderen of toevoegen).
pi_27152571
quote:
Op donderdag 19 mei 2005 15:18 schreef Roönaän het volgende:

[..]

ach. op kleine datasets heb je misschien een honderste milliseconde verschil. lekker boeien dan.
Die tweede benchmark geeft maar een verschil van een factor 50.000, daar doen we het niet voor he
pi_27155323
quote:
Op donderdag 19 mei 2005 15:20 schreef JeRa het volgende:

[..]

Die tweede benchmark geeft maar een verschil van een factor 50.000, daar doen we het niet voor he
Dat komt omdat ik vermoed dat superrembo vergeten is om de internal array pointer te resetten met reset($array);

-r-
pi_27162053
Een tweede pitfall waar je dus rekening mee moet houden

Ff weer een vraagje over indices in MySQL. Stel, ik heb de volgende query:

SELECT * FROM table WHERE col1 = waarde AND col2 = waarde2 ORDER BY col3 ASC, col4 ASC

In deze query wil ik soms col3 en col4 kunnen omdraaien (om in mijn toepassing op verschillende kolommen te kunnen sorteren). Hoe kan ik dan het beste mijn indices samenstellen?
pi_27162511
Is het noodzakelijk om er indices op te zetten? Is het aantal selects zo hoog?
pi_27162740
waarom zou je er geen indices op willen zetten dan?Je kunt toch best op meerdere kolommen indices zetten?Ik dacht juist dat t goed was omdat te doen (als je er vaak op sorteerde oid)
(ik snap wel dat t een beetje meer ruimte kost maar toch niet zoveel?}
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')