2 rijen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tim Groot

Tim Groot

09/08/2006 20:15:00
Quote Anchor link
vraagje,

Ik heb een while lus,
Nu wil ik dat die lus alles uit de database haalt, maar dan niet zoals normaal in 1 lange rijen onder elkaar, maar dat de lus 2 rijen maakt.
Het zijn visite kaartjes, die nu in 1 lange rijen vanuit de database gehaald worden maar dit zou ik dus graag in 2 rijen willen hebben (wel dezelfde lus)

heeft iemand een idee?
 
PHP hulp

PHP hulp

22/12/2024 07:58:32
 
Jelle -

Jelle -

09/08/2006 20:17:00
Quote Anchor link
Eerst hebben we iets meer informatie nodig.
Hoe wil je het hebben ingedeelt?

vb 1:
1 | 2
3 | 4
5 | 6

vb 2:
1 | 4
2 | 5
3 | 6
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
 
Tim Groot

Tim Groot

09/08/2006 20:18:00
Quote Anchor link
ok ;)
zoals voorbeeld 1
 
Jelle -

Jelle -

09/08/2006 20:31:00
Quote Anchor link
Oke,

Een voorbeeldje met punten waar je op moet letten (niet getest)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

// De query
$Query = mysql_query("SELECT id, ....");
// Je moet weten hoe veel het er zijn
$aantal = mysql_num_rows($Query);
// Tellertje die bijhoud hoever je bent
$teller = 1;

// Kijken of er wel resultaten gevonden zijn
if($aantal > 0)
{

  // Beginnen
  echo "<table>";
  echo "<tr>";

  // Alle gevonden dingetjes afgaan
  while($Aiets = mysql_fetch_assoc($Query))
  {

    // Weergeven
    echo "<td>".$Aiets['id']."</td>";

    // Als dit de laatste was en het getal is oneven, dan nog een td zette
    if($teller == $aantal && ($teller & 2) != 2)
      echo  "<td>&nbsp;</td></tr>";
    // Anders als dit de laast is maar de teller is even
    elseif($teller == $aantal && ($teller & 2) == 2)
      echo "</tr>";
    // Anders als de teller even is (maar dit was niet de laaste) dan een nieuwe rij beginnen
    elseif(($teller & 2) == 2)
      echo "</tr><tr>";

    // Teller bijwerken
    $teller++;
  }


  // Einde tabelletje
  echo "</table>";
}

// anders zeggen dat je niets hebt gevonden
else
  echo "nix";

?>


Ik denk dat dit moet werken, heb het uit de losse pols geschreven dus niet getest en kan een foutje bevatten.

Maar ik denk dat het idee je wel duidelijk is :-)
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
 
Tim Groot

Tim Groot

09/08/2006 20:34:00
Quote Anchor link
ok ik begrijp het idee,

ik ga eens kijken wat ik er mee kan,

bedankt ;)
 
Jelle -

Jelle -

09/08/2006 20:38:00
Quote Anchor link
laat maar wete of het is gelukt :-)
 
Tim Groot

Tim Groot

09/08/2006 20:38:00
Quote Anchor link
;) ga ik zeker doen
 
Jan Koehoorn

Jan Koehoorn

09/08/2006 21:00:00
Quote Anchor link
Hier staat ook nog een werkend voorbeeld
 
Jelle -

Jelle -

10/08/2006 01:27:00
Quote Anchor link
@ Tim

Die van Jan is beter uitgewerkt. De moeite waard om door te nemen.
 
Tim Groot

Tim Groot

10/08/2006 10:27:00
Quote Anchor link
ok, na een nachtje goed slapen ga ik weer rustig naar kijken, gister avond zag ik het niet zo helder meer;)
 
Tim Groot

Tim Groot

10/08/2006 11:03:00
Quote Anchor link
ok, ik heb die van Jan gebruikt. nu heb ik het voor elkaar dat hij sowieso 2 rijen maakt.

http://www.f1pitbabe.nl/siteby/2rijen.php

Maar hij geeft elke keer 1 lege <td> er tussen.

Vaag maar waar

En niet onderin maar er tussen.

code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
    require_once ("config.php");

    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $num_cols = $_POST['num_cols'];
        $limit = $_POST['limit'];
    }

    else {
        $num_cols = 2;
        $limit = 0;
    }


?>




        
        <h3>Voorbeeld:</h3>
        <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

            <p>
            <span class="label"><label for="num_cols">aantal kolommen:</label></span>
            <select id="num_cols" name="num_cols" class="small">
                <option value="2" <?php if ($num_cols == 2) echo 'selected';?>>2</option>
                <option value="5" <?php if ($num_cols == 5) echo 'selected';?>>5</option>
                <option value="7" <?php if ($num_cols == 7) echo 'selected';?>>7</option>
                <option value="9" <?php if ($num_cols == 9) echo 'selected';?>>9</option>
            </select>
            per rij
            </p>
            
            <p>
            <span class="label"><label for="limit">max aantal records:</label></span>
            <select id="limit" name="limit" class="small">
                <option value="0" <?php if ($limit == 0) echo 'selected';?>>geen limiet</option>
                <option value="25" <?php if ($limit == 25) echo 'selected';?>>25</option>
                <option value="50" <?php if ($limit == 50) echo 'selected';?>>50</option>
                <option value="100" <?php if ($limit == 100) echo 'selected';?>>100</option>
                <option value="200" <?php if ($limit == 200) echo 'selected';?>>200</option>
            </select>
            </p>
            
            <p><input id="go" name="go" type="submit" value="go!"></p>
        </form>
        <?php        
            if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                $sql = "SELECT * FROM Leden WHERE achternaam LIKE '".$letter."%'";
        
                if (!empty ($limit)) {
                    $sql .= "LIMIT $limit";
                }

                
                $res = mysql_query ($sql) or die ("sql: " . $sql . "\n". mysql_error ());
                $num_records = mysql_num_rows ($res);
                
                if ($num_records % $num_cols) {
                    $num_empty_cells = $num_cols - ($num_records % $num_cols);
                }

                else {
                    $num_empty_cells = 0;
                }

                
                $cell_width = round (100 / $num_cols, 0);
                $i = 0;
                
                echo '<table width="100%">';
                
                while ($obj = mysql_fetch_object ($res)) {
                    echo "\n";
                    if ($i % $num_cols == 0) {
                        echo '<tr>';
                    }

                    
                    echo '<td width="' . $cell_width . '%">' . $obj->voornaam . ' '.$obj->tussenvoegsel.' '.$obj->achternaam. '</td>';
        
                    if (($i % $num_cols) == ($num_cols - 1)) {
                        echo '</tr>';
                    }

                    
                    $i++;
                }

                
                if ($num_empty_cells) {
                    for ($i = 0; $i < $num_empty_cells; $i++) {
                        echo '<td>&nbsp;</td>';
                    }

    
                    echo '</tr>';
                }

                echo '</table>';
            }

        ?>

    
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Tim Groot
 
Tim Groot

Tim Groot

11/08/2006 18:12:00
Quote Anchor link
*foutje*
Gewijzigd op 01/01/1970 01:00:00 door Tim Groot
 
Jelle -

Jelle -

11/08/2006 18:12:00
Quote Anchor link
Probeer het anders gewoon zo, ik zag dat ik in me vorige (eerdere post) een fout had gezet. Hieronder is die verholpen. Dit moet werken.

Succes!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php

// De query
$Query = mysql_query("SELECT id, ....");
// Je moet weten hoe veel het er zijn
$aantal = mysql_num_rows($Query);
// Tellertje die bijhoud hoever je bent
$teller = 1;

// Kijken of er wel resultaten gevonden zijn
if($aantal > 0)
{

  // Beginnen
  echo "<table>";
  echo "<tr>";

  // Alle gevonden dingetjes afgaan
  while($Aiets = mysql_fetch_assoc($Query))
  {

    // Weergeven
    echo "<td>".$Aiets['id']."</td>";

    // Als dit de laatste was en het getal is oneven, dan nog een td zette
    if($teller == $aantal && ($teller & 1) == 1)
      echo  "<td>&nbsp;</td></tr>";
    // Anders als dit de laast is maar de teller is even
    elseif($teller == $aantal && ($teller & 1) != 1)
      echo "</tr>";
    // Anders als de teller even is (maar dit was niet de laaste) dan een nieuwe rij beginnen
    elseif(($teller & 1) != 1)
      echo "</tr><tr>";

    // Teller bijwerken
    $teller++;
  }


  // Einde tabelletje
  echo "</table>";
}

// anders zeggen dat je niets hebt gevonden
else
  echo "nix";

?>


Wat had ik fout?
om te kijken of het een oneven getal is had ik dit:
($teller & 2) != 2
maar dat moest zijn:
($teller & 1) == 1
 
Tim Groot

Tim Groot

11/08/2006 18:20:00
Quote Anchor link
Ok, nu gaat het zeker lukken:D

Thanx man ;)

Edit: Die ene lege tabel was een fout in de database kwam ik nu achter.
Ben blij dat het nu werkt
Gewijzigd op 01/01/1970 01:00:00 door Tim Groot
 
Web razor

Web razor

27/10/2010 13:52:30
Quote Anchor link
Hallo,

Ik ben ook opzoek naar een contructie zoals dit maar dan niet op deze manier:

1 | 2
3 | 4
5 | 6

Maar ik ben opzoek naar het volgende:

1 | 4
2 | 5
3 | 6

Ik heb al geprobeerd om met een limit te werken eerst bijvoorbeeld 0, 25 en daarna een aparte query met 25, 50 en dan in een while loop maar dat gaat niet helemaal goed.
 
- SanThe -

- SanThe -

27/10/2010 15:00:04
Quote Anchor link
Misschien hier wat aan?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.