Avatar billede xhtml Nybegynder
19. oktober 2006 - 01:10 Der er 17 kommentarer og
1 løsning

substr fejl - måske

Hej.

Jeg har en lille fejl som ikke gider og virke..
Koden:
-------------------------------------
$felterne = "sætning over 10 tegn";
$felterne = substr($felterne,0,10)."...";
-------------------------------------

Jeg kan bare ikke finde fejlen.
Avatar billede coderdk Praktikant
19. oktober 2006 - 01:14 #1
Hvad er fejlen? Det der vil give dig "sætning ov..." - Det er måske ikke det du vil?
Avatar billede xhtml Nybegynder
19. oktober 2006 - 01:18 #2
Jo, det er det den skal gøre. Det virker også nogle steder men ikke alle steder da jeg sætter dem alle sammen ind i en tabel.
Avatar billede jaw Nybegynder
19. oktober 2006 - 01:19 #3
Så tror jeg vil skal have en lille smule mere kode, for ovenstående skulle virke fint...
Avatar billede xhtml Nybegynder
19. oktober 2006 - 01:25 #4
Okay, men så får i hele koden - Den er lang
--------------------------------------------------------------
<?
$table = $_GET['table'];

$sql = "SHOW COLUMNS FROM ".$table;
$query = mysql_query($sql);
$antal_q = mysql_num_rows($query);

$sql2 = "SELECT * FROM ".$table;
$q2 = mysql_query($sql2);
$row2 = mysql_fetch_array($q2);

echo '<table border="0" cellpadding="0" class="phpmyadminTable" cellspacing="0" width="80%">';
echo '<tr>';
$antal = count($felt);
while($r1 = mysql_fetch_array($q2)) {
    echo "<tr>";
    for($i=0;$i <= $antal-1;$i++) {
        $felterne = $r1[$felt[$i]];
        if(strlen($felterne) >= 10) {
            $felterne = substr($felterne,0,10)."...";
        }
        if(!isset($felterne)) {
            $felternes = "&nbsp;";
        }
        echo '<td height="'.$h.'" class="';
        if($antal-1 !=$i) {
            echo 'phpmyadminTableRightBottom';
        } else {
            echo 'phpmyadminTableBottom';
        }
        echo '">'.$felterne.'</td>';
    }
    echo "</tr>";
}
echo '</table>';
?>
--------------------------------------------------------------
Avatar billede xhtml Nybegynder
19. oktober 2006 - 01:29 #5
Den kode hvor der står det her:
$felterne = substr($felterne,0,10)."...";
hvis jeg fjerner den så virker det.
Avatar billede xhtml Nybegynder
19. oktober 2006 - 01:32 #6
Du kan se billeder af fejlen her:
www.clubsite.frac.dk/images/screenshot.jpg
Avatar billede roenving Novice
19. oktober 2006 - 01:33 #7
Er der ikke et s for meget her:

        if(!isset($felterne)) {
            $felternes = "&nbsp;";
        }
Avatar billede xhtml Nybegynder
19. oktober 2006 - 01:35 #8
jo, men det var bare fordi jeg prøve nogle ting. Ikke tag jer af det.
Avatar billede roenving Novice
19. oktober 2006 - 01:37 #9
-- også denne linje ser underlig ud:

        echo '<td height="'.$h" class="';
Avatar billede xhtml Nybegynder
19. oktober 2006 - 01:39 #10
$h er en anden variabel som laver højden men den er ikke med i koden
Avatar billede roenving Novice
19. oktober 2006 - 01:41 #11
-- men det skal vel se sådan ud:

        echo '<td height="'.$h.'" class="';

-- eller:

        echo "<td height=\"$h\" class=\"";
Avatar billede roenving Novice
19. oktober 2006 - 01:42 #12
Aha, en Eksperten-bug (sikkert for at modvirke sql-injection !-)
Avatar billede roenving Novice
19. oktober 2006 - 01:43 #13
Mon den bliver hvad man ønsker, hvis man smider mellemrum i:

        echo '<td height="' . $h . '" class="';
Avatar billede roenving Novice
19. oktober 2006 - 01:44 #14
Næsten, så åd den kun een lille gnyf ,-(
Avatar billede xhtml Nybegynder
19. oktober 2006 - 01:44 #15
kan prøve.
Avatar billede xhtml Nybegynder
19. oktober 2006 - 01:49 #16
Hvis jeg ændre koden sådan:
-----------------------------------------
<?
$table = $_GET['table'];

$sql = "SHOW COLUMNS FROM ".$table;
$query = mysql_query($sql);
$antal_q = mysql_num_rows($query);

$sql2 = "SELECT * FROM ".$table;
$q2 = mysql_query($sql2);
$row2 = mysql_fetch_array($q2);

echo '<table border="0" cellpadding="0" class="phpmyadminTable" cellspacing="0" width="80%">';
echo '<tr>';
$antal = count($felt);
while($r1 = mysql_fetch_array($q2)) {
    echo "<tr>";
    for($i=0;$i <= $antal-1;$i++) {
        $felterne = $r1[$felt[$i]];
        if(strlen($felterne) >= 10) {
            // $felterne = substr($felterne,0,10)."..."; // ændringer
        }
        if(!isset($felterne)) {
            $felternes = "&nbsp;";
        }
        echo '<td height="'.$h" class="';
        if($antal-1 !=$i) {
            echo 'phpmyadminTableRightBottom';
        } else {
            echo 'phpmyadminTableBottom';
        }
        echo '">'.$felterne.'</td>';
    }
    echo "</tr>";
}
echo '</table>';
?>
-----------------------------------------
Avatar billede xhtml Nybegynder
19. oktober 2006 - 04:06 #17
Jeg har selv fundet ud af det:

Det var bare fordi der var html i det felt.
Avatar billede xhtml Nybegynder
19. oktober 2006 - 04:06 #18
svar
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