The_Lobster Skrevet 24. mai 2003 Del Skrevet 24. mai 2003 Hei! Prøver desperat å finne ut hvorfor noe ikke funker som det skal. Jeg har følgende "script": // $page = 1 function remover($string, $sep1, $sep2) { $string = substr($string, 0, strpos($string,$sep2)); $string = substr(strstr($string, $sep1), 1); return $string; } // get which snr and enr to use $pagenr = 'page'.$page; $ssnr = 'enr'.$page; $snr = remover($row->pnr, $pagenr, ' enr'); $enr = remover($row->pnr, $ssnr, ' END'); // snr = nr for first paragraph // enr = nr for last paragraph for ($nr = $snr; $nr == $enr; $nr++) { // get header $str1 = "header".$nr; $str2 = "content".$nr; $Header = remover($row->paragraphs, $str1, $str2); // get content for header $fnr = $nr++; $str1 = "content".$nr; $str2 = "header".$fnr; $Content = remover($row->paragraphs, $str1, $str2); // en del cells, så: <?=$Header?> // en del til, så: <?=$Content?> // noen cells til, før jeg avslutter for-loopen <?php } ?> Database innholdet i paragraphs ser slikt ut: header1 Introduksjon content1 testing header2 Grafikken var blabalb content2 tøft med bil.. header3 Audi eller Ferrari? content3 hardt spørsmål Innholdet i pnr: page11 enr12 END (altså, page1, verdien er 1, som ligger mellom "page1", og " enr". Er litt merkelig satt opp...) Dog, med dette scriptet, vises rett og slett ingenting. Som om det ikke "henter inn" noe fra databsen i det hele tatt. Men likevel, problemet er egentlig ganske åpenbart. Dog, jeg forstår ikke hvorfor problemet skjer. Jeg har nemlig testet med noe andre scripts, ved bruk av samme funksjon, hvor det viste seg at hvis jeg brukte f. eks. funksjonen "remover", for å hente den understrekete teksten under... Funksjon: $gmR = remover($row->scores, 'gmR', 'gmRD'); Tekst i database: gmR90gmRD Resultatet var da: mR90% Så det virker som om den går ut ifra den ene bokstaven(første bokstaven).. altså g... og printer alt fra g til gmRD (antageligvis g'en der også). Så hvis dette er feilen, kan det også bety at "header" og "content" blir ikke vist, fordi snr og enr ender opp med å ikke bli rene siffer/integers. Vil da anta at det er noe feil i funksjonen "remove" (Se lenger opp). Er så trøtt nå at jeg er ikke helt klar i hodet,,, så jeg sliter litt... :wink: Men om noen har forslag, tas de stert med takk! Mvh, Joachim F. Lenke til kommentar
BlueEAGLE Skrevet 25. mai 2003 Del Skrevet 25. mai 2003 Hva i allverden er det du prøver å gjøre? Hvordan ser tabellene ut og hva vil du med dataene i de? Hvordan er SQL koden? Lenke til kommentar
The_Lobster Skrevet 25. mai 2003 Forfatter Del Skrevet 25. mai 2003 Beklager, jeg var ikke helt klar i spørsmålet over. Det jeg prøver å gjøre, er å "trekke ut" tekst, ved å definere teksten som er til venstre og høyre (Før og etter). Altså, skriver jeg: $string = "førmintekstetter"; echo remover($string, 'før', 'etter'); da ønsker jeg å få resultatet: "mintekst". Dog, det fungerer ikke. Jeg får: ørmintekst. Så det virker som om den tar alle bokstaver fra f'en i "før", og til e'en i "etter". Det er dette jeg lurer på. Hvordan jeg kan endre funksjonen remover (som står i øverste post), til å ta fra slutten av ordet jeg legger inn istedet for første bokstaven som det nå tydeligvis gjør, altså, skriver jeg "før", vil jeg at den skal ta fra r'en, ikke f'en. Altså hele ordet. For å unngå forvirring skriver jeg funksjonen remover igjen: function remover($string, $sep1, $sep2) { $string = substr($string, 0, strpos($string,$sep2)); $string = substr(strstr($string, $sep1), 1); return $string; } Vil anta at det er denne linjen som må gjøres noe med: $string = substr($string, 0, strpos($string,$sep2)); Takker for all hjelp. Joachim Lenke til kommentar
The_Lobster Skrevet 25. mai 2003 Forfatter Del Skrevet 25. mai 2003 Beklager, min feil igjen: Det er ikke denne linjen det må gjøres noe med: $string = substr($string, 0, strpos($string,$sep2)); Men denne: $string = substr(strstr($string, $sep1), 1); 1'tallet i slutten der, bestemmer hvorfra i teksten i $sep1 (i eksemplet mitt altså "før") den skal begynne å ta fra. Når det står 1, er det logisk nok fra f, og ut. Endrer jeg den til 0, er det fra og med f og ut. Jeg vil at den skal operere motsatt vei, altså se på slutten av "før", og ta fra r'en og ut. Selvfølgelig kan jeg bare sette den til 3. Men hva skjer da når jeg har et lengre ord? Prøvde med "-1", men funka dårlig. Mvh, Joachim Lenke til kommentar
The_Lobster Skrevet 25. mai 2003 Forfatter Del Skrevet 25. mai 2003 Fant det ut! Ved å endre: $string = substr(strstr($string, $sep1), 1); Til: $string = substr(strstr($string, $sep1), strlen($sep1)); Alltid en enkel løsning som vanlig... Men problemet er ihvertfall løst! Mvh, Joachim 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å