TABLE: rijen zonder tussenruimte (Opgelost)
Guido2 - 15/07/2010 08:14 (laatste wijziging 16/07/2010 16:01)
Nieuw lid
In mijn tabel is tussenruimte tussen de rijen en die wil ik niet.
Hoe kan ik ervoor zorgen dat de rijen goed aansluiten?
Volgens de code komt volgens mij alles keurig onder elkaar. Of heb ik een fout gemaakt?
Wordt die tussenruimte soms veroorzaakt doordat ik gegevens uit mijn database haal?
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf8_unicode_ci" />
<title></title>
<link rel="stylesheet" href="styles.css" type="text/css" media="print" />
<link href="opmaak3.css" rel="stylesheet" type="text/css"/>
<?
include ("db_connect.inccc.php");
$query = "SELECT pas.pasid, pas.optie1, pas.optie2, pas.optie3, pas.optie4, pas.optie5, pas.optie6, pas.optie7, pas.optie8, pas.optie9, pas.optie10, pas.optie11, pas.optie12, pas.optie13, pas.optie14, pas.optie15, pas.optie16, pas.optie17, pas.optie18, pas.optie19, pas.optie20, pas.optie21, pas.optie22, pas.optie23, pas.optie24, pas.optie25, pas.eerste, pas.tweede, pas.derde, pas.vierde, pas.vijfde, pas.zesde, pas.zevende, pas.achtste, pas.negende, pas.tiende, pas.elfde, pas.twaalfde, pas.dertiende, pas.veertiende, pas.vijftiende, pas.zestiende, pas.zeventiende, pas.achttiende, pas.negentiende, pas.extra1, pas.extra2, pas.extra3, pas.extra4, pas.extra5, pas.extra6, pas.extra7, pas.extra8, pas.extra9, pas.extra10, lijst.llid, lijst.leer, lijst.klas, lijst.geht, lijst.naam, lijst.stat, lijst.pode, lijst.plts, lijst.teer, lijst.daum
FROM pas
INNER JOIN lijst
ON pas.extra9=lijst.leer";
$resultaat = null; // hierin wordt het resultaat van de query opgeslagen
$resultaat = mysql_query($query, $db);
mysql_close($db); // database afsluiten
?>
</head>
<body>
<?php
while(list($pasid, $optie1, $optie2, $optie3, $optie4, $optie5, $optie6, $optie7, $optie8, $optie9, $optie10, $optie11, $optie12, $optie13, $optie14, $optie15, $optie16, $optie17, $optie18, $optie19, $optie20, $optie21, $optie22, $optie23, $optie24, $optie25, $eerste, $tweede, $derde, $vierde, $vijfde, $zesde, $zevende, $achtste, $negende, $tiende, $elfde, $twaalfde, $dertiende, $veertiende, $vijftiende, $zestiende, $zeventiende, $achttiende, $negentiende, $extra1, $extra2, $extra3, $extra4, $extra5, $extra6, $extra7, $extra8, $extra9, $extra10, $llid, $leer, $klas, $geht, $naam, $stat, $pode, $plts, $teer, $daum) = mysql_fetch_row($resultaat)){
{?>
<h4>
<TABLE>
<TD><?php echo $naam; ?></TD>
<TD><?php echo $klas; ?></TD><TD><?php
if(!empty($optie8)){
echo ' ' .$optie8. ' ';
}
?>
</TD>
<TD><?php
if(!empty($negentiende)){
echo ' ' .$negentiende. ' ';
}
?>
</TD><TD><?php
if(!empty($optie11)){
echo ' ' .$optie11. ' ';
}
?>
</TD><TD><?php
if(!empty($zevende)){
echo ' ' .$zevende. ' ';
}
?>
</TD><TD><?php
if(!empty($optie25)){
echo ' ' .$optie25. ' ';
}
?>
</TD><TD><?php
if(!empty($achtste)){
echo ' ' .$achtste. ' ';
}
?>
</TD><TD><?php
if(!empty($negende)){
echo ' ' .$negende. ' ';
}
?>
</TD><TD><?php
if(!empty($tiende)){
echo '' .$tiende. ' ';
}
?>
</TD><TD><?php
if(!empty($elfde)){
echo ' ' .$elfde. ' ';
}
?>
</TD><TD><?php
if(!empty($zeventiende)){
echo ' ' .$zeventiende. ' ';
}
?>
</TD><TD><?php
if(!empty($twaalfde)){
echo ' ' .$twaalfde. ' ';
}
?>
</TD><TD><?php
if(!empty($extra1)){
echo ' ' .$extra1. ' ';
}
?>
</TD><TD><?php
if(!empty($optie12)){
echo ' ' .$optie12. ' ';
}
?>
</TD><TD><?php
if(!empty($optie13)){
echo ' ' .$optie13. ' ';
}
?>
</TD><TD><?php
if(!empty($extra8)){
echo ' ' .$extra8. ' ';
}
?>
</TD><TD><?php
if(!empty($optie14)){
echo ' ' .$optie14. ' ';
}
?>
</TD><TD><?php
if(!empty($vijfde)){
echo ' ' .$vijfde. ' ';
}
?>
</TD><TD><?php
if(!empty($eerste)){
echo ' ' .$eerste. ' ';
}
?>
</TD><TD><?php
if(!empty($dertiende)){
echo ' ' .$dertiende. ' ';
}
?>
</TD><TD><?php
if(!empty($veertiende)){
echo ' ' .$veertiende. ' ';
}
?>
</TD><TD><?php
if(!empty($tweede)){
echo ' ' .$tweede. ' ';
}
?>
</TD><TD><?php
if(!empty($vijftiende)){
echo ' ' .$vijftiende. ' ';
}
?>
</TD><TD><?php
if(!empty($zestiende)){
echo ' ' .$zestiende. ' ';
}
?>
</TD><TD><?php
if(!empty($derde)){
echo ' ' .$derde. ' ';
}
?>
</TD><TD><?php
if(!empty($optie15)){
echo ' ' .$optie15. ' ';
}
?>
</TD><TD><?php
if(!empty($optie16)){
echo ' ' .$optie16. ' ';
}
?>
</TD><TD><?php
if(!empty($optie17)){
echo ' ' .$optie17. ' ';
}
?>
</TD>
</TABLE>
</h4>
</h1>
<?
}
}
?>
<?php
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf8_unicode_ci" />
<title></title>
<link rel="stylesheet" href="styles.css" type="text/css" media="print" />
<link href="opmaak3.css" rel="stylesheet" type="text/css"/>
<?
include ( "db_connect.inccc.php" ) ;
$query = "SELECT pas.pasid, pas.optie1, pas.optie2, pas.optie3, pas.optie4, pas.optie5, pas.optie6, pas.optie7, pas.optie8, pas.optie9, pas.optie10, pas.optie11, pas.optie12, pas.optie13, pas.optie14, pas.optie15, pas.optie16, pas.optie17, pas.optie18, pas.optie19, pas.optie20, pas.optie21, pas.optie22, pas.optie23, pas.optie24, pas.optie25, pas.eerste, pas.tweede, pas.derde, pas.vierde, pas.vijfde, pas.zesde, pas.zevende, pas.achtste, pas.negende, pas.tiende, pas.elfde, pas.twaalfde, pas.dertiende, pas.veertiende, pas.vijftiende, pas.zestiende, pas.zeventiende, pas.achttiende, pas.negentiende, pas.extra1, pas.extra2, pas.extra3, pas.extra4, pas.extra5, pas.extra6, pas.extra7, pas.extra8, pas.extra9, pas.extra10, lijst.llid, lijst.leer, lijst.klas, lijst.geht, lijst.naam, lijst.stat, lijst.pode, lijst.plts, lijst.teer, lijst.daum
FROM pas
INNER JOIN lijst
ON pas.extra9=lijst.leer" ;
$resultaat = null ; // hierin wordt het resultaat van de query opgeslagen
?>
</head>
<body>
<?php
while ( list ( $pasid , $optie1 , $optie2 , $optie3 , $optie4 , $optie5 , $optie6 , $optie7 , $optie8 , $optie9 , $optie10 , $optie11 , $optie12 , $optie13 , $optie14 , $optie15 , $optie16 , $optie17 , $optie18 , $optie19 , $optie20 , $optie21 , $optie22 , $optie23 , $optie24 , $optie25 , $eerste , $tweede , $derde , $vierde , $vijfde , $zesde , $zevende , $achtste , $negende , $tiende , $elfde , $twaalfde , $dertiende , $veertiende , $vijftiende , $zestiende , $zeventiende , $achttiende , $negentiende , $extra1 , $extra2 , $extra3 , $extra4 , $extra5 , $extra6 , $extra7 , $extra8 , $extra9 , $extra10 , $llid , $leer , $klas , $geht , $naam , $stat , $pode , $plts , $teer , $daum ) = mysql_fetch_row ( $resultaat ) ) {
{ ?>
<h4>
<TABLE>
<TD>
<?php echo $naam ; ?> </TD>
<TD>
<?php echo $klas ; ?> </TD><TD>
<?php }
?>
</TD>
<TD><?php
if ( ! empty ( $negentiende ) ) { echo ' ' . $negentiende . ' ' ; }
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
if ( ! empty ( $zeventiende ) ) { echo ' ' . $zeventiende . ' ' ; }
?>
</TD><TD><?php
echo ' ' . $twaalfde . ' ' ; }
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
echo ' ' . $dertiende . ' ' ; }
?>
</TD><TD><?php
echo ' ' . $veertiende . ' ' ; }
?>
</TD><TD><?php
}
?>
</TD><TD><?php
echo ' ' . $vijftiende . ' ' ; }
?>
</TD><TD><?php
echo ' ' . $zestiende . ' ' ; }
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD><TD><?php
}
?>
</TD>
</TABLE>
</h4>
</h1>
<?
}
}
?>
19 antwoorden
Gesponsorde links
Stijn - 15/07/2010 08:26
PHP expert
<TABLE> moet <table cellspacing="0" cellpadding="0"> worden.
Guido2 - 15/07/2010 08:48 (laatste wijziging 15/07/2010 12:31)
Nieuw lid
Ik heb in mijn html boven de opsomming
<td><?php echo $naam; ?></td>
<td><?php echo $klas; ?></td><td><?php
if(!empty($optie8)){
echo ' ' .$optie8. ' ';
}
?>
</td>
<td><?php
if(!empty($negentiende)){
echo ' ' .$negentiende. ' ';
}
?>...
<table cellspacing="0" cellpadding="0">
gezet. De teksten verschuiven dan wel iets naar links, maar de ruimte tussen de rijen blijft.
Daarna heb ik <table> veranderd in <table border celspacing=0>
Maar dat gaf geen resultaat.
Ik heb deze code als volgt in opmaak3.css gezet, maar dan verschuift alles iets naar links en blijft de ruimte tussen de rijen nog even groot.
table { border-collapse: collapse; table-layout: fixed; width: 240px; height: 60px;}
<table cellspacing="0" cellpadding="0">
td { border: 1px solid #C0C0C0; text-align: left;
width: 110px; }
<table border="1" >
Wat doe ik fout?
Guido2 - 15/07/2010 12:29 (laatste wijziging 15/07/2010 12:32)
Nieuw lid
Dank je wel. Ik heb de hoofdletters veranderd in kleine letters.
Maar ik weet niet wat je bedoelt met: Je mist [code=html4strict]cellpadding="0"
Hij staat er wel bij (bovenaan de html-code en in de css).
Staat deze code soms op de verkeerde plaats. Waar moet ik dit typen?
Martijn - 15/07/2010 12:53
Crew PHP
ik zie ook geen <tr> staan?
Guido2 - 15/07/2010 13:09
Nieuw lid
Volgens mij hoeft de <tr> niet, omdat ik de gegevens uit de database opvraag.
Iedere nieuwe rij is een nieuwe rij in de database.
Is dat soms de reden dat er zo'n grote tussenruimte is?
Martijn - 15/07/2010 13:21
Crew PHP
een tr moet altijd. T able R ow is gewoon verplicht. Elke regel krijgt een eigen tr.
Verder, je hebt een <h1> en een <h4> om je table staan? Dat is dus helemaal fout
Guido2 - 15/07/2010 13:28 (laatste wijziging 15/07/2010 13:59)
Nieuw lid
Ik heb de <tr> aan het begin en aan het einde van de regel gezet (na <table> en voor </table>).
De <h1> en <h4> heb ik aangepast. Dank je wel.
Als ik [code=html4strict]<table border cellspacing=0> in plaats van [code=html4strict] <table> zet, gaan alle teksten helemaal naar links, en de tussenruimte blijft gelijk.
Datzelfde gebeurt als ik <table cellspacing="0" cellpadding="0"> in de css.opmaak zet.
Zet ik de code soms op de verkeerde plaats?
Bertjuh - 15/07/2010 14:46
HTML interesse
Je moet voor iedere rij een <tr> zetten. Dus:
<table cellpadding="0" cellspacing="0"> <!-- let op de 2 'ellen' ceLLpadding -->
<!-- uit de database -->
<tr><td> blabla </td><td>enz</td></tr>
<tr><td> blabla </td><td>enz</td></tr>
<tr><td> blabla </td><td>enz</td></tr>
<!-- einde uit database -->
</table>
Guido2 - 15/07/2010 15:18
Nieuw lid
Dank je wel.
De gegevens vormen samen 1 rij, dus ik zet de <table cellpadding="0" cellspacing="0">
<tr> aan het begin en
</td></tr></table> aan het eind.
Maar de witte regel tussen de rijen blijft bestaan.
Zie onderstaande (verkorte) code.
<?php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf8_unicode_ci" />
<title></title>
<link rel="stylesheet" href="styles.css" type="text/css" media="print" />
<link href="opmaak3.css" rel="stylesheet" type="text/css"/>
<?
include ("db_connect.inccc.php");
$query = "SELECT pas.pasid, pas.optie1, pas.optie2, pas.optie3, pas.optie4, pas.optie5, pas.optie6, pas.optie7, pas.optie8, pas.optie9, pas.optie10, pas.optie11, pas.optie12, pas.optie13, pas.optie14, pas.optie15, pas.optie16, pas.optie17, pas.optie18, pas.optie19, pas.optie20, pas.optie21, pas.optie22, pas.optie23, pas.optie24, pas.optie25, pas.eerste, pas.tweede, pas.derde, pas.vierde, pas.vijfde, pas.zesde, pas.zevende, pas.achtste, pas.negende, pas.tiende, pas.elfde, pas.twaalfde, pas.dertiende, pas.veertiende, pas.vijftiende, pas.zestiende, pas.zeventiende, pas.achttiende, pas.negentiende, pas.extra1, pas.extra2, pas.extra3, pas.extra4, pas.extra5, pas.extra6, pas.extra7, pas.extra8, pas.extra9, pas.extra10, lijst.llid, lijst.leer, lijst.klas, lijst.geht, lijst.naam, lijst.stat, lijst.pode, lijst.plts, lijst.teer, lijst.daum
FROM pas
INNER JOIN lijst
ON pas.extra9=lijst.leer";
$resultaat = null; // hierin wordt het resultaat van de query opgeslagen
$resultaat = mysql_query($query, $db);
mysql_close($db); // database afsluiten
?>
</head>
<body>
<?php
while(list($pasid, $optie1, $optie2, $optie3, $optie4, $optie5, $optie6, $optie7, $optie8, $optie9, $optie10, $optie11, $optie12, $optie13, $optie14, $optie15, $optie16, $optie17, $optie18, $optie19, $optie20, $optie21, $optie22, $optie23, $optie24, $optie25, $eerste, $tweede, $derde, $vierde, $vijfde, $zesde, $zevende, $achtste, $negende, $tiende, $elfde, $twaalfde, $dertiende, $veertiende, $vijftiende, $zestiende, $zeventiende, $achttiende, $negentiende, $extra1, $extra2, $extra3, $extra4, $extra5, $extra6, $extra7, $extra8, $extra9, $extra10, $llid, $leer, $klas, $geht, $naam, $stat, $pode, $plts, $teer, $daum) = mysql_fetch_row($resultaat)){
{?>
<h4>
<table cellpadding="0" cellspacing="0">
<tr><td><?php echo $naam; ?></td>
<td><?php echo $klas; ?></td><td><?php
if(!empty($optie8)){
echo ' ' .$optie8. ' ';
}
?>
</td>
<td><?php
if(!empty($negentiende)){
echo ' ' .$negentiende. ' ';
}
?>
</td>
…
</td><td><?php
if(!empty($optie16)){
echo ' ' .$optie16. ' ';
}
?>
</td><td><?php
if(!empty($optie17)){
echo ' ' .$optie17. ' ';
}
?>
</td>
</tr>
</table>
</h4>
<?
}
}
?>
[code=html4strict]
Bertjuh - 15/07/2010 15:47
HTML interesse
Wat staat er in je css? Heb je een link?
Guido2 - 15/07/2010 19:09 (laatste wijziging 16/07/2010 16:02)
Nieuw lid
Hierbij voeg ik de link van menu_style en opmaak.
In de opmaak heb ik de css van de tabel getypt
tomate - 15/07/2010 21:14 (laatste wijziging 15/07/2010 21:15)
Lid
Je while functie staat gewoon verkeerd. Voor elke nieuwe rij uit je database maak hij een hele nieuwe tabel in je HTML-code, das dus niet logisch. Hij moet enkel een nieuwe rij aanmaken (<tr></tr>). Ik heb het hieronder een beetje aangepast, dit zou moeten werken.
Nu begrijp ik wel niet waarom je het volgende doet.
if(!empty($optie17)){
echo ' ' .$optie17. ' ';}
// Volgens mij werkt het onderstaande ook gewoon, want als hij leeg is kan hij niets zetten. //Dus je moet dit niet controleren, tenzij je ook nog een else toevoegt.
echo $optie17; // => Werkt normaal ook
}
echo ' ' . $optie17 . ' ' ; }
// Volgens mij werkt het onderstaande ook gewoon, want als hij leeg is kan hij niets zetten. //Dus je moet dit niet controleren, tenzij je ook nog een else toevoegt.
echo $optie17 ; // => Werkt normaal ook }
Het volgende zou je probleem moeten oplossen, die php-code moet je maar aanpassen, want ik weet niet wat de bedoeling ervan is
<table cellpadding="0" cellspacing="0">
<? while(){ // Hier je Whilegegevens?>
<tr>
<td><? echo $naam; ?></td>
<td><? echo $klas; ?></td>
<td><? echo $optie8;?></td>
<td><? echo $negentiende; ?></td>
<!-- Hier had je gegevens weggelaten -->
<td><? echo $optie16; ?></td>
<td><? echo $optie17;?></td>
</tr>
<?}?>
</table>
<table cellpadding="0" cellspacing="0">
<? while ( ) { // Hier je Whilegegevens?>
<tr>
<td>
<? echo $naam ; ?> </td>
<td>
<? echo $klas ; ?> </td>
<td>
<? echo $optie8 ; ?
> </td>
<td>
<? echo $negentiende ; ?> </td>
<!-- Hier had je gegevens weggelaten -->
<td>
<? echo $optie16 ; ?> </td>
<td>
<? echo $optie17 ; ?
> </td>
</tr>
<? } ?>
</table>
Guido2 - 16/07/2010 09:40 (laatste wijziging 16/07/2010 16:02)
Nieuw lid
Dank je wel.
Deze schrijfwijze is inderdaad een stuk korter en het resultaat is hetzelfde. Ik moet de while-lus wel boven het begin van de table plaatsen. Anders komen alleen de gegevens van de eerste persoon in de tabel te staan.
Maar er blijft ruimte tussen de rijen. Ik heb de code van de index.php die achter de link zit van de eerste tekst van dit forumbericht (zie ook onderaan), aangepast. Dan kun je zien dat er niets veranderd is. De codes van de drie documenten staan in de link 'codes'.
Zit mijn fout dan toch in de opmaak3.ccs en de menu_style?
Het valt mij op dat ik bovenaan in mijn code niet eens naar menu_style.css verwijs, maar naar styles.css.
Guido2 - 16/07/2010 12:39
Nieuw lid
Hij werkt.
En de tussenruimte is eindelijk weg. Hoera!!
Ik heb graag meer uitleg
Guido2 - 16/07/2010 13:17 (laatste wijziging 16/07/2010 13:42)
Nieuw lid
Deze code werkt ook.
Hij staat nu op internet. Uit de tweede code blijkt dat <table cellpadding="0" cellspacing="0"> ook boven de while-lus kan staan. Is dit beter? Of accepteert PHP veel oplossingen?
Verder is het voor mij onduidelijk hoe een lettertype <h4> zoveel problemen kan opleveren. Ik had de fout hier echt niet gezocht. Heeft dit te maken met de regels rond de tabellen?
Waarom is deze query onveilig? Ik weet niet wat ermee kan gebeuren.
Heb je een internetlink voor informatie?
Gesponsorde links
Dit onderwerp is gesloten .