---
title: "Begränsa antalet tecken per rad i Mysql Select"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/167870-begränsa-antalet-tecken-per-rad-i-mysql-select"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Andreas_J"
published: "2008-01-07T21:10:33.000Z"
updated: "2008-01-13T16:49:47.000Z"
replies: 9
views: 927
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/167870-begränsa-antalet-tecken-per-rad-i-mysql-select"
---

# Begränsa antalet tecken per rad i Mysql Select

## #1 — Andreas_J, 2008-01-07T21:10Z

Hej!

*Jag håller på att försöka hämta ut de senaste phpbb2-trådarna från mitt forum till min startsida. Har fått ut så att trådarna syns, men har ett problem bara.*

**Finns det något sätt att begränsa antalet tecken per rad när man hämtar från mysql?**

Alltså, om någon skapar en tråd med ett långt namn nu så förstör det utseendet på sidan:

*"Kolla in den här coola bilen som jag precis hittade"*

Jag vill kunna ställa in så att exemplet ovan istället blir:

*"Kolla in den här coola bilen som....."*

Någon som vet?

Permalänk: https://www.webforum.nu/p/167870

## #2 — Pedda, 2008-01-07T22:42Z

Det går nog inte att fixa direkt i queryn men det går ju att fixa när du skriver ut det på sidan.

```php
if(strlen($row['meddelande']) > 80) {
	echo substr($meddelande['meddelande'], 0, 77) . "..."; 
} else {
	echo $row['meddelande'];
}
```

Permalänk: https://www.webforum.nu/p/2068702

## #3 — Travoni, 2008-01-07T23:34Z

Du har även LEFT, RIGHT och SUBSTR i mySql så det kan du med fördel göra där.
I alla fall inte hämta fler tecken än vad du skall använda.

SELECT LEFT(meddelande,80) FROM tabell ...

Permalänk: https://www.webforum.nu/p/2068710

## #4 — Troxy, 2008-01-08T02:34Z

Jag tipsar om min egna utmärkta funktion  :h 
<http://www.webforum.nu/showthread.php?p=1320835#post1320835>

Permalänk: https://www.webforum.nu/p/2068716

## #5 — Pedda, 2008-01-08T06:50Z

> **Travoni skrev:**
>
> Du har även LEFT, RIGHT och SUBSTR i mySql så det kan du med fördel göra där.
> I alla fall inte hämta fler tecken än vad du skall använda.
> 
> SELECT LEFT(meddelande,80) FROM tabell ...

Ah, det finns det ju.
Vad mycket man glömmer när man inte använder det. :)

Permalänk: https://www.webforum.nu/p/2068721

## #6 — Andreas_J, 2008-01-08T18:53Z

Tack för hjälpen! Men jag får det inte riktigt att fungera, är väl för dålig på det här helt enkelt :P

Så här ser koden ut:

```
<?php

function show_posts($limit = 10)
{
global $wpdb;
//Put your phpBB and wordpress database info here:
$WPDB = "blabla_com"; //WP db name
$PHPBBDB = "blabla_com"; //phpBB db name
$USERS_TABLE = "phpbb_users"; //phpbb user table
$TOPICS_TABLE = "phpbb_topics"; //phpbb topics table
$POSTS_TABLE = "phpbb_posts"; //phpbb posts table
$SITEURL = "http://www.blabla.com/forum"; //Forum URL with trailing /
//Do not edit beyond this point

$wpdb->select($PHPBBDB);

$results = $wpdb->get_results("SELECT * FROM $POSTS_TABLE ORDER BY post_time DESC LIMIT $limit");

if ($results)
{
foreach ($results as $post)
{
$user = $wpdb->get_row("SELECT * FROM $USERS_TABLE WHERE user_id = $post->poster_id");
$topic = $wpdb->get_row("SELECT * FROM $TOPICS_TABLE WHERE topic_id = $post->topic_id");

if($user && $topic)
{

echo "<a href='" . $SITEURL . "/viewtopic.php?t=$post->topic_id'>";
echo "<strong>$user->username: </strong> $topic->topic_title<br>\n";
echo "</a>";
echo "</li>";
}
}
}

$wpdb->select($WPDB);
}

?>
```

Har verkligen försökt men fattar inte vart jag ska ändra? :\\
Som den skriver ut nu så skriver den: Användarnamn:Tråd. 

Någon som vet, eller behöver jag förklara något annat? :D tack i förhand

Permalänk: https://www.webforum.nu/p/2068898

## #7 — Andreas_J, 2008-01-11T12:59Z

Sorry, bumpar den här.

Ingen som vet hur jag ska göra? Har verkligen försökt, men fattar inte :\\

Permalänk: https://www.webforum.nu/p/2069580

## #8 — stevenet, 2008-01-11T15:34Z

Låt oss använda Troxys funktion.

```php
<?php

function str_truncate($input, $length, $tail = '...') {
	if (!strlen($input) > $length) {
		return $input;
	} else {
		$output = substr($input, 0, $length);
		$dot = strrpos($output, '.');
		$space = strrpos($output, ' ');
		$output = substr($output, 0, ($dot > $space? $dot : $space)) . $tail;
		return $output;
	}
}

function show_posts($limit = 10)
{
global $wpdb;
//Put your phpBB and wordpress database info here:
$WPDB = "blabla_com"; //WP db name
$PHPBBDB = "blabla_com"; //phpBB db name
$USERS_TABLE = "phpbb_users"; //phpbb user table
$TOPICS_TABLE = "phpbb_topics"; //phpbb topics table
$POSTS_TABLE = "phpbb_posts"; //phpbb posts table
$SITEURL = "http://www.blabla.com/forum"; //Forum URL with trailing /
//Do not edit beyond this point

$wpdb->select($PHPBBDB);

$results = $wpdb->get_results("SELECT * FROM $POSTS_TABLE ORDER BY post_time DESC LIMIT $limit");

if ($results)
{
foreach ($results as $post)
{
$user = $wpdb->get_row("SELECT * FROM $USERS_TABLE WHERE user_id = $post->poster_id");
$topic = $wpdb->get_row("SELECT * FROM $TOPICS_TABLE WHERE topic_id = $post->topic_id");

if($user && $topic)
{

echo "<a href='" . $SITEURL . "/viewtopic.php?t=$post->topic_id'>";
// ändra 20 till ett antal tecken som passar dig
echo "<strong>$user->username: </strong>".str_truncate($topic->topic_title,20)."<br>\n";
echo "</a>";
echo "</li>";
}
}
}

$wpdb->select($WPDB);
}

?>
```

Permalänk: https://www.webforum.nu/p/2069608

## #9 — Andreas_J, 2008-01-11T23:29Z

Fungerade perfekt! Tack så mycket för hjälpen :D

Permalänk: https://www.webforum.nu/p/2069717

## #10 — itpastorn, 2008-01-13T16:49Z

Vill bara tipsa om att PHP har en inbyggd funktion för smart uppdelning av strängar: Wordwrap

<http://docs.php.net/manual/en/function.wordwrap.php>

Med den kan vi snygga till Troxys funktion och troligen göra den snabbare:

```php
function str_truncate($input, $length, $tail = '&hellip;') {
    $lines = wordwrap($input,$length,"\n",true);
    $lines = explode("\n",$lines);
    return $lines[0];
}
```

Permalänk: https://www.webforum.nu/p/2070067

---

Tråden på webben: https://www.webforum.nu/amne/php/167870-begränsa-antalet-tecken-per-rad-i-mysql-select
