Kenneth Dammyr Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Hei Sitter å jobber med CMS-systemet mitt nå og fant ut at noe krasjer litt hardt her, men uten helt å vite hvorfor: Jeg har en fil, news.php, den leser innholdet fra databasen og formaterer det etc. Dette gjør den i to funksjoner. En for visning av flere artikler, typisk på en forsside. Samt en for visning av enkeltartikler, typisk "om oss". Hvis jeg prøver å kalle begge disse funksjonene så vil ikke den som blir kalt sist fungere. Gudene vet hvorfor. Klikk for å se/fjerne innholdet nedenfor function visenkel($id2) { $result2 = mysql_query("SELECT * FROM ventus_nyhet WHERE id='$id2'") or die(mysql_error()); $row3 = mysql_fetch_array( $result2 ); echo "<h1>" . $row3['tittel'] . "</h1>"; echo "<div class='brodtekst'>" . $row3['nyhet'] . "</div>"; } function visartikler($kategori, $limit, $highpri) { $id = $_GET['id']; if (isset($_GET['limit'])) {$limit = $_GET['limit'];} // Hvis bruker har bedt om å se alle artikler skal $limit leses fra adresselinje if ($limit == 0) {$limit = 1000;} // Hvis $limit er lik 0 skal søket begrenses til 1000, altså alle. // Vis enkel-nyhet if (isset($_GET['id'])) { $result = mysql_query("SELECT * FROM ventus_nyhet WHERE id='$id'") or die(mysql_error()); $row = mysql_fetch_array( $result ); echo "<div class='imgs'><img src='artbilder/" . $row['sbilde'] . "'></div>"; echo "<h2>" . $row['tittel'] . "</h2>"; echo "<div class='credits'>" . $row['forfatter'] . ", " . $row[dato] . "</div><br />"; echo "<div class='ingress'>" . $row['ingress'] . "</div><br />"; echo "<div class='brodtekst'>" . $row['nyhet'] . "</div><a href='#' onClick='history.back()'>Tilbake</a>"; include "kommentar.php"; } else { // Vis Hovedside if ($kategori == 0){ $result = mysql_query("SELECT * FROM ventus_nyhet ORDER BY dato DESC LIMIT $limit") or die(mysql_error()); } else { $result = mysql_query("SELECT * FROM ventus_nyhet WHERE kategori='$kategori' ORDER BY dato DESC LIMIT $limit") or die(mysql_error()); } // Vis nyeste artikkel if ($highpri == Y) { $row = mysql_fetch_array( $result ); echo "<div class='imgs'><img src='artbilder/" . $row['sbilde'] . "'></div>"; echo "<tr><td><h2>" . $row['tittel'] . "</h2>"; echo "<div class='credits'>" . $row['forfatter'] . ", " . $row[dato] . "</div><br />"; echo "<div class='ingress'>" . $row['ingress'] . "</div><br><a href='?id=" . $row['id'] . "'>Les mer...</a>"; } // Vis mange artikler while($row2 = mysql_fetch_array( $result )) { echo "<div class='newsoverskrift'>" . $row2['tittel'] . "</div>"; echo "<div class='newsinfo'>" . $row2['nyhet'] . "</div>"; echo "<div class='newsunderinfo'>" . $row2['dato'] . "</div>"; } echo "<a href='?limit=1000'><div class='flere'>flere >></div></a>"; } } På forhånd takk! Lenke til kommentar
Stian Jacobsen Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 Har ikke tid til å lese hele koden din, kutt den ned til det essensielle så skal jeg se på saken.. Hvordan kaller du på funksjonene? Igjennom et template script eller bruker du bare echo function_name($foo); Lenke til kommentar
Kenneth Dammyr Skrevet 2. mai 2007 Forfatter Del Skrevet 2. mai 2007 Hei Det er det essensielle, det er to funksjoner: "visenkel" og "visartikler". Funksjone blir kalt ved at brukeren limer inn denne koden på sin webside: <?php include "news.php"; visenkel("12"); ?> Lenke til kommentar
magicgunnar Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 Hvis du går på vis kildekode så er det bare kildekoden til den første funksjonen som vises? Da må det vel være noe feil der du kaller funksjonene og ikke i selve funksjonene. Ellers hadde det vel vært nærliggende å tro at det var noe feil med html-formateringen... Lenke til kommentar
Kenneth Dammyr Skrevet 2. mai 2007 Forfatter Del Skrevet 2. mai 2007 Jeg fant det ut! I koden så det slik ut nå: include "news.php"; visenkel("195"); include "news.php"; visartikler("10","5","Y") Fasiten var, uten at jeg aner hvorfor: include "news.php"; visenkel("195"); visartikler("10","5","Y") Så cased closed, thanx and good night! Lenke til kommentar
MsFoster Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 (endret) Her var det jaggu misbruk av poenget med funksjoner. Jeg foreslår at du begynner det hele på nytt, og tar for deg ordentlig Objekt Orientert Programmering. Del det hele opp i klasser, sett felles variabler i klassen slik at de kan tas til gjenbruk. Det er heller ikke meningen å skrive ut ren HTML i drøss vha funksjoner. En funksjon skal gjøre en handling ut fra argumentene du setter, ikke formatere tekst og tabeller. Endret 2. mai 2007 av MsFoster Lenke til kommentar
Kenneth Dammyr Skrevet 2. mai 2007 Forfatter Del Skrevet 2. mai 2007 Mye mulig, men jeg forstår måten jeg har gjort det på og tør påstå at det er forståelig for andre. Når det i tillegg fungerer, ser jeg ikke problemet. Begynne på nytt skal jeg i hvert fall ikke gjøre Lenke til kommentar
Crowly Skrevet 2. mai 2007 Del Skrevet 2. mai 2007 Fasiten var, uten at jeg aner hvorfor: 8518437[/snapback] Du skal kun bruke include/require en gang, som du fant. Hvis fila test.php inneholder 1 2 3 og du bruker include "test.php" i index.php (som ser slik ut) start her include "test.php"; slutt her så blir det det samme som om index.php hadde sett slik ut start her 1 2 3 slutt her Hvis du da bruker include flere ganger så vil funksjonen bli satt inn flere ganger og resulterer i feil. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå