login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Regel break op nieuw karakter (Opgelost)

Offline DRobje - 22/08/2007 11:51
Avatar van DRobjeNieuw lid Vraagje,

Ik haal een overzicht uit de database waar kolom data kan beginnen met 3 verschillende vormen: I12345 - INC12345 - COH12345
Nu wordt het netjes op volgorde gesorteerd maar wat ik graag zou willen is dat zodra I regels klaar zijn en de INC regels beginnen er eerst een lege regel wordt gegeven om er een beter overzicht van te maken. Die regel zou ik dan ook nog wel een kleurtje willen geven. Wie heeft hier een simpele oplossing voor??

16 antwoorden

Gesponsorde links
Offline ArndJan - 22/08/2007 12:01
Avatar van ArndJan PHP interesse Kun je een stukje code plaatsen?
Offline DRobje - 22/08/2007 12:05
Avatar van DRobje Nieuw lid Wat wil je hebben? ik bedoel dat ik die code wel kan plaatsen maar weet niet of je er wat aan hebt. Maar goed, de query is:
  1. $query = "SELECT COUNT(IPC) AS aantal, SUM(Parentpr) AS parent, SUM(Childpr) AS child, CURRENT_DATE(), submission_date, DATEDIFF(CURRENT_DATE(), MIN(submission_date)) AS verschil, IPC, submission_id, Part_Family, Request_Type, Description, Parentpr, Childpr, Prio, MAX(Description) FROM ft_form_4 WHERE status = 'open' GROUP BY IPC ORDER BY Part_Family, Request_Type ASC";
  2. $sql = mysql_query ($query) or die (mysql_error());
  3. if ($sql && mysql_num_rows($sql) >= 1)
  4. {


en het op te bouwen overzicht:

  1. while ($row= mysql_fetch_array ($sql)){
  2. echo '<tr><td><a href="detail.php?id='.$row['submission_id'].'">'.$row['IPC'].'</a></td>';
  3. echo '<td>'.$row['submission_date'].'</td>';
  4. echo '<td>'.$row['verschil'].'</td>';
  5. echo '<td>'.$row['aantal'].'</td>';
  6. echo '<td>'.$row['parent'].'</td>';
  7. echo '<td>'.$row['child'].'</td>';
  8. echo "<td>".$row['Part_Family']."</td>";
  9. echo "<td>".$row['Request_Type']."</td>";
  10. echo "<td>".$row['Description']."</td></tr>";
  11. }

Offline DMM - 22/08/2007 15:14
Avatar van DMM PHP beginner Met extra while's kan het misschien wel...

  1. while(substr ($waarde, 0, 3) == "INC") {
  2. echo '<td></td>';
  3. }
Offline BramBo - 22/08/2007 15:22
Avatar van BramBo JS gevorderde in je while lust declareer je aan het einde een var $last. En een regel hiervoor een vergelijking die controleert op een wijziging in de $last waarde.

dus:
  1. $last;
  2. while() {
  3. ...
  4. if(empty($last) && preg_replace("/^(\w+)\d+/", "\\1", $row['IPC']) != $last) print "</tr><td colspan='10'></td><tr>";
  5. $last = preg_replace("/^(\w+)\d+/", "\\1", $row['IPC']);
Offline Rik - 22/08/2007 15:30 (laatste wijziging 22/08/2007 15:31)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dan wordt het dus zoiets:
  1. <?php
  2. $colors = array('red', 'green', 'blue');
  3. $i = 0;
  4. $last = '';
  5. while ($row = mysql_fetch_array($sql)) {
  6. $prefix = preg_replace('/\d/', '', $row['submission_id']); // Of $row['IPC'], ik weet niet precies wat er allemaal in je DB staat :)
  7. $last = empty($last) ? $prefix : $last;
  8. echo '<tr style="color: ' . $colors[$i % count($colors)] . ';"><td><a href="detail . php?id=' . $row['submission_id'] . '">' . $row['IPC'] . '</a></td>';
  9. echo '<td>' . $row['submission_date'] . '</td>';
  10. echo '<td>' . $row['verschil'] . '</td>';
  11. echo '<td>' . $row['aantal'] . '</td>';
  12. echo '<td>' . $row['parent'] . '</td>';
  13. echo '<td>' . $row['child'] . '</td>';
  14. echo '<td>' . $row['Part_Family'] . '</td>';
  15. echo '<td>' . $row['Request_Type'] . '</td>';
  16. echo '<td>' . $row['Description'] . '</td></tr>';
  17. if ($previx != $last) {
  18. $i++;
  19. echo '<tr><td colspan="8"></td></tr>';
  20. }
  21. $last = $prefix;
  22. }
  23. ?>
Offline DRobje - 22/08/2007 15:50 (laatste wijziging 22/08/2007 16:00)
Avatar van DRobje Nieuw lid Ziet er heel goed uit. Alleen krijg ik nu een gekleurd overzicht waarin dus alle kollomen de kleur rood hebben gekregen. Bij een nieuwe regel krijg ik ongeacht het het nummer een kleur groen of blauw. De bedoeling was dus dat als de rij veranderd waar bij IPC de waarde veranderd van I0123 naar INC9876 of COH98765

Dat er dan een lege regel met een kleurtje kwam.
Offline Rik - 22/08/2007 16:10
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Oh zo! 
  1. <?php
  2. $last = '';
  3. while ($row = mysql_fetch_array($sql)) {
  4. $prefix = preg_replace('/\d/', '', $row['submission_id']); // Of $row['IPC'], ik weet niet precies wat er allemaal in je DB staat :)
  5. $last = empty($last) ? $prefix : $last;
  6. echo '<tr><td><a href="detail . php?id=' . $row['submission_id'] . '">' . $row['IPC'] . '</a></td>';
  7. echo '<td>' . $row['submission_date'] . '</td>';
  8. echo '<td>' . $row['verschil'] . '</td>';
  9. echo '<td>' . $row['aantal'] . '</td>';
  10. echo '<td>' . $row['parent'] . '</td>';
  11. echo '<td>' . $row['child'] . '</td>';
  12. echo '<td>' . $row['Part_Family'] . '</td>';
  13. echo '<td>' . $row['Request_Type'] . '</td>';
  14. echo '<td>' . $row['Description'] . '</td></tr>';
  15. if ($previx != $last) {
  16. echo '<tr><td colspan="8" style="color: blue"></td></tr>';
  17. }
  18. $last = $prefix;
  19. }
  20. ?>
Offline DRobje - 22/08/2007 16:32
Avatar van DRobje Nieuw lid Helaas, nu is er lijkt er niks gewijzigd ten opzichte van wat ik had. Maar waar telt hij nu die eerste waarde van die prefix??
Offline BramBo - 22/08/2007 16:40
Avatar van BramBo JS gevorderde .... nog geen 5 seconde of ik zie de error al. Als iemand zoveel moeite doet dat hij je heel het script aan levert kan je op zijn minst de moeite nemen om het door te nemen..

$previx moet zijn $prefix natuurlijk
Offline DRobje - 22/08/2007 16:44
Avatar van DRobje Nieuw lid Nee sorry hoor. dat had ik al lang aangepast. Ik krijg ook geen error. alleen er zit nog geen verschil in en dat is nu juist dat stukje waar Boukefalos de moeite voor heeft genomen. En als je mijn laatste post goed had gelezen had je dat kunnen zien.
Offline Rik - 22/08/2007 18:16
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Heb je ook gekeken naar m'n commentaar?
Citaat:
// Of $row['IPC'], ik weet niet precies wat er allemaal in je DB staat 
Ik weet niet of dat goed is...
Offline DRobje - 22/08/2007 20:17 (laatste wijziging 23/08/2007 08:44)
Avatar van DRobje Nieuw lid Ok nu zijn we een heel eind. Het werkt bijna maar wat er nu gebeurt is dat er inderdaad na wisseling van karakters iets gebeurt maar zet het dan er 1 boven. Dus als hij bij de twintigste moet wisselen dan dot ie dit bij nr 19. Dus loop ik een regel achter. Wat gaat er nu nog fout?? Hieronder de uiteindelijke code

  1. $last = '';
  2. while ($row = mysql_fetch_array($sql)) {
  3. $date = substr($row['submission_date'],0,10);
  4. $prefix = preg_replace('/\d/', '', $row['IPC']);
  5. $last = empty($last) ? $prefix : $last;
  6. echo '<tr><td width=\"72\"><a href="detail.php?id=' . $row['submission_id'] . '">' . $row['IPC'] . '</a></td>';
  7. echo '<td>'.$date.'</td>';
  8. echo '<td align="center">' . $row['verschil'] . '</td>';
  9. echo '<td>' . $row['aantal'] . '</td>';
  10. echo '<td>' . $row['parent'] . '</td>';
  11. echo '<td>' . $row['child'] . '</td>';
  12. echo '<td>' . $row['Part_Family'] . '</td>';
  13. echo '<td>' . $row['Request_Type'] . '</td>';
  14. echo '<td>' . $row['Description'] . '</td>';
  15. if ($prefix != $last) {
  16. echo '<tr><td colspan="9" style="color: blue">----------</td></tr>';
  17. }
  18. $last = $prefix;
  19. }
Offline Rik - 23/08/2007 10:12
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
En als je het zo probeert?
  1. $last = '';
  2. while ($row = mysql_fetch_array($sql)) {
  3. $date = substr($row['submission_date'],0,10);
  4. $prefix = preg_replace('/\d/', '', $row['IPC']);
  5. $last = empty($last) ? $prefix : $last;
  6. if ($prefix != $last) {
  7. echo '<tr><td colspan="9" style="color: blue">----------</td></tr>';
  8. }
  9. echo '<tr><td width=\"72\"><a href="detail.php?id=' . $row['submission_id'] . '">' . $row['IPC'] . '</a></td>';
  10. echo '<td>'.$date.'</td>';
  11. echo '<td align="center">' . $row['verschil'] . '</td>';
  12. echo '<td>' . $row['aantal'] . '</td>';
  13. echo '<td>' . $row['parent'] . '</td>';
  14. echo '<td>' . $row['child'] . '</td>';
  15. echo '<td>' . $row['Part_Family'] . '</td>';
  16. echo '<td>' . $row['Request_Type'] . '</td>';
  17. echo '<td>' . $row['Description'] . '</td>';
  18. $last = $prefix;
  19. }
Offline DRobje - 23/08/2007 10:34
Avatar van DRobje Nieuw lid PERFECTO !!!!

Heel hartelijk bedankt voor je hulp.
Offline marten - 23/08/2007 10:37
Avatar van marten Beheerder Ken je de opgelost knop al?
Offline Rik - 23/08/2007 10:42
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Goed dat het nu werkt! Veel plezier ermee.  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.272s