Du får inte ha text direkt i <table>. Ta bort <table> eller lägg till <tr><td> runt texten.
Problem 2 löser sig när du fixat problem 1... :) (Tabeller måste ha en eller fler <tr>.)
1 svar · 529 visningar · startad av mlibemelie
Hej!
Jag har problem med två valideringsfel som jag inte kan förstå.
Problem 1:
# Error Line 43, Column 0: character data is not allowed here.
Du sökte inte efter något! Var god försök igen.
You have used character data somewhere it is not permitted to appear. Mistakes that can cause this error include:
\* putting text directly in the body of the document without wrapping it in a container element (such as a \<p\>aragraph\</p\>), or
\* forgetting to quote an attribute value (where characters such as "%" and "/" are common, but cannot appear without surrounding quotes), or
\* using XHTML-style self-closing tags (such as \<meta ... /\>) in HTML 4.01 or earlier. To fix, remove the extra slash ('/') character. For more information about the reasons for this, see Empty elements in SGML, HTML, XML, and XHTML.
php koden:
elseif(empty($searchterm))
{
echo "Du sökte inte efter något! Var god försök igen.";
}
Problem 2:
# Error Line 44, Column 7: end tag for "table" which is not finished.
</table>
Most likely, you nested tags and closed them in the wrong order. For example <p><em>...</p> is not acceptable, as <em> must be closed before <p>. Acceptable nesting is: <p><em>...</em></p>
Another possibility is that you used an element which requires a child element that you did not include. Hence the parent element is "not finished", not complete. For instance, in HTML the <head> element must contain a <title> child element, lists (ul, ol, dl) require list items (li, or dt, dd), and so on.
Kod (ligger precis utanför php koden):
[B]<table>[/B]
<?php
mysql_connect("studsql.itn.liu.se","lego_guest",""); // Logga in på databasservern
mysql_select_db("lego"); // Välj databas
// hämtar information från den angivna tabellen
$result = mysql_query("SELECT * FROM sets WHERE sets.SetID LIKE '$searchterm%' OR sets.Setname LIKE '$searchterm%'");
//felkontroll mysql_num_rows kollar hur många sökningar som hittats, om 0 så står det att inte finns nån funnen data
if(mysql_num_rows($result) == 0) {
echo "Ingen funnen data!";
}
//Om man inte skriver in något i sökrutan och söker visas detta:
elseif(empty($searchterm))
{
echo "Du sökte inte efter något! Var god försök igen.";
}
elseif (mysql_num_rows($result) !==0) {
echo '<tr id="info_table"><td id="setname_width">Setname/Partname</td><td class="center_text">Årtal</td><td class="center_text">Id-nummer</td><td class="center_text">Bild</td></tr>';
}
//kollar så att sökfältet inte är tomt när datan skickas
if (isset($searchterm) && !empty($searchterm)) {
while($row = mysql_fetch_array( $result ))
{
// skriver ut innehållet i raderna
echo ('<tr id="set_color">');
echo ('<span id="rubrik">');
//kollar om advanced_search.html körs och om lego_name, the_year och lego_id är ikryssad
if (!isset($_POST['is_advanced']) || ($set_checked == "lego_name")) {
echo ('<td class="rubrik" >');
echo $row['Setname'];
echo ('</td>');
}
echo (" ");
if (!isset($_POST['is_advanced']) || ($year_checked == "the_year")) {
echo ('<td class="rubrik">');
echo $row['Year'];
echo ('</td>');
}
echo (" ");
if (!isset($_POST['is_advanced']) || ($id_lego_checked == "lego_id")) {
echo ('<td class="rubrik">');
echo $row['SetID'];
echo ('</td>');
}
echo ("</span>");
echo ("</td>");
//Visar bilderna för de olika satserna
echo ('<td class="td_image">');
echo '<img src="http://www.bricklink.com/S/';
$set_id = $row['SetID'];
echo "$set_id";
echo '.gif"';
echo " />";
echo ("</td></tr>");
echo ("");
$result2 = mysql_query("SELECT parts.Partname FROM parts,inventory,sets WHERE inventory.ItemID = parts.PartID AND sets.SetID = inventory.SetID AND sets.SetID = '".$row['0']."'");
$images = mysql_query("SELECT * FROM inventory,parts,sets WHERE (Setname LIKE '%$searchterm%' OR sets.SetID LIKE '$searchterm%') AND inventory.ItemID = parts.PartID AND inventory.SetID = '".$row['0']."'");
//Om det inte finns några delar att visa i en sats så står det detta
if(mysql_num_rows($result2) == 0) {
echo '<tr><td colspan="4" class="color1"><h3>Ingen beskrivning finns till denna byggsats!</h3></tr></td>';
}
while ($row2 = mysql_fetch_array( $result2 ))
{
echo ("\n");
echo ('<tr class="color1">');
echo ('<td colspan="3">');
echo $row2['Partname'];
echo ("</td>");
// om is_advanced inte körs eller att pics_checked = pic så ska den visa bilderna
if (!isset($_POST['is_advanced']) || ($pics_checked == "pic")) {
echo ('<td class="td_image">');
$row3 = mysql_fetch_array( $images );
//Lägger till bilderna på de delar som ingår i satsen
$color_image = $row3['ColorID'];
echo '<img src="http://www.bricklink.com/P/';
echo "$color_image";
echo "/";
$part_id = $row3['PartID'];
echo "$part_id";
echo '.gif"';
echo " />";
echo "<br />";
echo ("</td></tr>");
}
}
}
}
else {
//Om det inte finns något resultat att visa så visas "null" alltså ingenting
null;
}
?>
[B]</table>[/B]
</div>
</div>
Du får inte ha text direkt i <table>. Ta bort <table> eller lägg till <tr><td> runt texten.
Problem 2 löser sig när du fixat problem 1... :) (Tabeller måste ha en eller fler <tr>.)