Nummering van regels

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martin Meijer

Martin Meijer

04/12/2006 12:46:00
Quote Anchor link
Ik ben bezig een forum te maken, die is eigenlijk bijna klaar. Nu kunnen leden dus een stuk script posten, maar het volgende wil ik.

Als nu het script getoond wordt uit de database dan kan het er als volgt uit zien:

Voorbeeld 1:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?PHP
   print "Dit is een script";
  ?>


Nu zie je bij voorbeeld 1 dat er geen regel voorstaat die aangeeft welke regenummer dit is.

Voorbeeld 2:
1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?PHP
2
   print "Dit is een script";
3  ?>


Zie voorbeeld 2 dit is wat ik wil bereiken.

Alleen het hele script staat in de datbaase, en kan je niet met een while of for lus makkelijk optellen met $c=0; print "$c"; $c++;

Dus daarom ben ik op zoek naar een oplossing die dit wel kan, wie kan mij uit de brand helpen?
 
PHP hulp

PHP hulp

27/11/2024 06:01:58
 
Kalle P

Kalle P

04/12/2006 12:53:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$i
= 0;
echo '<table><tr>';
while($row = mysql_fetch_assoc($result)){
  echo '<td>'.$i++.'</td>';
  echo '<td>'.$row['code'].'</td>';
  echo '</tr><tr>';
}

echo '</table>';
?>


edit: </php ipv
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php
Gewijzigd op 01/01/1970 01:00:00 door Kalle P
 
Martin Meijer

Martin Meijer

04/12/2006 13:17:00
Quote Anchor link
Sorry dat ik het moet zeggen maar dit telt de regels niet door, ik blijf met hetzelfde probleem zitten als voorheen :S

Er blijft alleen een 0 staan op de eerste lijn
Gewijzigd op 01/01/1970 01:00:00 door Martin Meijer
 
- wes  -

- wes -

04/12/2006 13:20:00
Quote Anchor link
__LINE__ geeft je huidige script regelnummer
Gewijzigd op 01/01/1970 01:00:00 door - wes -
 
- SanThe -

- SanThe -

04/12/2006 13:22:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$i
= 0;
echo '<table><tr>';
while($row = mysql_fetch_assoc($result)){
  $i = $i + 1;
  echo '<td>'.$i.'</td>';
  echo '<td>'.$row['code'].'</td>';
  echo '</tr><tr>';
}

echo '</tr></table>';
?>
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Joren de Wit

Joren de Wit

04/12/2006 13:28:00
Quote Anchor link
Voor $i = $i + 1 wordt ook veelal de afkorting $i++ gebruikt. Dus dat is in principe niet verkeerd. Echter als je hem net als Kalle meteen echoed, wordt eerst de huidige waarde van $i geëchoed en dan pas 1 bij die waarde opgeteld. Maar zo zou het dus ook werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$i
= 0;
echo '<table><tr>';
while($row = mysql_fetch_assoc($result)){
  $i++;
  echo '<td>'.$i.'</td>';
  echo '<td>'.$row['code'].'</td>';
  echo '</tr><tr>';
}

echo '</tr></table>';
?>
 
- SanThe -

- SanThe -

04/12/2006 13:30:00
Quote Anchor link
@Blanche: Helemaal mee eens. Was meer voor de duidelijkheid. Direct $i++ echoen werkt niet (altijd).
 
Martin Meijer

Martin Meijer

04/12/2006 13:58:00
Quote Anchor link
Ik heb het allemaal ook in een print regel gedaan, en op een andere manier laten tellen etc. Maar met geen succes.

Ik begrijp de ideeen van echo en de while lus, hij drukt verder de tekst goed af maar de nummering doet ie nie verder.

Ik zal proberen iets duidelijker te zijn met wat ik heb.

In de datbaase heb ik een script staan in een tabel onder "code", daar staat dus het hele script met bijvoorbeeld 100 regels.

Ik print de regel uit de datbaase als het getoond wordt, dus zal er een print regel komen als volgt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?PHP
print "".$gegeven['code'].""; // Hier staat het hele bericht in
?>


Nu wil ik dit dus in een tabel laten zien, met links dat hij doornummert.

Nu met het voorbeeld die ik van jullie heb, begint dan wel bij 1 maar vult de rest niet op (de regels die er meer zijn, de rest van 100 dus 99 blijven bijvoorbeeld leeg)
Gewijzigd op 01/01/1970 01:00:00 door Martin Meijer
 
- SanThe -

- SanThe -

04/12/2006 14:02:00
Quote Anchor link
Geef dat betreffende stukje code eens.
 
Martin Meijer

Martin Meijer

04/12/2006 14:04:00
Quote Anchor link
Nu staat het script een een mooi kadertje hieronder, dit vergelijkbare wil ik halen.

Heb de code weggehaald!
Gewijzigd op 01/01/1970 01:00:00 door Martin Meijer
 
Willem Jan Z

Willem Jan Z

04/12/2006 14:07:00
Quote Anchor link
Je tekst exploden op \r\n
Dan weer weergeven met een regelnummer ervoor.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$nr
= 1;
echo '<table>';
$lines = explode("\r\n",$row['code']);
foreach($lines as $line) {
    echo '<tr><td>'.$nr,'</td><td>'.$line.'</td></tr>';
   $nr++;
}

echo '</table>';
?>
 
Martin Meijer

Martin Meijer

04/12/2006 14:10:00
Quote Anchor link
@willemjan :P het is omdat je een kerel bent, anders had ik je wel kunnen zoenen!

Nee dit werkt echt geweldig top man! Ik wist niet dat het eigenlijk zo simpel was. Volgende keer ga ik eerst langer nadenken voordat ik vraag!

Echt top!
 
Martin Meijer

Martin Meijer

04/12/2006 15:40:00
Quote Anchor link
Als ik het nu gebruik, dan doet de volgende funtie het niet:
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
<?PHP
// PHP posts
function xhtmlHighlightString($line,$return=false) {
   $hlt = highlight_string(stripslashes($line), true);
   $fon = str_replace(array('<font>', '</font>'), array('<span ', '</span>'), $hlt);
   $ret = preg_replace('#color="(.*?)"#', 'style="color: \\1"', $fon);
   if($return)
     return $ret;
   echo $ret;
}
?>



//Staat in een ader script dan de functie
<?PHP

$nr
= 1;
echo '<table>';
$lines = explode("\r\n",$row['code']);
foreach($lines as $line) {
    echo '<tr><td>'.$nr,'</td><td>'.xhtmlHighlightString($line).'</td></tr>';
   $nr++;
}

echo '</table>';

?>
Gewijzigd op 01/01/1970 01:00:00 door Martin Meijer
 
Willem Jan Z

Willem Jan Z

07/12/2006 14:53:00
Quote Anchor link
Dat komt omdat je het moet returnen. Niet moet echoën.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    echo '<tr><td>'.$nr,'</td><td>'.xhtmlHighlightString($line, true).'</td></tr>';
?>


Ik vermoed dat het zo wel werkt.
 



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.