---
title: "while"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/15625-while"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "webbmannen"
published: "2001-05-14T07:20:00.000Z"
updated: "2001-05-14T20:51:00.000Z"
replies: 7
views: 272
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/15625-while"
---

# while

## #1 — webbmannen, 2001-05-14T07:20Z

Kan någon vänlig själ säga var jag går bort mig någonstans.

Jag har en söksida som dels kan hämta specifika ord från db:n och nu skulle jag fixa till så det var möjligt att hämta alla ord som började på en viss bokstav. Detta vill sig inte och jag kan inte se felet.

Länken som ska hämta alla ord på A ser ut så här:

```
<a href="search_word.php?bokstav=A" class="link">A</a>
```

Koden för utförandet (samma sida som länken) ser ut så här:

```
if ($bokstav){
$conn = mysql_connect("","","");
mysql_select_db("");
$sql = "SELECT * FROM ordlista WHERE ordet LIKE '$bokstav%'";
$ordet = mysql_query($sql) or die("Select Failed!");
$val = mysql_fetch_array($ordet);
echo "<table width='100%' cellpadding='5'>";
echo "<tr>";
echo "<td bgcolor='#FFFFD7' colspan='2'><b>";
echo "Sökresultat:</b></td></tr>";
	if (!$val['ordet']){
	echo "<tr><td bgcolor='#FFFFD7'><b><font color='red'>";
	echo "Inga träffar!</b> - Ordlistan har inga ord som börjar på $bokstav.</font>";
	echo "</td></tr></table>";
	}
		else{
			while($val = mysql_fetch_array($ordet)) {
			echo "<tr><td bgcolor='#FFFFD7' valign='top' width='20%'><b><font color='red'>";
			echo $val['ordet'];
			echo "</font></b></td>";
			echo "<td bgcolor='#FFFFD7' width='80%'>";
			echo $val['texten'];
			echo "</td></tr>";
			}
		}
	echo "</table>";
unset ($conn);
}
```

Resultatet av denna kod blir endast en post trots att det finns fler.

/webb

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

## #2 — stevenet, 2001-05-14T17:42Z

Byt

```
$sql = "SELECT * FROM ordlista WHERE ordet LIKE '$bokstav%'";
```

mot

```
$sql = "SELECT * FROM ordlista WHERE ordet LIKE '%$bokstav%'";
```

\------------------
[SteveNet](http://www.webmarkit.net/stevenet)

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

## #3 — webbmannen, 2001-05-14T17:51Z

Nej det fungerar tyvärr inte (redan testat).

Det är inte själva while:en som det är fel på eller? Jag får ju upp en(1) post både när jag använder mitt och stevenets förslag.

Detta håller så smått på att ge gråa hår ( och det är man känslig för i min ålder ;) )

/webb

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

## #4 — LarsG, 2001-05-14T18:10Z

Innan din while loop så har du ett anrop till mysql_fetch_array för att kolla om det finns data. Det anropet hämtar första posten och sen kommer du in i while-loopen och den hämtar då andra posten som sedan skrivs ut.
Så istället för att anropa mysql_fetch_array så kan du använda 

```

if (!mysql_num_rows($result)) {
   echo "inga träffar \n";

} else {
  while($val = mysql_fetch_array($ordet)) {
```

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

## #5 — webbmannen, 2001-05-14T20:39Z

LarsG,

Nedan är koden med dina förslag ( som jag uppfattade dem ), men jag får fortfarande bara fram en post :l

```
$sql = "SELECT * FROM ordlista WHERE ordet LIKE '$bokstav%'";
$ordet = mysql_query($sql) or die("Select Failed!");
echo "<table width='100%' cellpadding='5'>";
echo "<tr>";
echo "<td bgcolor='#FFFFD7' colspan='2'><b>";
echo "Sökresultat:</b></td></tr>";
	if (!mysql_num_rows($ordet)) {
	echo "<tr><td bgcolor='#FFFFD7'><b><font color='red'>";
	echo "Inga träffar!</b> - Ordlistan har inga ord som börjar på $bokstav.</font>";
	echo "</td></tr>";
	}
		else{
			$val = mysql_fetch_array($ordet);
			while($val = mysql_fetch_array($ordet)) {
			echo "<tr><td bgcolor='#FFFFD7' valign='top' width='20%'><b><font color='red'>";
			echo $val['ordet'];
			echo "</font></b></td>";
			echo "<td bgcolor='#FFFFD7' width='80%'>";
			echo $val['texten'];
			echo "</td></tr>";
			}
		}
	echo "</table>";
```

/webb

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

## #6 — LarsG, 2001-05-14T20:44Z

```
$sql = "SELECT * FROM ordlista WHERE ordet LIKE '$bokstav%'";
$ordet = mysql_query($sql) or die("Select Failed!");
echo "<table width='100%' cellpadding='5'>";
echo "<tr>";
echo "<td bgcolor='#FFFFD7' colspan='2'><b>";
echo "Sökresultat:</b></td></tr>";
if (!mysql_num_rows($ordet)) {
echo "<tr><td bgcolor='#FFFFD7'><b><font color='red'>";
echo "Inga träffar!</b> - Ordlistan har inga ord som börjar på $bokstav.</font>";
echo "</td></tr>";
}
else{

[b]// denna rad skall bort helt 
// $val = mysql_fetch_array($ordet);
//[/b]

while($val = mysql_fetch_array($ordet)) {
echo "<tr><td bgcolor='#FFFFD7' valign='top' width='20%'><b><font color='red'>";
echo $val['ordet'];
echo "</font></b></td>";
echo "<td bgcolor='#FFFFD7' width='80%'>";
echo $val['texten'];
echo "</td></tr>";
}
}
echo "</table>";
```

Så tänkte jag

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

## #7 — webbmannen, 2001-05-14T20:50Z

**LarsG**, ditt namn är skrivet med STORA bokstäver på väggen framför mig - med guldpenna :e

Det fungerar - Ett stort tack :)

/webb

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

## #8 — LarsG, 2001-05-14T20:51Z

Man kan ju inte riskera att du får gråa hår.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/15625-while
