Avatar billede sonic_86 Nybegynder
23. maj 2003 - 15:35 Der er 67 kommentarer og
1 løsning

Skal ikke skrive <br> første gang?

Hej

Hvordan laver man så den ikke udskriver <br> første gang men efter den første skal den med <br>?

    $msg = $row['kommentar'];
    echo '<table border="0" width="744" style="border: 1px solid #000000" align="center" cellspacing="0" cellpadding="2">';
    echo '<tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">'.$stjerner.'</div><div style="float:right;"><font face="Verdana" style="font-size: 11px;"><a href="mailto:'.$row['mail'].'">'.$row['navn'].'</a> | '.$row['dato'].'</div></font>';
    echo "</td></tr><tr><td bgcolor='#B9E1FD'>";
    echo '<font face="Verdana" style="font-size: 11px;">';
    echo nl2br($msg);
    echo '</td></tr>';
    echo '</font></b>';
    echo '</table><br>'; //Her er den <br> jeg snakker om
Avatar billede schaefner Juniormester
23. maj 2003 - 15:37 #1
Prøv:

$msg = $row['kommentar'];
echo '<table border="0" width="744" style="border: 1px solid #000000" align="center" cellspacing="0" cellpadding="2">';
echo '<tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">'.$stjerner.'</div><div style="float:right;"><font face="Verdana" style="font-size: 11px;"><a href="mailto:'.$row['mail'].'">'.$row['navn'].'</a> | '.$row['dato'].'</div></font>';
echo "</td></tr><tr><td bgcolor='#B9E1FD'>";
echo '<font face="Verdana" style="font-size: 11px;">';
echo nl2br($msg);
echo '</td></tr>';
echo '</font></b>';
if($tmp == 1) {
  echo '</table><br>';
  $tmp = 1;
}
Avatar billede donwang Nybegynder
23. maj 2003 - 15:37 #2
Hvorfor alle de echo???
Avatar billede schaefner Juniormester
23. maj 2003 - 15:37 #3
Skal jo nok være:
echo '</table>';
if($tmp == 1) {
  echo '<br>';
  $tmp = 1;
}
Avatar billede fangel Nybegynder
23. maj 2003 - 15:40 #4
schaefner => er det ikke nemmere omvendt? (og man slipper for at bruge så meget hukommelse ;)

donwang => du har ret... færre ville pynte (eller heradox-variabler ;)

Morten
Avatar billede sonic_86 Nybegynder
23. maj 2003 - 15:50 #5
schaefner: Det kan jeg ikke få til at virke :(
Avatar billede tipsen Nybegynder
23. maj 2003 - 15:58 #6
dea: Heredoc-syntax ;-)
Avatar billede fangel Nybegynder
23. maj 2003 - 16:03 #7
tipsen => pis os'... glemmer altid hvordan de staves... ;)
Avatar billede sonic_86 Nybegynder
23. maj 2003 - 16:03 #8
Nogle der ved hvordan man laver det?
Avatar billede fangel Nybegynder
23. maj 2003 - 16:06 #9
heredoc-syntax eller dit problem ;) hæhæ
Avatar billede sonic_86 Nybegynder
23. maj 2003 - 20:34 #10
Slet ikke nogle eksperter der kan finde ud af det? :(
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 12:03 #11
Hmmm Er der for lidt points?????
Avatar billede hcars Novice
24. maj 2003 - 12:09 #12
Ikke for få point til mig. Ku' ikke finde ud af det om jeg så fik 1.000.
;-]
Avatar billede roenving Novice
24. maj 2003 - 12:09 #13
Hvad får du ?-)

schaefners løsning gør da hvad du vil have ...
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 12:19 #14
Jeg kan ikke få schaefners til at virke har prøvet
Avatar billede roenving Novice
24. maj 2003 - 12:24 #15
Har du prøvet:

$msg = $row['kommentar'];
echo '<table border="0" width="744" style="border: 1px solid #000000" align="center" cellspacing="0" cellpadding="2">';
echo '<tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">'.$stjerner.'</div><div style="float:right;"><font face="Verdana" style="font-size: 11px;"><a href="mailto:'.$row['mail'].'">'.$row['navn'].'</a> | '.$row['dato'].'</div></font>';
echo "</td></tr><tr><td bgcolor='#B9E1FD'>";
echo '<font face="Verdana" style="font-size: 11px;">';
echo nl2br($msg);
echo '</td></tr>';
echo '</font></b>';
echo '</table>';
if($tmp == 1) {
  echo '<br>';
  $tmp = 1;
}

?-)
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 12:27 #16
Avatar billede roenving Novice
24. maj 2003 - 12:30 #17
if($tmp == 1) {
  echo '<br>';
}else{
  $tmp = 1;
}
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 12:32 #18
Avatar billede roenving Novice
24. maj 2003 - 12:33 #19
Den undlader ad <br> første gang ?-|
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 12:34 #20
Nope kan du ikke se at Test :) er ikke oppe til den første table...
Avatar billede roenving Novice
24. maj 2003 - 12:37 #21
Der er 5 tables på den side -- de to øverste står helt sammen - de andre er adskilt af en <br>

-- og da teksten Test :) kommer efter den 5. table er der selvfølgelig en <br> ...
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 12:39 #22
Det jeg skal have lavet er:

Den første kommentar man skriver skal den skive uden <br> så Test :) kommer helt op til table (Husk det bliver oderet by DESC)

Så med alle de andre skal den skrive med <br> så der kommer mellemrum mellem tablerne
Avatar billede roenving Novice
24. maj 2003 - 12:42 #23
$msg = $row['kommentar'];
echo '<table border="0" width="744" style="border: 1px solid #000000" align="center" cellspacing="0" cellpadding="2">';
echo '<tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">'.$stjerner.'</div><div style="float:right;"><font face="Verdana" style="font-size: 11px;"><a href="mailto:'.$row['mail'].'">'.$row['navn'].'</a> | '.$row['dato'].'</div></font>';
echo "</td></tr><tr><td bgcolor='#B9E1FD'>";
echo '<font face="Verdana" style="font-size: 11px;">';
echo nl2br($msg);
echo '</td></tr>';
echo '</font></b>';
echo '</table>';
if($tmp == 1) {
  echo '<br>';
}else{
  echo 'Test :)';
  $tmp = 1;
}
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 12:48 #24
Nu skulle det meget gerne være nemmere:

http://www.mopedpower.dk/upload/scooter.php?id=1

Det er <- 1 -> der skal helt op til tablen
Kode: http://www.mopedpower.dk/upload/scooter.phps
Avatar billede roenving Novice
24. maj 2003 - 12:56 #25
Så er det jo den sidste gang du ikke skal have <br>

$tmp++//må man det i php ellers $tmp=$tmp+1
if($tmp != $ialt) {
  echo '<br>';
}
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 13:00 #26
Avatar billede schaefner Juniormester
24. maj 2003 - 13:04 #27
$tmp++;
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 13:05 #28
Det her dur heller ikke:

    $msg = $row['kommentar'];
    echo '<table border="0" width="744" style="border: 1px solid #000000" align="center" cellspacing="0" cellpadding="2">';
    echo '<tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">'.$stjerner.'</div><div style="float:right;"><font face="Verdana" style="font-size: 11px;"><a href="mailto:'.$row['mail'].'">'.$row['navn'].'</a> | '.$row['dato'].'</div></font>';
    echo "</td></tr><tr><td bgcolor='#B9E1FD'>";
    echo '<font face="Verdana" style="font-size: 11px;">';
    echo nl2br($msg);
    echo '</td></tr>';
    echo '</font></b>';
    echo '</table>';
    $tmp++//må man det i php ellers $tmp=$tmp+1
    if($tmp++ != $ialt) {
    echo '<br>';
    }
Avatar billede roenving Novice
24. maj 2003 - 13:07 #29
-- jeg havde glemt ; -- måske er det bare det ...
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 13:08 #30
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 13:10 #31
Skriv lige som et svar..
Avatar billede roenving Novice
24. maj 2003 - 13:13 #32
Jamen virker det?-)
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 13:13 #33
Har lige et problem når der er skrevet nok kommentar til at den laver siden 2 eller flere så kommer der mellemrum mellem <- 1 2 -> og table

http://www.mopedpower.dk/upload/scooter.php?id=1
http://www.mopedpower.dk/upload/scooter.phps
Avatar billede roenving Novice
24. maj 2003 - 13:17 #34
$tmp++;// <-- Det kan være denne linje skal stå efter betingelsen
    if($tmp != $ialt && $tmp != $pr_side) { // <-- du skal lige checke at det bliver præcist jvf. ovenstående kommentar
    echo '<br>';
    }
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 13:20 #35
Nu laver den det rigtigt på side 1 men på side 2 er der mellemrum

http://www.mopedpower.dk/upload/scooter.php?id=1
Avatar billede roenving Novice
24. maj 2003 - 13:26 #36
Prøv:
if($tmp-1 != $ialt && $tmp != $pr_side) {
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 13:27 #37
Nope det er det samme
Avatar billede roenving Novice
24. maj 2003 - 13:32 #38
Så må du debugge værdien af tmp og ialt:

    $tmp++;
    if($tmp != $ialt && $tmp != $pr_side) {
    echo '<br>';
    }else{
    echo $tmp." ".$ialt
Avatar billede tipsen Nybegynder
24. maj 2003 - 13:37 #40
sonic: Hvad er det egentlig du prøver at opnå - fordi det her virker som den vildeste slamkode til et problem der måske bare ikke er ordentlig gennemtænkt.
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 13:39 #41
tipsen: Hmm er overhovdet ikke med hvad mener du?

Jeg skal jo bare have hjælpe til så <- 1 2 3 4 5 -> hele tider er oppe ved tablen.
Avatar billede roenving Novice
24. maj 2003 - 13:39 #42
Jeg tror det er fordi $tmp mister sin værdi, når den kommer udenfor løkken -- prøv at erklære $tmp i starten af scriptet:
$tmp=0

-- hvis det virker, skal du så (selvfølgelig ;-) fjerne debug-else'n
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 13:47 #43
Hvor henne?
Avatar billede roenving Novice
24. maj 2003 - 13:51 #44
Jeg gætter, men lige efter din include f.eks.
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 13:55 #45
Det dur ikke
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:01 #46
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 14:02 #47
Det er den nu...
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:06 #48
Hvad er rettet i forhold til den tidligere (Den er jeg nemlig i gang med at redigere!)
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 14:07 #49
Der er sat $tmp=0 oppe under include
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:20 #50
Jeg har omskrevet den første del af din kode til følgende:

<?php
include('config.php');
$id = intval($_GET['id']);
$s = (isset($s)) intval($s) ? : 0;
$pr_side = '10'; //Kommentar pr. side


$ialt = mysql_result(mysql_query("SELECT COUNT(*) FROM scooter_kommentar WHERE scooter_id = $id"),0);

$query = mysql_query("SELECT kommentar, vote, dato, navn, mail FROM scooter_kommentar WHERE scooter_id = $id ORDER BY id DESC LIMIT $s, $pr_side") or die ("Fejl X: ".mysql_error());

if (mysql_num_rows($query) == 0){
  echo '<center><font face="Verdana" style="font-size: 11px;">Der er ikke skrevet nogle kommentar endnu!</font></center>';
} else {
  $gennemsnit = mysql_result(mysql_query("SELECT ROUND(AVG(vote),2) AS gennemsnit FROM scooter_kommentar WHERE scooter_id = '$id'"),0);
  echo '<center><font face="Verdana" style="font-size: 11px;">Denne scooter har i gennemsnit fået ' .$gennemsnit. ' ud af 10 (Der er ' .$ialt.' der har bedømt)</font></center>';

  while(list($msg, $vote, $dato, $navn, $mail) = mysql_fetch_row($query)) {
      $stjerner = str_repeat('<IMG src="http://www.mopedpower.dk/gfx/stjerne_on.gif">', $vote);
      $stjerner .= str_repeat('<IMG src="http://www.mopedpower.dk/gfx/stjerne_off.gif">', $vote);

      $tmptxt = '<table border="0" width="744" style="border: 1px solid #000000" align="center" cellspacing="0" cellpadding="2">';
      $tmptxt .= '<tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">'.$stjerner.'</div><div style="float:right;"><font face="Verdana" style="font-size: 11px;"><a href="mailto:'.$mail.'">'.$navn.'</a> | '.$dato.'</div></font>';
      $tmptxt .= '</td></tr><tr><td bgcolor="#B9E1FD">';
      $tmptxt .= '<font face="Verdana" style="font-size: 11px;">';
      $tmptxt .= nl2br($msg);
      $tmptxt .= '</td></tr>';
      $tmptxt .= '</font></b>';
      $tmptxt .= '</table>';
      $tmparray[] = $tmptxt;
  }
  echo explode('<br>', $tmparray);
}

-Så må du se om du kan bruge du - og om det fungerer...
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:22 #51
UPS - slutningen skulle have været:

  }
  echo implode('<br>', $tmparray);
}
Avatar billede roenving Novice
24. maj 2003 - 14:23 #52
Skal det ikke være

    $stjerner .= str_repeat('<IMG src="http://www.mopedpower.dk/gfx/stjerne_off.gif">', 10-$vote);
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:23 #53
og en fejl mere:

      $stjerner = str_repeat('<IMG src="http://www.mopedpower.dk/gfx/stjerne_on.gif">', $vote);
      $stjerner .= str_repeat('<IMG src="http://www.mopedpower.dk/gfx/stjerne_off.gif">', 10-$vote);
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:24 #55
roenwing: Godt set ;-) (Og hvorfor er det egentlig abosolut url i stedet for bare:

$stjerner = str_repeat('<IMG src="/gfx/stjerne_on.gif" alt="">', $vote);
$stjerner .= str_repeat('<IMG src="/gfx/stjerne_off.gif" alt="">', 10-$vote);
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:26 #56
$s = (isset($s)) ? intval($s) : 0;
Avatar billede roenving Novice
24. maj 2003 - 14:26 #57
Den så jeg også *gggg*
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:28 #58
sonic: Fungerer det nu? (Det ser også ud som om siden er blevet en del hurtigere uden alle de echo...)
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 14:29 #59
nice det dur!!!!

http://www.mopedpower.dk/upload/scooter.php?id=1

Men hvorfor har du lavet så meget om?
Er det bedre sådan?
Avatar billede roenving Novice
24. maj 2003 - 14:29 #60
>>tipsen

ja, det kan mærkes ...
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:31 #61
Det var for det første nemmere for mig at gennemskue på den måde - hvordan man programmerer er jo en vanesag - mht. hastighed er det væsentligt, at der ikke er så mange echo-kald, da de tager lang tid - der er flere andre småændringer - hvis der er nogen du ikke forstår, så bare spørg - jeg gider bare ikke forklare alle sammen fra en ende af ;-)
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 14:36 #62
Tak for hjælpen roenving og tipsen er det ikke tipsen der skal have pointsne?
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:37 #63
Du kan evt. bruge følgende rettelse også:

if (mysql_num_rows($query) == 0){
  echo '<center><font face="Verdana" style="font-size: 11px;">Der er ikke skrevet nogle kommentar endnu!</font></center>';
} else {
  $gennemsnit = mysql_result(mysql_query("SELECT ROUND(AVG(vote),2) AS gennemsnit FROM scooter_kommentar WHERE scooter_id = '$id'"),0);
  echo '<center><font face="Verdana" style="font-size: 11px;">Denne scooter har i gennemsnit fået ' .$gennemsnit. ' ud af 10 (Der er ' .$ialt.' der har bedømt)</font></center>';

  while(list($msg, $vote, $dato, $navn, $mail) = mysql_fetch_row($query)) {
      $stjerner = str_repeat('<IMG src="/gfx/stjerne_on.gif">', $vote);
      $stjerner .= str_repeat('<IMG src="/gfx/stjerne_off.gif">', 10-$vote);

      $tmptxt = '<table border="0" width="744" style="border: 1px solid #000000" align="center" cellspacing="0" cellpadding="2">
                <tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">%s</div><div style="float:right;"><font face="Verdana" style="font-size: 11px;"><a href="mailto:%s">%s</a> | %s</div></font></td></tr>
                <tr><td bgcolor="#B9E1FD"><font face="Verdana" style="font-size: 11px;">%s</font></td></tr>
                </table>';

      $tmparray[] = sprintf($tmptxt, $stjerner, $mail, $navn, $dato, nl2br($msg));
  }
  echo implode('<br>', $tmparray);
}

Udover at det vist er nemmere at overskue, er der også rettet en html-fejl med en glemt </b>-tag
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:38 #64
Og så smider jeg lige et svar - håber du lærer noget af ændringerne ;-)
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:40 #65
Hvis jeg kunne finde ud af at markere svar-boksen that is...
Avatar billede sonic_86 Nybegynder
24. maj 2003 - 14:41 #66
Med den nye kode så er den blevet hurtiger igen - tak
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:47 #67
you're welcome.
Avatar billede tipsen Nybegynder
24. maj 2003 - 14:58 #68
UPS - jeg missede lige hele pointen med den foregående ændring - det skulle have været sådan her:

if (mysql_num_rows($query) == 0){
  echo '<center><font face="Verdana" style="font-size: 11px;">Der er ikke skrevet nogle kommentar endnu!</font></center>';
} else {
  $gennemsnit = mysql_result(mysql_query("SELECT ROUND(AVG(vote),2) AS gennemsnit FROM scooter_kommentar WHERE scooter_id = '$id'"),0);
  echo '<center><font face="Verdana" style="font-size: 11px;">Denne scooter har i gennemsnit fået ' .$gennemsnit. ' ud af 10 (Der er ' .$ialt.' der har bedømt)</font></center>';

  $tmptxt = '<table border="0" width="744" style="border: 1px solid #000000" align="center" cellspacing="0" cellpadding="2">
    <tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">%s</div><div style="float:right;"><font face="Verdana" style="font-size: 11px;"><a href="mailto:%s">%s</a> | %s</div></font></td></tr>
    <tr><td bgcolor="#B9E1FD"><font face="Verdana" style="font-size: 11px;">%s</font></td></tr>
</table>';

  while(list($msg, $vote, $dato, $navn, $mail) = mysql_fetch_row($query)) {
      $stjerner = str_repeat('<IMG src="/gfx/stjerne_on.gif">', $vote);
      $stjerner .= str_repeat('<IMG src="/gfx/stjerne_off.gif">', 10-$vote);
      $tmparray[] = sprintf($tmptxt, $stjerner, $mail, $navn, $dato, nl2br($msg));
  }
  echo implode('<br>', $tmparray);
}
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