[SQL] hyperlinks in <li>-items worden niet in de tabel getoond.

  • Onderwerp starter Onderwerp starter 3svb
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

3svb

Gebruiker
Lid geworden
21 aug 2006
Berichten
35
Het zit zo.

Ik lees een aantal hyperlinken met hun naar uit een database uit.
Deze wil ik in een tabel plaatsen waarbij de linken ook list-items worden.
De 6de link wordt dan getoond in een nieuwe kolom ernaast ...enz.
Zodat het er zo komt uit te zien.

  • Link 1
  • Link 2
  • Link 3
  • Link 4
  • Link 5

hiernaast dan:

  • Link 6
  • Link 7
    ...

Mijn code schijnt niet te werken. In de broncode van mijn browser vind ik enkel dit terug:
HTML:
<table>
<tr></tr><tr></tr><tr></tr>....
</table>

Mijn PHP-code:
PHP:
<table>
   	 		<?php
			$sql = "SELECT * FROM links WHERE soort LIKE 'andere'";
			$resultaat = mysql_query($sql) or die (mysql_error());
			// ---- Settings ----
			$aantalOnderElkaar = 5;
			// ---- Settings ----
			$totaalGevonden = count($resultaat);
			
			$rest = $totaalGevonden % $aantalOnderElkaar;
			$aantalLus = ($totaalGevonden - $rest) / $aantalOnderElkaar;
			
			$v = 0;
			while($link = mysql_fetch_array($resultaat)) {
				if ($v <= ($totaalGevonden - $rest)){ 
					echo "<tr>";
					for ($i = 1; $i <= $aantalLus; $i++){
						echo "<td>";
						for ($j = 1; $j <= $totaalGevonden; $j++){
							?>
							<li><a href="<?php echo $link['url'];?>"><?php echo $link['naam'];?></a><br  /></li>
							<?php
							$v++;
						}
						echo "</td>";
					}
					echo "</tr>";
				} else {
					echo "<tr><td>";
					?>
					<li><a href="<?php echo $link['url'];?>"><?php echo $link['naam'];?></a><br  /></li>
					<?php
					echo "</td></tr>";
					$v++;
				}
			}
			?>
</table>

Iemand een idee?

Alvast bedankt !!
 
Maak van de volgende regel:

PHP:
$totaalGevonden = count($resultaat);

Hetvolgende:

PHP:
$totaalGevonden = mysql_num_rows($resultaat);
 
Maak van je for-loop eens dit:
PHP:
for ($j = 1; $j <= $totaalGevonden; $j++){ 
  echo '<li><a href="'. $link['url'] .'">'. $link['naam'] .'</a><br  /></li>';
  $v++; 
}

Je weet ook zeker dat $totaalGevonden een resultaat heeft? Probeer anders ipv van count($resultaat) eens mysql_num_rows($resultaat).
 
Maak van je for-loop eens dit:
PHP:
for ($j = 1; $j <= $totaalGevonden; $j++){ 
  echo '<li><a href="'. $link['url'] .'">'. $link['naam'] .'</a><br  /></li>';
  $v++; 
}
Dat maakt niet uit. Je kunt gewoon met PHP-tags afsluiten en overgaan in HTML midden in de code.
 
Dat maakt niet uit. Je kunt gewoon met PHP-tags afsluiten en overgaan in HTML midden in de code.

Idd, vind ik overzichtelijker en properder.

Ik heb er
PHP:
$totaalGevonden = mysql_num_rows($resultaat);
van gemaakt.

Er verschijnt nu toch al iets. Maar niet het juiste.
Kga nog verder moeten zoeken denk ik ... weten jullie misschien nog iets?

Hier het resultaat. http://dvb.sin.khk.be/start/index.php
 
Dat maakt niet uit. Je kunt gewoon met PHP-tags afsluiten en overgaan in HTML midden in de code.
Klopt, maar ik vind dit overzichtelijker plus dat de mijne het HTML netjes output. Die van jou miste nog een eindtag van de <a>

Wat moet er volgens jouw nog verschijnen dan?
 
Je moet onder de naam "Andere" kijken

Dit zou het resultaat moeten zijn.

Code:
# Warez-bb.org          # PredictionFootball.com          # Stand Tongerlo A
# ProjectW.org          # Rapidshare Search Engine
# ForumW.org           # Rapidshare
# Warezws.com        # FullADSL
# Prediction League   # Stand Tongerlo B


Nu geeft hij de eerste site 22 keer weer ...
 
Ik denk dat het door het IF-statement komt. Waarom zit die er precies in?
PHP:
if ($v <= ($totaalGevonden - $rest)){
 
Daar wordt de vergelijking gemaakt. zolang $v kleiner is dan het aantal rijen min de rest (aantal gevonden MOD aantal links onder elkaar) blijft de los doorlopen, als $v groter wordt dan moet er een nieuwe kolom aangemaakt worden.
Een vriend had het mo zo uitgelegd ... ook hem ik JAVA oefeningen gezien die ik ooit gemaakt heb.
Misschien zit ik er volledig naast ..
 
Volgens mij doet die vergelijking niet echt wat jij bedoelt, probeer anders dit eens:
PHP:
<table>
<?php
//Query opbouwen
$sql = "SELECT * FROM links WHERE soort LIKE 'andere'";
$resultaat = mysql_query($sql) or die (mysql_error());
// ---- Settings ----
$aantalRijen = 5;
$totaalGevonden = mysql_num_rows($resultaat);
$i = 1;

//Query resultaat weergeven
while($row = mysql_fetch_array($resultaat) AND $i <= $totaalGevonden)  { 
  if(($i % $aantalRijen-1) == 0) { 
    echo "<tr>\n"; 
   } 
  echo '<td><li><a href="'. $link['url'] .'">'. $link['naam'] .'</a></li></td>'; 
  if(($i % $aantalRijen) == 0) { 
    echo "\n</tr>\n"; 
  } 
  $i++; 
} 
?>
</table>
Deze code heb ik hier ook al eens inder een ander topic gebruikt, ik heb hem aangepast voor jouw script. Ik hoop dat je hiermee het resultaat wel krijgt.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan