Hallo,

voorbeeldje ingekorte table:

+----+--------------+
| id | datum --- |
+----+--------------+
| 1 | 2015-02-05 --|
| 2 | 2015-02-10-- |
| 3 | 2015-02-10 --|
| 4 | 2015-02-12 --|
+----+--------------+

Dit geeft in een rij:

2015-02-05
----------------
2015-02-10
-----------------
2015-02-10
--------------------
2015-02-12
--------------------


Is het mogelijk het op deze manier te verkrijgen, zodat alles met datum 2015-02-10 in een rij komt?

2015-02-05
----------------
2015-02-10
2015-02-10

--------------------
2015-02-12
--------------------
Ik neem aan dat je een scripttaal gebruikt om e.e.a. af te drukken?

Dit kun je doen door bij te houden wat de datum van het huidige record is. Indien de volgende datum verschilt, start je eerst een nieuwe rij en sla je deze nieuwe datum op.
Bedankt voor reactie

PHP Mysqli

Heb je een voorbeeldje ?
Je bedoelt denk ik dat je het in één rij wilt zetten als zowel id als datum hetzelfde zijn?

<?php

$lastId = -1;
$lastDate = '';

while($row = mysqli_fetch_assoc($result))
{
if($lastId != $row['id'] || $lastDate != $row['datum'])
{
$lastId = $row['id'];
$lastDate = $row['datum'];

// er begint een nieuwe id en/of datum
} else {
// nog steeds dezelfde id en datum
}
}

?>
In het oorspronkelijke voorbeeld staan al verschillende id's, dus ik denk dat deze buiten beschouwing gelaten kunnen worden. Als ik het voorbeeld van de topicstarter exact volg, wil deze initieel (nog voordat er gegevens worden afgedrukt) geen nieuwe rij tonen, dus de eerste keer dat de datum verandert is anders dan de rest.

Zodoende zou ik tot de volgende code komen (verder niet getest):
<?php
$showDivider = false;
$currentDate = '';

while ($row = mysqli_fetch_assoc($result)) {
    if ($currentDate != $row['datum']) {
        // update huidige datum
        $currentDate = $row['datum'];
        // toon scheiding?
        if ($showDivider) {
            // print scheiding hier
            // ...
        } else {
            // skip eerste scheiding
            $showDivider = true;
        }
    }
    // en wat je nog meer met $row wilt doen
    // ...
}
// print laatste scheiding hier
// ...
?>
Bedankt , moet het allemaal even bekijken.

Zoals in mij eerste post te zien is gaat het eigenlijk om een soort kalender,
ik wil de data uit table die op dezelfde dag zijn in een rij hebben

Uitgebreider voorbeeldje
+----+------------+----------+
| id | datum |aktiviteit|
+----+------------+----------+
| 1 | 2015-02-05 |werk |
| 2 | 2015-02-10 |vakantie |
| 3 | 2015-02-10 |markt |
| 4 | 2015-02-12 |test |
+----+------------+----------+

Dit geeft in een rij: (2015-02-10 2x apart, dus niet gewenst)

--------------------
2015-02-05
werk
--------------------
2015-02-10
vakantie
--------------------
2015-02-10
markt
------------------
2015-02-12
test
--------------------

wat ik zou willen

--------------------
2015-02-05
werk
--------------------
2015-02-10
vakantie
markt
--------------------
2015-02-12
test
--------------------


Ik heb volgende

<?php 
$result= $mysqli->query("SELECT * 
FROM `gelijke_datums` 
order by datum");
if ($mysqli->connect_errno) {
	printf("Connect failed: %s\n", $mysqli->connect_error);
	exit();
	}?>


 <?php while ($row = $result->fetch_array())
             	{								
				$id = stripslashes($row['id']);				
				$datum = stripslashes($row['datum']);
				$activiteit = ($row['activiteit']);		
           ?>


 <p> <span><?php echo $datum ?></span> <a href="#<?php echo $id ?>" >
 <?php echo $activiteit ?></a> </p>
    <hr>
    <?php } ?>

Hoi,
Door tijdgebrek ff moeten laten liggen

Dit was voor mijn geval de oplossing


<?php
$showDivider = false;
$currentDate = '';

while ($row = mysqli_fetch_assoc($result)) {
    if ($currentDate != $row['datum']) {
        // update huidige datum
        $currentDate = $row['datum'];
        // toon scheiding?
        if ($showDivider) {
            // print scheiding hier
            // ...
        } else {
            // skip eerste scheiding
            $showDivider = true;
        }
    }
    // en wat je nog meer met $row wilt doen
    // ...
}
// print laatste scheiding hier
// ...
?>


Ik krijg nu dezelfde datums en bijbehorende in EEN rij

----------------------
vrijdag 3 april
tekst A
vrijdag 3 april
tekst B
----------------------
enz

Is er een nog een mogelijkheid om EEN datum in een rij te printen of te laten zien :
----------------------
vrijdag 3 april
tekst A
tekst B
----------------------






Uhhh... Dit doe je toch gewoon door de datum te printen op het moment dat de datum verandert?

Moet je dat wel op de goede plaats doen natuurlijk...

<?php
$showDivider = false;
$currentDate = '';

while ($row = mysqli_fetch_assoc($result)) {
    if ($currentDate != $row['datum']) {
        // update huidige datum
        $currentDate = $row['datum'];
        // *** PRINT HIER JE DATUM ***
        // toon scheiding?
        if ($showDivider) {
            // print scheiding hier
            // ...
        } else {
            // skip eerste scheiding
            $showDivider = true;
        }
    }
    // en wat je nog meer met $row wilt doen
    // *** PRINT HIER DE REST ***
}
// print laatste scheiding hier
// ...
?>
Mooi, heb je een voorbeeldje

@door de datum te printen op het moment dat de datum verander
Zie het bovenstaande codefragment en de toevoegingen *** TUSSEN STERRETJES ***.
Bedankt, moet het ff controleren krijg nou de tekst van een vorige dag bij rrn datum en geen scheiding van datums meer.
ik zal de volgorde hoe ik het heb eens nalopen.

[size=xsmall]Toevoeging op 25/04/2015 16:52:22:[/size]

Ik heb de scheiding hier gezet:(hr) en dat werkt nu goed.
bedankt voor je hulp Thomas!

¨
$currentDate = $row['datum'];

echo '<hr>';

 // *** PRINT HIER JE DATUM ***

Reageren