Du vil gøre det nemmere for dig selv, hvis du opdeler dine data i flere tabeller så du undgår at de samme data gentager sig i de forskellige rækker (en såkaldt normalisering).
Ja, det er korrekt, bortset fra at den ikke udskriver noget der. $out = og $out .= sørger bare for at samle outputtet i en variabel, som bliver udskrevet til sidst med: echo $out; Det kan tit være en fordel at samle output fra fx løkker på den måde, istedet for at have en masse langsomme echo sætninger.
$out = "<TR><TD>"; tildeler: "<TR><TD>" til variablen: $out. $out .= "<H3>$data[afdeling]</H3>"; tilføjer: "<H3>$data[afdeling]</H3>" til $out, så den nu indeholder: "<TR><TD><H3>$data[afdeling]</H3>" og så fremdeles.
Hvis du fx har brug for en mere overskuelig html-kode, kan du tilføje \n de steder hvor du ønsker et linieskift i sourcekoden. Fx: $out = "<TR>\n<TD>\n"; $out .= "<H3>$data[afdeling]</H3>\n"; vil give: <TR> <TD> <H3>$data[afdeling]</H3> Dette betyder intet for browseren, men giver som sagt en mere overskuelig kode til fx debug.
disse vedrører ikke selve tabeldannelsen, som du hjalp med, det er bare selve designopstillingen, der gør de skal være der, men for en sikkerheds skyld, hvis du gider - er den så ok mht $out osv.
---------------------
Kan du hjælpe yderligere med et andet problem - selvfølgelige nye points *S* ???
Ja, umiddelbart ser det rigtigt ud. Er du i tvivl kan du indsætte \n som jeg beskrev: 09/02-2004 12:40:32. Det gør det meget nemmere at undersøge kildekoden fra den færdige html side. Mht. til det andet problem, vil jeg da gerne prøve at se på det.
CREATE TABLE sider ( id int(11) NOT NULL auto_increment, indeks tinytext NOT NULL, godkendt tinytext NOT NULL, filnavn tinytext NOT NULL, afd tinytext NOT NULL, list tinytext NOT NULL, afdeling tinytext NOT NULL, overskrift tinytext NOT NULL, indhold text NOT NULL, kopi tinytext NOT NULL, dag tinytext NOT NULL, appetit tinytext NOT NULL, PRIMARY KEY (id), FULLTEXT KEY afd (afd) ) TYPE=MyISAM COMMENT='alle almindelige sider';
tabel 'priser' sådanne:
CREATE TABLE priser ( id int(11) NOT NULL auto_increment, indeks tinytext NOT NULL, godkendt tinytext NOT NULL, filnavn tinytext NOT NULL, afd tinytext NOT NULL, list tinytext NOT NULL, afdeling tinytext NOT NULL, overskrift tinytext NOT NULL, indhold text NOT NULL, pris tinytext NOT NULL, dag tinytext NOT NULL, PRIMARY KEY (id), FULLTEXT KEY tekst (indhold,pris) ) TYPE=MyISAM COMMENT='alle almindelige sider';
men søgningen i 'priser' behøver kun vise nogenlunde det samme som søgning i 'sider'
nok ikke så smart alligevel, hvis du mener 2 søgefelter. Det skal være sådan at hvis man i søgefeltet skriver et ord som både finde i 'sider' og i 'priser' skal søgningen vise begge. Jeg kan ikke se hvordan de fra samme søgefelt søger i begge og så sætter dem sammen og viser resultatet efter hinanden. Men der er måske en løsning?
Næ, jeg mener ikke med to søgefelter, men at lave en forespørgsel i tabellen priser magen til den anden (med samme søgeord) og derefter en udskrivning fra hver forespørgsel.
Bare efter den anden i den her stil (skal nok rettes lidt til):
<?php mysql_connect("xx"); if($search){ mysql_select_db("yy"); $noResult = "<BR>Deres søgning gav intet resultat."; $query = mysql_query("SELECT * FROM sider WHERE indhold LIKE '%".addslashes($search)."%' AND godkendt='ja' AND afd='".addslashes($afd)."' ORDER BY afdeling"); echo mysql_num_rows($query) . " resultater blev fundet og vist efter afdeling.<BR><BR>"; while($row = mysql_fetch_array($query)){ $id = $row["id"]; $afd = $row["afd"]; $afdeling = $row["afdeling"]; $overskrift = $row["overskrift"]; $filnavn = $row["filnavn"]; $indhold = $row["indhold"]; $indhold = strip_tags($indhold); echo ("$afdeling<BR>"); echo ("<a href=/$filnavn class=hamlet>$overskrift</a><BR>"); echo strlen($indhold) > 120 ? '<i>' . substr($indhold, 0, 120) . '...</i>' : $indhold; echo ("<BR><BR>"); $query = mysql_query("SELECT * FROM priser WHERE indhold LIKE '%".addslashes($search)."%' AND godkendt='ja' AND afd='".addslashes($afd)."' ORDER BY afdeling"); echo mysql_num_rows($query) . " resultater blev fundet og vist efter afdeling.<BR><BR>"; while($row = mysql_fetch_array($query)){ $id = $row["id"]; $afd = $row["afd"]; $afdeling = $row["afdeling"]; $overskrift = $row["overskrift"]; $filnavn = $row["filnavn"]; $indhold = strip_tags($row["indhold"]); echo ("$afdeling<BR>"); echo ("<a href=/$filnavn class=hamlet>$overskrift</a><BR>"); echo strlen($indhold) > 120 ? '<i>' . substr($indhold, 0, 120) . '...</i>' : $indhold; echo ("<BR><BR>"); } if (!$id){ print ("$noResult"); } mysql_close(); } ?>
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.