Erstatning for rowspan i CSS

Skriv et svar

Smilies
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
BBkode er slået TIL
[img] er slået TIL
[flash] er slået FRA
[url] er slået TIL
Smilies er slået TIL
Emnegennemgang
   

Udvidet visning Emnegennemgang: Erstatning for rowspan i CSS

Re: Erstatning for rowspan i CSS

Indlæg af Kim Ludvigsen » tirs nov 03, 2020 17:51

Nej, og det ser ikke nemmere ud end det du endte med. Jeg kan se, at det andet svar fraråder at gøre det i MySQL-forespørgslen, så måske jeg har været helt forkert på den med at foreslå sådan en løsning.

Re: Erstatning for rowspan i CSS

Indlæg af pm-c » tirs nov 03, 2020 17:00

Hej Kim!

Er det noget i denne retning, du tænker på?

https://stackoverflow.com/questions/817 ... -one-query

Re: Erstatning for rowspan i CSS

Indlæg af Kim Ludvigsen » man okt 26, 2020 20:04

Hans resultat ligner i hvert fald det, du gerne vil have. Underligt at der ikke er nogen, der har foreslået en løsning i MySQL-forespørgslen - det skulle være muligt og bedre, og der sidder nogle skrappe nørder i det forum.

Re: Erstatning for rowspan i CSS

Indlæg af pm-c » man okt 26, 2020 19:52

Hej Kim!

Tror, jeg har fundet løsningen:
https://stackoverflow.com/questions/617 ... 5#30684275
Indlæg af Dinesh Patra.
Jeg skal lige have ændret det til PHP 7.2

Re: Erstatning for rowspan i CSS

Indlæg af pm-c » man sep 07, 2020 19:15

Hej Kim!
Jeg kan ikke finde ud af at anonymisere det på en fornuftig måde, så jeg har sendt et skærmdump til din mail. Der er din kode indarbejdet. Det, jeg ønsker, er et resultat uden dubletter af vejnavne og uden søjle 3. Din oprindelige kode resulterer i dublering af personnavnene.
Venlig hilsen
Peter

Re: Erstatning for rowspan i CSS

Indlæg af Kim Ludvigsen » man sep 07, 2020 17:27

Har du mulighed for at lave en tegning eller en prøveside med, hvordan tabellen skal se ud?

Umiddelbart vil jeg mene, at linjen:
echo "<td rowspan='2'>$row[svejnavnOgNr]</td>";

skulle være:
echo "<td rowspan='2'>$row[name]</td>";

Men jeg er ikke sikker på, hvordan du gerne vil have det til at se ud.

Re: Erstatning for rowspan i CSS

Indlæg af pm-c » man sep 07, 2020 15:43

Tror, der er en farbar vej med din kode. Jeg har prøvet at flette den ind i min egen, se nedenfor. Problemet er, at hver gang der vises et vejnavn i rowspan=2, er der forinden det samme vejnavn i "rowspan=1". Jeg mangler et eller andet, der sletter disse "rowspan=1".
Når jeg har fundet ud af det, er der problemet med flere end 2 navne knyttet til en adresse.

if ($result->num_rows > 0) {
$adresse = array();
// output data of each row
while($row = $result->fetch_assoc())
{
"<tbody"; // no echo
echo "<tr>";
if (in_array ($row[svejnavnOgNr], $adresse))

echo "<td rowspan='2'>$row[svejnavnOgNr]</td>";
else
echo "<td>$row[svejnavnOgNr]</td>";
echo "<td>" . $row['name'] . "</td>";
echo "</tr>";
$adresse[] = $row[svejnavnOgNr];
"</tbody>";
}
echo "</table>";
} else {
echo "0 results";
}

Re: Erstatning for rowspan i CSS

Indlæg af pm-c » søn sep 06, 2020 11:25

Meget interessant!
Jeg vil afprøve det. Hvis det virker vil jeg prøve at finde en løsning for, hvor der er 3 navne til en adresse (rowspan='3').

Re: Erstatning for rowspan i CSS

Indlæg af Kim Ludvigsen » lør sep 05, 2020 16:35

Hvis det er to forskellige tabeller, så skulle JOIN vist kunne bruges.

Det jeg tænkte på med PHP var at gemme hvert resultat i et array i løkken og så tjekke, om værdien allerede findes, noget i stil med:

$adresse = array();

Løkke-start

If (in_array ($row[svejnavnOgNr], $adresse))
echo "<td rowspan='2'>$row[name]</td>";
else
echo "<td>$row[svejnavnOgNr]</td><td>$row[name]</td>";

$adresse[] = $row[svejnavnOgNr];

Løkke-slut

Men det skulle kunne gøres i MYSQL-forespørgslen, hvilket vil være smartere, men jeg har ikke selv leget med det.

Re: Erstatning for rowspan i CSS

Indlæg af pm-c » lør sep 05, 2020 15:24

Anvendelse af GROUP BY forudsætter, så vidt jeg kan se, at vejnavn og navn tilhører samme tabel, hvilket ikke er tilfældet. Jeg kan i hvert fald ikke få noget fornuftigt ud af forsøg på at erstatte ORDER BY med GROUP BY.

Nu har jeg været igennem mysql's tutorial og PHP's, men ikke fundet noget om mangedobling af cellehøjden.

Jeg nøjes indtil videre med den skitserede løsning, som trods alt forbedrer overskueligheden.

Re: Erstatning for rowspan i CSS

Indlæg af Kim Ludvigsen » tors sep 03, 2020 18:31

Jeg ved ikke, om jeg bare er for sløv i øjeblikket, men jeg kan ikke helt følge, hvad du gerne vil have. Men jeg tror ikke, løsningen er i CSS, men at du i stedet løser problemet i PHP.

Muligvis kan du også løse det i SQL-forespørgslen. Det er ikke noget, jeg selv har leget med, men prøv at kigge på GROUP-funktionen:
https://www.w3schools.com/sql/sql_groupby.asp

Re: Erstatning for rowspan i CSS

Indlæg af pm-c » tors sep 03, 2020 17:27

Rettelse:
Navnene 3, 5 og 6 i efter kunEenAdresse.css skal stå i kolonne 2 sammen med de øvrige navne.

Erstatning for rowspan i CSS

Indlæg af pm-c » tors sep 03, 2020 17:17

Hej Forum!

Rowspan findes ikke i CSS, hvad gør man så?

Jeg får min tabel fra en database med dette kald:

<?php
...
$sql = "SELECT person.name, sommerhus.svejnavnOgNr
FROM person, sommerhus, ejers
WHERE person.pID = ejers.pID
AND ejers.sID = sommerhus.sID
ORDER BY svejnavnOgNr
limit 0, 60";

$result = $conn->query($sql);

echo "<table class='center'>
<caption>Sommerhusadresse og navn</caption>
<thead>
<tr>
<th><small>vejnavnOgNr<br />sommerhus</small></th>
<th>navn
</th>
</tr>
</thead>
";

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc())
{
echo "<tr>";
echo "<td>" . $row['svejnavnOgNr'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "0 results";
}

$conn->close();
?>

Det giver følgende output:

vejnavnOgNr navn
**************************
Præstegaardsvej 37 Navn 1
Præstegaardsvej 39 Navn 2
Præstegaardsvej 39 Navn 3
Præstegaardsvej 42 Navn 4
Præstegaardsvej 42 Navn 5
Præstegaardsvej 42 Navn 6
Præstegaardsvej 44 Navn 7
Præstegaardsvej 46 Navn 8
Præstegaardsvej 48 Navn 9
Præstegaardsvej 50 Navn 10
Præstegaardsvej 52 Navn 11
...

Jeg vil gerne have, at adressen kun nævnes én gang i et felt,
der fylder det samme som de tilknyttede navne. F.eks. skulle
feltet med Præstegaardsvej 39 fylde det dobbelte, og feltet
med Præstegaardsvej 42 fylde det tredobbelte.
Forsøger med følgende CSS:

Udsnit af kunEenAdresse.css:

/* Præstegaardsvej 39 */
tr:nth-child(3) td:nth-child(1) {
visibility: hidden;
}

/* Præstegaardsvej 42 */
tr:nth-child(5) td:nth-child(1) {
visibility: hidden;
}
tr:nth-child(6) td:nth-child(1) {
visibility: hidden;
}
...

Efter kunEenAdresse.css fås:

vejnavnOgNr navn
**************************
Præstegaardsvej 37 Navn 1
Præstegaardsvej 39 Navn 2
Navn 3
Præstegaardsvej 42 Navn 4
Navn 5
Navn 6
Præstegaardsvej 44 Navn 7
Præstegaardsvej 46 Navn 8
Præstegaardsvej 48 Navn 9
Præstegaardsvej 50 Navn 10
Præstegaardsvej 52 Navn 11
...

Det er ikke godt nok. Feltet foran Navn 3 er ikke Præstegaardsvej 39,
men et 'hidden' felt. Det samme gælder felterne ud for Navn 5 og 6.
Forøgelse af højden på Præstegaardsvej 39 og 42 bevirker blot, at
den pågældende række forstørres.
'display: none' i stedet for 'visibility: hidden' bevirker, at
Navn rykker frem til kolonne 1.

Hvordan får jeg et Præstegaardsvej 39 felt, der fylder det dobbelte,
og et Præstegaardsvej 42 felt, der fylder det tredobbelte, og hvor navnene
bliver på deres nuværende pladser?

Venlig hilsen
Peter

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36

Top

cron