Hejsa.
Du spörger om to ting så vidt jeg kan se.
1) Hvordan du veksler imellem venstre og höjre i en række billeder
og
2) Hvordan du læser antallet af resultater fra et mySQL query (og sikkert löber igennem data i et loop osv)
Jeg vil starte med at fortælle hvorfor count giver dig 1. (altså med spörgsmål nr 2
)
count er en function i PHP som returnerer antallet af elementer i en variabel .. dvs hvis du fx har et array med 10 elementer i så giver den 10.
For en dimentionelle variabler og object handles så som fx et mySQL resultatsæt vil den altid give 1, uanset om indeholdet på en eller anden måde kan lede til flere sekventielle læsbare rækker eller ej.
Eneste undtagelse er hvis variabelen er tom (null), så leverer count 0 tilbage.
Din förste linie er
$pic = mysql_query("SELECT id FROM news");
Men mysql_query giver dig ikke et array tilbage .. den afleverer en resource .. dvs et handle til at læse med (en pointer, resource id eller hvad ved jeg) ... som du altså ikke kan behandle som et array ..
Se her:
http://www.php.net/manual/en/function.mysql-query.phpDet du vil göre er nok at bruge mysql_fetch_array med dit resource handle ($pic) og det vil give dig
et array. Dog indeholder det array kun en enkelt resultat række, hvilket er fint nok til at lave et loop med der gennemgår alle resultaterne .. men hvis du absolut skal vide hvor mange rækker dit query gav (altså hvor mange nyheder der blev fundet) så kan du bruge mysql_num_rows .. igen kaldes den, ligesom mysql_fetch_array, med dit resource handle ($pic) som parameter.
Derfor kan det være godt at kalde sit resource handle for $result (istedet for $pic) da du vil have nemmere med at se på andres eksempler og overföre det på din egen kode.
mysql_fetch_array:
http://www.php.net/manual/en/function.mysql-fetch-array.phpmysql_num_rows:
http://www.php.net/manual/en/function.mysql-num-rows.phpAlle mySQL functionerne i PHP med små eksempler:
http://www.php.net/manual/en/ref.mysql.phpKort fortalt:
$countPic = count($pic);
bliver til
$countPic = mysql_num_rows($pic);
Nr 1)
Omkring det med at veksle er det ret simpelt, men nu er min dreng træt så jeg må svare senere.
Brug det Frank Bille vidste, men hvorfor han får noget så simpelt til at se så kompakt og grimt ud (set med en begynders öjne) fatter jeg ikke, men han skal måske lige blære sig med sin c teknik
.
Det han gör er at lave modulus 2 på en tæller og på den måde se om tallet er lige eller ej.
Hvis den ikke er (dvs modulus 2 giver 0 som er true) bruges teksten "right" .. ellers "left".
Selv om if else i ? : format kan se presset ud er det jo egentligt ret egnet til netop denne opgave, da du ellers nok ville lave en function for at få det til at være læsbart.
Nå .. nu faldt ungen i sövn
.. der rög den undskyldning.
Istedet for hans for lökke, (for( $i = 0; $i < 10; $i++ )), bruger du bare den lökke du finder til at gå gennem sql resultater på den side jeg linkede til ovenfor.
$count++ er det samme som $count = $count+1. Igen kortere og mere naturligt .. når man kender sproget.
Ja ja ... hvis det ikke dækker så se eksemplerne her på udvikleren .. eller bedre, lær at bruge php.net .. der er rigtig god og nem sögning og god oversigt syntes jeg.
Og til Frank: Jeg er ikke ude på at provokere .. ikke til andet end at man lige skriver bare 5 ord om hvad man laver når man "hjælper" en der er så meget begynder at han ikke ved hvordan man slår mysql functionerne i php op. At smide en kompakt linie er vel ikke rigtig andet end en opfordring til at bruge gode gamle copy paste metoden, fordi man ikke fatter en brik og det er for namt bare at klippe istedet for at stille spörgsmål til svaret på ens spörgsmål.
Din kode var selvfölgelig hverken for kompakt eller grim .. du gjorde det som man gör det bedst.
Det hjælper bare ikke en begynder meget uden en kommentar, vil jeg da tro.[Redigeret d. 11/03-03 22:48:41 af Jonatan Hertel]