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
------------------
Vem ska du göra glad imorgon?
[Redigerat av webbmannen den 14 maj 2001]
stevenetMedlem sedan juni 20001 251 inlägg Byt
$sql = "SELECT * FROM ordlista WHERE ordet LIKE '$bokstav%'";
mot
$sql = "SELECT * FROM ordlista WHERE ordet LIKE '%$bokstav%'";
------------------
SteveNet
------------------
- Det var motgräs!
Roland Sandberg förklarar varför han missade öppet mål.
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
------------------
Vem ska du göra glad imorgon?
LarsGMedlem sedan dec. 200012 464 inlägg 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)) {
------------------
essentitia preter non sans multiplicandum
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
------------------
Vem ska du göra glad imorgon?
LarsGMedlem sedan dec. 200012 464 inlägg $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
------------------
essentitia preter non sans multiplicandum
LarsG, ditt namn är skrivet med STORA bokstäver på väggen framför mig - med guldpenna :e
Det fungerar - Ett stort tack :)
/webb
------------------
Vem ska du göra glad imorgon?
LarsGMedlem sedan dec. 200012 464 inlägg Man kan ju inte riskera att du får gråa hår.
------------------
essentitia preter non sans multiplicandum