abonnement Unibet Coolblue
  maandag 5 september 2011 @ 16:23:21 #126
25889 Sitethief
Fulltime Flapdrol
pi_101594677
Heel erg vaag dit

1
2
3
4
5
6
7
8
<?php

SELECT products
.ProductNameproducts.ProductID FROM `productsWHERE products.ProductName LIKE '%la%' ORDER BY products.ProductID ASC LIMIT 5650,5700;
/* 0 rows affected, 5.700 rows found. Duration for 1 query: 42,125 sec. (+ 0,562 sec. network) */
SELECT products.ProductNameproducts.ProductID FROM `productsWHERE products.ProductName LIKE '%la%' ORDER BY products.ProductID ASC LIMIT 5601,5650;
/* 0 rows affected, 5.650 rows found. Duration for 1 query: 0,156 sec. (+ 0,125 sec. network) */

?>
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 5 september 2011 @ 16:35:41 #127
75592 GlowMouse
l'état, c'est moi
pi_101595086
Er wordt een index op ProductID gebruikt he? Hij stopt zodra hij 5700 rijen gevonden heeft met %la%. Hij kan de eerste 5650 heel snel vinden, en de laatste heel langzaam omdat er dan veel rijen zijn die er niet aan voldoen. Doet het maar eens zo, dan zie je het gebeuren:

SET @a:=1;
SELECT @a,products.ProductName, products.ProductID FROM `products` WHERE (@a:=@a+1) AND products.ProductName LIKE '%la%' ORDER BY products.ProductID ASC LIMIT 5650,5700;
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 5 september 2011 @ 16:40:49 #128
25889 Sitethief
Fulltime Flapdrol
pi_101595284
1
2
3
4
5
6
7
<?php

SET 
@a:=1;
 
SELECT @a,products.ProductNameproducts.ProductID FROM `productsWHERE (@a:=@a+1) AND products.ProductName LIKE '%la%' ORDER BY products.ProductID ASC LIMIT 5650,5700;
/* 0 rows affected, 5.700 rows found. Duration for 2 queries: 3,203 sec. (+ 0,016 sec. network) */

?>
Dit gaat mijn MySQL kennis te boven..... :P. Maar hier op de afdeling werd ook al gezegd dat ik eens naar de index moet kijken.... Maar idd, ID is de index. Grappig genoeg sorteerd een query zonder ORDER BY automatisch op de index..... maar ja, ik wil sorteerbare collums in mijn HTML :X
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 5 september 2011 @ 16:43:00 #129
75592 GlowMouse
l'état, c'est moi
pi_101595372
Wel kijken naar wat hij teruggeeft voor @a!
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 5 september 2011 @ 16:49:27 #130
25889 Sitethief
Fulltime Flapdrol
pi_101595602
1.031.768
(precies het aantal records met eentje meer)
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 5 september 2011 @ 16:50:04 #131
75592 GlowMouse
l'état, c'est moi
pi_101595634
Per rij natuurlijk, en dan met de limiet spelen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101625300
Kan iemand mij makkelijk uitleggen hoe ik een array laat loopen met foreach? Het wil niet lukken met gegevens uit de database. -O-
Lekker happen
  dinsdag 6 september 2011 @ 10:45:13 #133
75592 GlowMouse
l'état, c'est moi
pi_101625303
wat is je huidige code?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 september 2011 @ 10:48:01 #134
12221 Tijn
Powered by MS Paint
pi_101625372
quote:
7s.gif Op dinsdag 6 september 2011 10:44 schreef -Datdus- het volgende:
Kan iemand mij makkelijk uitleggen hoe ik een array laat loopen met foreach? Het wil niet lukken met gegevens uit de database. -O-
Kun je een stukje output laten zien van print_r($jouw_array)?

En wil je de inhoud van de array alleen weergeven of wil je de inhoud van de array wijzigen?
pi_101625487
1
2
3
4
5
6
7
8
9
Array
(
    [posts] => Array
        (
            [title] => Dit is een test
            [body] => Body
        )

)

Print_r geeft het bovenstaande terug. Hij haalt op dit moment alleen het eerste item op.

Code:

1
2
3
4
5
6
7
8
9
10
        $sql = mysql_query("SELECT * FROM posts");
        
        $row = mysql_fetch_assoc($sql);
             
        $posts = array('posts' => array('title' => $row['title'], 'body' => $row['body']));
        
        foreach($posts as $post){
            echo $post['title']."<br>";
            echo $post['body'];
        }
Lekker happen
  dinsdag 6 september 2011 @ 11:07:01 #136
91039 mstx
2x1/2 = 1/2 x 1/2
pi_101625880
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

        $sql 
mysql_query("SELECT title, body FROM posts");
        
        
$posts = array();
        while (
$row mysql_fetch_assoc($sql)){
            
$posts[] = $row;
        }

        
        foreach(
$posts as $post){
            echo 
$post['title']."<br>";
            echo 
$post['body'];
        }

?>
Direct in de while{} echo-en kan natuurlijk ook (8>
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_101625976
quote:
0s.gif Op dinsdag 6 september 2011 11:07 schreef mstx het volgende:

[ code verwijderd ]

Het werkt. Ik snap alleen niet wat die while loop doet. :)
Lekker happen
  dinsdag 6 september 2011 @ 11:19:55 #138
25889 Sitethief
Fulltime Flapdrol
pi_101626248
Zolang mysql_fetch_assoc($sql) rows terug geeft, blijft de loop die in $posts stoppen. Zo stop je row voor row in $posts.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101626345
quote:
0s.gif Op dinsdag 6 september 2011 11:19 schreef Sitethief het volgende:
Zolang mysql_fetch_assoc($sql) rows terug geeft, blijft de loop die in $posts stoppen. Zo stop je row voor row in $posts.
Ah, oke ik denk dat ik het snap dankjewel. :)
Lekker happen
pi_101626354
Waarom gebruik je niet de uitleg van php.net?

http://nl.php.net/array
http://nl.php.net/while
http://nl.php.net/foreach

het zou mooier zijn om het zo te doen!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

        
        $sql 
"SELECT title, body FROM posts";
        
$query mysql_query($sql);
        
$items mysql_num_rows($query); 

        for (
$x 0$x $items$x++)
        {
            
$post mysql_fetch_assoc($query);

            echo 
$post['title']."<br>";
            echo 
$post['body'];
        }

?>

http://nl.php.net/for
http://nl.php.net/mysql_num_rows

ps... als je een query opbouwt plaats je die in $sql
als je een query uitvoert noem je die in het algemeen $query (is logischer)
Just say hi!
pi_101626401
quote:
6s.gif Op dinsdag 6 september 2011 11:23 schreef Chandler het volgende:
Waarom gebruik je niet de uitleg van php.net?

http://nl.php.net/array
http://nl.php.net/while
http://nl.php.net/foreach

het zou mooier zijn om het zo te doen!
[ code verwijderd ]

http://nl.php.net/for
http://nl.php.net/mysql_num_rows

ps... als je een query opbouwt plaats je die in $sql
als je een query uitvoert noem je die in het algemeen $query (is logischer)
Dankje. :)
Lekker happen
  dinsdag 6 september 2011 @ 11:28:22 #142
75592 GlowMouse
l'état, c'est moi
pi_101626467
Dat is zeker niet mooier.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101626492
quote:
4s.gif Op dinsdag 6 september 2011 11:28 schreef GlowMouse het volgende:
Dat is zeker niet mooier.
Fijn dat je alles direct zo mooi onderbouwt :P
Just say hi!
  dinsdag 6 september 2011 @ 11:30:15 #144
25889 Sitethief
Fulltime Flapdrol
pi_101626518
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  dinsdag 6 september 2011 @ 11:42:23 #145
4159 GI
Nee ik heet geen JOE
pi_101626859
quote:
4s.gif Op dinsdag 6 september 2011 11:28 schreef GlowMouse het volgende:
Dat is zeker niet mooier.
Het kan wel nuttig zijn in situaties, die ook leesbaarheid van code bevorderd. Maar das niet in deze situatie zo iig.
  dinsdag 6 september 2011 @ 14:35:54 #146
58834 Catbert
The evil HR Director.
pi_101631728
quote:
4s.gif Op dinsdag 6 september 2011 11:28 schreef GlowMouse het volgende:
Dat is zeker niet mooier.
Wel beter. Het is compleet nutteloos om eerst alles in een array te stoppen in een loop, en daarna in een andere loop dit weer te geven. Verspilling van geheugen.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_101631910
quote:
0s.gif Op dinsdag 6 september 2011 14:35 schreef Catbert het volgende:

[..]

Wel beter. Het is compleet nutteloos om eerst alles in een array te stoppen in een loop, en daarna in een andere loop dit weer te geven. Verspilling van geheugen.
Als je het OO programmeert kun je er bijna niet omheen. Je voert eerst een query uit en deze geeft een datatable op en met deze datatable ga je de output opbouwen. Dan ram je dus eerst alle query informatie in een class (mogelijk de class nog in een collectie) en dan ga je er pas mee werken.
  dinsdag 6 september 2011 @ 14:43:18 #148
75592 GlowMouse
l'état, c'est moi
pi_101631982
quote:
0s.gif Op dinsdag 6 september 2011 14:35 schreef Catbert het volgende:

[..]

Wel beter. Het is compleet nutteloos om eerst alles in een array te stoppen in een loop, en daarna in een andere loop dit weer te geven. Verspilling van geheugen.
Als je je code een beetje overzichtelijk opbouwt dan verspil je inderdaad geheugen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 september 2011 @ 14:46:52 #149
58834 Catbert
The evil HR Director.
pi_101632095
quote:
0s.gif Op dinsdag 6 september 2011 14:40 schreef Pakspul het volgende:
Als je het OO programmeert kun je er bijna niet omheen. Je voert eerst een query uit en deze geeft een datatable op en met deze datatable ga je de output opbouwen. Dan ram je dus eerst alle query informatie in een class (mogelijk de class nog in een collectie) en dan ga je er pas mee werken.
Dan nog hoef je helemaal niet perse eerst alle classes op te bouwen en ze daarna te gebruiken, dat kun je prima per row doen. Als het kleine sets data zijn is het zeker geen issue, maar bij grote recordsets wel, dan wil je die echt niet eerst allemaal in 't geheugen opbouwen.

quote:
0s.gif Op dinsdag 6 september 2011 14:43 schreef GlowMouse het volgende:
Als je je code een beetje overzichtelijk opbouwt dan verspil je inderdaad geheugen.
Wat bedoel je? Stel elke row is een kb aan data, en je hebt 1000 rows. Het maakt nogal uit of je script 1MB aan geheugen moet alloceren of max 1kb. Vergeet niet dat je zo 100 requests tegelijkertijd af te handelen kunt hebben.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_101632100
quote:
0s.gif Op dinsdag 6 september 2011 14:43 schreef GlowMouse het volgende:

[..]

Als je je code een beetje overzichtelijk opbouwt dan verspil je inderdaad geheugen.
Daar ben ik het dus niet geheel mee eens! juist door overzichtelijk te scripten (programmeren wil ik het niet noemen...) kun je juist geheugen besparen doordat je sneller je 'foutjes' ziet.

Maar goed, mijn voorbeeld is goed genoeg maar dat vind jij niet... dus vertel eens waarom? kritiek geven ok!? maar dan ook graag uitleg waarom en hoe jij het zou doen!
Just say hi!
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')