Avatar billede reflex Nybegynder
07. december 2003 - 23:47 Der er 11 kommentarer og
1 løsning

Hvorfor virker det ikke d'oh.

Jeg har stillet dette spørgsmål én gang men.....
Enten er jeg ikke særlig skarp eller også er jeg klodset ;)

Jeg fik et udmærket svar fra Sandbox som jeg accepterede lidt for hurtigt. For jeg kan ikke få hans eksempel til at virke helt (link'ene Nyeste, Nyere, Ældre & Ældst) den viser ikke rigtigt de sider den skal.

Og er det mugligt at lave det så man får side 1|2|3|4 osv. istedet for??

Her er koden:

<?php

if (isset($_GET['start'])){
  $start=0+$_GET['start'];  // sikrer at $start indeholder et tal
} else {
  $start=0;
}

$antal=mysql_result(mysql_query("SELECT COUNT(*) FROM tabelnavn") or die mysql_error());

<!-- ved linien ovenover kommer denne besked: Warning: Wrong parameter count for mysql_result() in /customers/piranhafc.dk/piranhafc.dk/httpd.www/nyttest.php on line 54  -->

$result=mysql_query("SELECT * FROM tabelnavn ORDER BY ID DESC LIMIT $start,2") or die mysql_error();

while ($row=mysql_fetch_assoc($result)){
  echo "<table>\n";
  echo "  <tr>\n";
  echo "    <th>{$row['Overskrift']}</th>\n";
  echo "    <th>{$row['Dato']}</th>\n";
  echo "  </tr>\n";
  echo "  <tr>\n";
  echo "    <td>{$row['Text']}</td>\n";
  echo "    <td><img src='{$row['Billede']}' alt=''></td>\n";
  echo "  </tr>\n";
  echo "</table>\n\n";
}

echo "<a href='?start=0'>Nyeste</a>\n";

if (2>=$start) {
  $forrige=$start-2;
  echo "<a href='?start={$forrige}'>Nyere</a>\n";
}

if ($antal-1>=$start+2){
  $naeste=$start+2;
  echo "<a href='?start={$naeste}'>Ældre</a>\n";
}

$aeldste=$antal-2;
echo "<a href='?start={$aeldste}'>Ældste</a>\n";

?>


Min ID er opretter som en INT er det godt nok??

/Reflex
Avatar billede detox Nybegynder
07. december 2003 - 23:53 #1
$antal=mysql_result(mysql_query("SELECT COUNT(*) FROM tabelnavn"),0);
Avatar billede detox Nybegynder
07. december 2003 - 23:58 #2
og så skal du naturligvis bytte 'tabelnavn' ud med det rigtige navn.
Avatar billede Slettet bruger
08. december 2003 - 01:43 #3
Ja, undskyld. Den linie have jeg ikke lavet optimalt.

Hvis du vil lave en serie links til sider, kan det gøres således:

$side=0;
$vist_side=1;
$liste='';

while($side<$antal){
  if ($side==$start){
    $liste .= "{$vist_side}|";
  } else {
    $liste .= "<a href='?start={$side}'>{$vist_side}</a>|";
  }
  $vist_side++;
  $side+=2;
}

$liste=substr($liste,0,-1);  // Fjerner den sidste | i listen
Avatar billede reflex Nybegynder
08. december 2003 - 19:20 #4
Sandbox mangler der ikke en echo til at udskrive link serien, der kommer ikke noget frem. Hvis jeg indsætter en echo "$liste"; går det noget galt....men de sidste links passer fint.

/Reflex
Avatar billede Slettet bruger
08. december 2003 - 19:29 #5
Jo, stumpen fra mit sidste indlæg laver kun listen.

echo $liste; burde være nok til at skrive den. Der behøves ikke anførselstegn.

Hvad er det, der går galt? Hvis det er, at der ikke er et link, men kun et tal for den side, man er på, er det med vilje.
Avatar billede reflex Nybegynder
08. december 2003 - 19:36 #6
upps jeg havde kommet til at skrive echo'en det forkerte sted så den udskrev den flere gange. Tak! mangler bare en besvarelse så du kan få nogle point.

/Reflex
Avatar billede Slettet bruger
08. december 2003 - 19:45 #7
Her, men vent på et svar fra detox også.
Avatar billede reflex Nybegynder
09. december 2003 - 22:17 #8
Det ser ikke ud som om detox reagerer. Men så kan jeg lige spørge om hvordan linien ser ud når jeg gerne vil ha at man kan gemme html tags i db'en??
Avatar billede Slettet bruger
10. december 2003 - 00:11 #9
Hvilken linie?

Hvis du mener, at der kan være HTML-koder i tekstfeltet, så er dette script egentlig ligeglad med indholdet, det bliver bare udskrevet, som det ligger i databasen.

Ellers må du forklare nærmere.
Avatar billede reflex Nybegynder
10. december 2003 - 18:10 #10
øhh jeg var ved at lave en upload side også, (glemte jeg at sige det :) hvor jeg har en form som jeg skal skrive <br> for at lave linieskift (hvilket er til at leve med) men nu kunne jeg godt tænke mig at den kunne registrer en enter tryk.

PS. sorry fordi jeg udtrykker mig dårligt.
Avatar billede Slettet bruger
10. december 2003 - 20:56 #11
Hvis du vil lave enter-tryk om til <br>-tags, gøres det let og enkelt med funktionen

$tekst=nl2br($tekst);

Før du skriver den ind i databasen.

Hvis du gerne vil fjerne html-tags i teksten (for at undgå at folk laver ugyldig kode, som smadrer dit layout), kan du bruge $tekst=htmlentities($tekst); bare husk at det skal gøres før du laver linieskiftene om.
Avatar billede reflex Nybegynder
11. december 2003 - 18:05 #12
Tak igen, du har været en stor hjælp :) du har fortjent nogle point...endnu engang tak.

/Reflex
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester