Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  12 1060
Hei, kan noen hjelpe med dette at jeg for eks. legger ut 10 emner og vil at den nummerer automatisk 1. 2. 3. osv..
Hvor kommer emnene fra? MySQL?
Det er vel bare å sette feltet du vil skal nummereres med auto increment. Hvis det er å lagre i sql du tenker på.

Hvis du lagrer i flate tekstfiler anbefaler jeg deg å gå over til mysql.
Trådstarter
74 0
Ja, dem kommer fra MySQL, jeg har satt feltet som auto, men han teller mer enn de nye emnene er, for eks. jeg har 100 emner men vil at han teller bare 10 nyesete og det vil si 1. til 10.
bruk LIMIT i mySQL.

Noe sånt som dette: SELECT * FROM database LIMIT 0,10;
original reprint
xaff's Avatar
MySQL auto_increment teller ikke de ti nyeste radene som 1-10, den teller den første raden som blir lagt inn som 1, den andre som 2, og så videre. Det vil si, at for å velge de ti nyeste kan du bruke denne spørringen:

SELECT * FROM `tabell` ORDER BY `tabell`.`felt_med_auto_increment` DESC LIMIT 10
Er dette riktig?

Kode

<?php
	$sql = "SELECT * FROM nyheter ORDER BY id DESC LIMIT 0,10"
	$counter = 1; 
	$result = mysql_query($sql) or die(mysql_error());
	while($row = mysql_fetch_array($result)) {
		echo "<table>";
			echo "<tr><td colspan=\"2\">Siste nyheter</td></tr>";
			echo "<tr><td>$counter</td><td>".substr($_row['nyhetekst'], 0, 70)."...</td></tr>";
		echo "</table>";
	}
	
?>
Trådstarter
74 0
xaff du skjønte hva jeg mente, men en ting til, den funksjonen vil jeg gjøre innen PHP fordi jeg har emner fra 1 til 1000 ca. men når i PHP henter emnene i de 1000 emnene som mest leste eller mest populær, top 10 osv.. vil at han markerer første rad som 1. og andre som 2. osv.. og det vil si at første emne kan ha registrert som ID 656 i MySQL! www.mp3picker.com

The freak! den har jeg men vil ha at i selve raden står nummer 1, 2, 3 osv... som odd og even, prøv også ta en tit på http://www.mp3search.ru/album.aspx?id=50832&fid=3409679
Limited edition
Moff's Avatar
Jeg må bare kommentere at jeg har trøbbel med å lese innleggene dine. Formuleringene er for vanskelig for meg.

Men slik jeg har forstått det så trenger hvert emne to id-felter. Et som teller hvilket emne det er, slik som du har nå, hvor eldste emne er nummer 1. Så trenger du en egen id som teller hvor mange ganger emnet er lest. Hver gang noen åpner det så legger du inn en funksjon som øker denne telleren. Da vil du kunne hente ut listen på samme måte, men du sorterer etter popularitets-id-en.
Dersom du vil at output skal nummeres legger du jo bare til en variabel som du inkrementerer hver gang løkka som pusher ut hvert innlegg kjøres.

Noe sånt:
$fancyNumbering = 1;
while ($row = mysql_fetch_array($sql) {
...kode for å vise hvert innlegg
$fancyNumbering++;
}
original reprint
xaff's Avatar
Enig med Moff her angående formuleringen din, det hadde vært enklere å komme rett til sakens kjerne om du hadde tatt deg litt mer tid til å skrive en utdypende post når du startet tråden.

Forøvrig funker også fremgangsmåten Moff nevner for å implementere en enkel hit-teller. Alternativet vil være å lagre hits i en annen tabell, selv om det egentlig ikke er noen fordel å gjøre det, men folk er jo forskjellige.

moridin, du mangler en ")" (-:
Trådstarter
74 0
Xaff og Moff, beklager at dere ikke skjønte, jeg trenger ikke en teller, men mange takk for alle som hjalp.. egentlig trenger jeg en funksjon som odd og even, når man vil bruke en farge på den ene raden og annen farge den andre så bruker man noe sånt som velger automatisk <tr class="<!--{cycle values="odd,even"}-->"> det skal jo være nesten samme med numerering. Men takk for hjelpen i hvertfall
Sist endret av -AXMEDUS-; 25. august 2007 kl. 21:24.
Limited edition
Moff's Avatar
Moridin er inne på noe hvis jeg har forstått deg denne gangen. Du vil rett og slett markere annenhver linje med ulik farge så det er lettere å se forskjell?

It goes something like this

Kode

<?php
 
	 // Her limer du inn mysql-en (tilkobling og valg av database)
 
	 $query = "select * from 'tabell' order by id desc" // MySQL-query
 
	 $i = 1; //Integer (tall) for å velge farge på raden
 
	 echo "<table border="0" width="100%">"; // Lag en HTML-tabell for å vise emnene
 
	 while ( $rad = mysql_fetch_array ( $query ) { // Loop som henter alle emnene
 
		 // Nedenfor skriver du inn html-kode for å vise raden (jeg har skrevet et eksempel)
 
		 ?>
 
		 <tr>
 
			 <td bgcolor="<? if ( $i = 0 ) { echo "ffffff"; } else { echo "cccccc"; } ?>" width="100%">
 
			 Artist: <? echo $rad['artist']; ?> - Sang: <? echo $rad['song']; ?>
 
			 </td>
 
		 </tr>
 
		 <?
 
		 if ( $i == 0 ) { // Endre integeren (tallet) slik at neste rad får en annen farge
 
			 $i = 1;
 
		 } else {
 
			 $i = 0;
 
		 }
 
 
	 } // Slutt på loopen
 
	 echo "</table>"; // Slutt på HTML-tabellen
 
?>
Koden min krever at du har to kolonner i tabellen din som heter "artist" og "song". Disse skrives ut i tabellen slik:
Artist - Song

NB: Ikke testet koden, den har sikkert bugs og skrivefeil
Sist endret av Moff; 25. august 2007 kl. 22:39.