Avatar billede danic Nybegynder
24. juli 2003 - 21:05 Der er 18 kommentarer og
1 løsning

indsæt pagebreak i tabeler fra mysql_query - forsat

Jeg skal have indsat nogle pagebreak i tabeler som kommer fra min mysql_query - jeg fik denne kode tidligere men kan ikke helt finde ud af hvad jeg skal bruge?


<?php
$pgbr = 5; // Hvormange tabeller før et pagebreak
$pgbrctrl = 1;

$query = mysql_query("");
while ($row = mysql_fetch_assoc($query)) {
if ($pgbrctrl == 1) {
echo '<div style="page-break-after: always">';
}

echo '<table border="1"><tr>';
echo '<td>'.$row['felt'].'</td>';
echo '</tr></table><br>';

if ($pgbrctrl == $pgbr) {
echo '</div>';
$pgbrctrl = 0;
}
$pgbrctrl++;
}
?>



Jeg har en masse mysql_query's som køre i while løkke indtil der ikke er flere $result tilbage. Til sidst køre html kode som laver en tabel for hver gennemløb!

<table border=1 cellspacing=0 cellpadding=4>
<tr><td>
.... data ....
</td></tr>
</tabel>

Hvad skal jeg indsætte før tabel start og efter tabel start?
Avatar billede tipsen Nybegynder
24. juli 2003 - 22:18 #1
Hvis du skal style udprintningen af siden vil jeg foreslå dig at kigge nærmere på: http://www.alistapart.com/stories/goingtoprint/ fra en af guruerne i CSS-regi.
Avatar billede schaefner Juniormester
24. juli 2003 - 22:23 #2
Er det ikke bare:

<?php
$pgbr = 5; // Hvormange tabeller før et pagebreak
$pgbrctrl = 1;

$query = mysql_query("");
while ($row = mysql_fetch_assoc($query)) {
    if ($pgbrctrl == 1) {
        echo '<div style="page-break-after: always">';
    }

    echo '<table border="1" cellspacing="0" cellpadding="4"><tr>';
    echo '<td>'.$row['data'].'</td>';
    echo '</tr></table>';

    if ($pgbrctrl == $pgbr) {
        echo '</div>';
        $pgbrctrl = 0;
    }
    $pgbrctrl++;
}
?>
Avatar billede danic Nybegynder
24. juli 2003 - 22:39 #3
Er det her mysql kald nødvendigt ->

$query = mysql_query("");
while ($row = mysql_fetch_assoc($query)) {

min løkke virker jo,

jeg skal bare have den til at echo '<div style="page-break-after: always">'; hver 4 gang den køre igennem.
Avatar billede danic Nybegynder
24. juli 2003 - 22:42 #4
Kan man ikke laver noget i den her stil?
if $taller =='3'{
echo '<div style="page-break-after: always">';
$taller ="0";
}
else
taller ="+1";
Avatar billede schaefner Juniormester
24. juli 2003 - 22:42 #5
jamen, hvordan ser din løkke da ud?
Avatar billede schaefner Juniormester
24. juli 2003 - 22:43 #6
hvis der skal være fire, så er det bare:

$pgbr = 4;
Avatar billede danic Nybegynder
24. juli 2003 - 22:45 #7
$org_result = mysql_query("SELECT film.orgTitle, extra.extraID FROM film, filmextraRelation, extra, user  where filmextraRelation.extraID=extra.extraID AND film.filmID = filmextraRelation.filmID AND extra.userID = user.userID AND user.userID = '$userNumber'  ORDER BY orgTitle");
  $number = mysql_num_rows($org_result);

  if ($number > 0) {
    while($row = mysql_fetch_array($org_result)) {
       
        $extraID="$row[extraID]";
        $filmnavn =  "<a href=\"title_info_mine.php?extraID=" . $row[extraID] . "&filmnavn=" . urlencode($row[orgTitle]). "\">$row[orgTitle]</a>";
        $filmnavn2 = "$row[orgTitle]";
       
   
                  $extraresult = mysql_query("SELECT * FROM extra where extraID='$extraID'");
                  $extrarow = mysql_fetch_array($extraresult);

                  $result2 = mysql_query("SELECT localTitle FROM extra WHERE extraID='$extraID'");
                  $number = mysql_num_rows($result2);
                      if ($number > 0) {
                            while($row = mysql_fetch_array($result2)) {
                             




  $result = mysql_query("SELECT * FROM categori INNER JOIN extracategoriRelation ON extracategoriRelation.categoriTypeID=categori.categoriTypeID WHERE extracategoriRelation.categoriID='$extrarow[categoriID]'");
  $number = mysql_num_rows($result);
  if ($number > 0) {
    while($row = mysql_fetch_array($result)) {
      $categoriType[] = $row['categoriType'];
    }
  }

  $result = mysql_query("SELECT * FROM sound INNER JOIN extrasoundRelation ON extrasoundRelation.soundTypeID=sound.soundTypeID WHERE extrasoundRelation.soundID='$extrarow[soundID]'");
  $number = mysql_num_rows($result);
  if ($number > 0) {
    while($row = mysql_fetch_array($result)) {
      $soundType[] = $row['soundType'];
    }
  }

 
  $result = mysql_query("SELECT * FROM screen INNER JOIN extrascreenRelation ON extrascreenRelation.screenTypeID=screen.screenTypeID WHERE extrascreenRelation.screenID='$extrarow[screenID]'");
  $number = mysql_num_rows($result);
  if ($number > 0) {
    while($row = mysql_fetch_array($result)) {
      $screenType[] =  $row['screenType'];
    }
  }


  $result = mysql_query("SELECT * FROM language INNER JOIN extralanguageRelation ON extralanguageRelation.languageTypeID=language.languageTypeID WHERE extralanguageRelation.languageID='$extrarow[languageID]'");
  $number = mysql_num_rows($result);
  if ($number > 0) {
    while($row = mysql_fetch_array($result)) {
      $languageType[] =  $row['languageType'];
    }
  }


  $result = mysql_query("SELECT * FROM subtitles INNER JOIN extrasubtitlesRelation ON extrasubtitlesRelation.subtitlesTypeID=subtitles.subtitlesTypeID WHERE extrasubtitlesRelation.subtitlesID='$extrarow[subtitlesID]'");
  $number = mysql_num_rows($result);
  if ($number > 0) {
    while($row = mysql_fetch_array($result)) {
      $subtitlesType[] = $row['subtitlesType'];
    }
  }

  $result = mysql_query("SELECT * FROM karakter INNER JOIN extrakarakterRelation ON extrakarakterRelation.karakterTypeID=karakter.karakterTypeID WHERE extrakarakterRelation.karakterID='$extrarow[karakterID]'");
  $number = mysql_num_rows($result);
  if ($number > 0) {
    while($row = mysql_fetch_array($result)) {
      $karakterType[] = $row['karakterType'];
    }
  }

  $result = mysql_query("SELECT * FROM regionskode INNER JOIN extraregionskodeRelation ON extraregionskodeRelation.regionskodeTypeID=regionskode.regionskodeTypeID WHERE extraregionskodeRelation.regionskodeID='$extrarow[regionskodeID]'");
  $number = mysql_num_rows($result);
  if ($number > 0) {
    while($row = mysql_fetch_array($result)) {
      $regionskodeType[] = $row['regionskodeType'];
    }
  }

her efter kommer min tabel hvor alle variabler insættes! den løber tabellen igennem for hvert hit i mysql
Avatar billede schaefner Juniormester
24. juli 2003 - 22:49 #8
skal dine forskellige array's udskrive i samme tabel eller?
Avatar billede schaefner Juniormester
24. juli 2003 - 22:59 #9
Hvis du lige vil skrive hvad der skal udskrives og hvordan det skal opstilles, så vil du hjælpe mig meget :)
Avatar billede danic Nybegynder
24. juli 2003 - 22:59 #10
Ja alle arrays kommer ind i samme tabel
Avatar billede danic Nybegynder
24. juli 2003 - 23:00 #11
Den store while indeholder alle de små whiles med arrays i.

if ($number > 0) {
    while($row = mysql_fetch_array($org_result)) {
Avatar billede schaefner Juniormester
24. juli 2003 - 23:04 #12
ja, men hvordan skal det udskrives?
Avatar billede tipsen Nybegynder
24. juli 2003 - 23:04 #13
Hvorfor ikke i højere grad lade CSS styre udskriften selv - så tager du automatisk højde for de ting du har glemt...
Avatar billede danic Nybegynder
24. juli 2003 - 23:11 #14
schaefner> hvis du vil se output så går ind på http://www.dvdbasen.dk log ind som bruger: gæst passwod: gæst og klik på Udskriv liste.

tipsen> jeg kigger på CSS imorgen (linket), har aldig brugt det før.
Avatar billede tipsen Nybegynder
24. juli 2003 - 23:38 #15
Hvis du vil lave en pæn CSS løsning kan du kigge på: http://www.w3.org/TR/1998/REC-CSS2-19980512/page.html#page-breaks
Avatar billede danic Nybegynder
25. juli 2003 - 07:11 #16
tipsen> jeg har nu prøvet at sætte den her ind

TABLE {page-break-inside: avoid}

uden held!
Avatar billede danic Nybegynder
25. juli 2003 - 08:55 #17
Jeg har valgt at benytte list a'la schaefner's metode,

før tabelen skriver jeg:

$pagebreak = 0;

og efter tabellen skriver jeg:

<?
    if ($pagebreak == 4) {
        echo '<div style="page-break-after: always"></div>';
        $pagebreak = 0;
    }
    $pagebreak++;
?>
Avatar billede danic Nybegynder
26. oktober 2003 - 08:24 #18
lukker
Avatar billede danic Nybegynder
26. oktober 2003 - 08:24 #19
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester