frankhaugen Skrevet 22. desember 2010 Del Skrevet 22. desember 2010 Help please.. Bagrunn: Jeg har såvidt begynt å lære meg PHP, jeg har en webside, (samuraibutikken.no) , jeg skal få gjort om til PHP, DVS. jeg ønsker å plassere PHP i min velutviklede html-kode. så langt klarer jeg meg, MEN jeg har produklister jeg er fornøyd med på alle måter, og jeg får til å lage et php script som henter listene men i html har jeg gitt listen annenhver class attributt for å bruke css til å lage hvit og går bakgunn på listen annehvert nedover. spørsmål: Er det noe trick for å gjør at loopen som henter fra mysql setter inn annenhver attribut i htmlkoden php genererer? og Hvis jeg ønsker å autogenerere en php side når man trykker på det enkelte produktet fra en mysql database hvordan gjøres dette enklest mulig (uten en fil pr. produkt men bruker infoen fra når man trykker i produktlisten til å hente korresponderende produkt? all hjelp er jeg veldig takknemmelig for! PS: ja, jeg har googlet dette men formulerer meg enten feil, ellers er det ingen klare svar på dette som jeg kan finne. Lenke til kommentar
MikkelRev Skrevet 22. desember 2010 Del Skrevet 22. desember 2010 for($i=0; $i<=30; $i++) if($i%2==0) echo "<b>Hei</b><br>"; else echo "Hade<br>"; Lenke til kommentar
Thomas. Skrevet 22. desember 2010 Del Skrevet 22. desember 2010 Selv foretrekker jeg denne metoden: while() { echo ($i++%2) ? 'annenhver nummer 1 nedover' : 'annenhver nummer 2 nedover'; } Lenke til kommentar
MikkelRev Skrevet 22. desember 2010 Del Skrevet 22. desember 2010 Tror en nybegynner vil foretrekke if() fremfor en ternary operator. Lenke til kommentar
frankhaugen Skrevet 22. desember 2010 Forfatter Del Skrevet 22. desember 2010 Godt forsøk folkens, men jeg ser ikke hvordan jeg kan tilpasse det inn i min eksisterende kode: <?php # # ## This code opens the database and collect product data, then presnts it in a table # # // connect to database, return boolean function db_connect() { $connection = mysql_pconnect('localhost', 'user', 'password'); if(!$connection) { return false; } if(!mysql_select_db('samuraib')) { return false; } return $connection; } //display lines located using array function db_result_to_array($result) { $res_array = array(); for ($count=0; $row = mysql_fetch_array($result); $count++) { $res_array[$count] = $row; } return $res_array; } //locate the product information function find_products() { db_connect(); $query = "SELECT * FROM katana order by katana.price"; $result = mysql_query($query); $result = db_result_to_array($result); return $result; } //call function $products = find_products(); //special variable for echo function $special1 = "'katana/product.php'"; //display result foreach($products as $product) { echo '<tr class="kat2" onclick="parent.main.location.href='.$special1.'">'. '<td><img class="thumbs" src="images/katana/'.$product['picture'].'.gif" /></td>'. '<td>'.$product['id'].'</td>'. '<td>'.$product['price'].'</td>'. '<td>'.$product['description'].'</td>'. '</tr>'; } ?> på linje 8 ca., (ifra bunnen), er det en "class='kat2'" denne vil jeg skal gå annehvert 'kat1', 'kat2', for hver gang loopen går. takk! Lenke til kommentar
MikkelRev Skrevet 22. desember 2010 Del Skrevet 22. desember 2010 (endret) foran loopen, lager du en variabel $i=0. Inni loopen inkrementerer du tellervariabelen med 1 ($i++) og bruker den den samme testen som vi viste over, og skriver da class='kat1' eller class='kat2', avhengig av om testen ble sann eller usann. Endret 22. desember 2010 av MikkelRev Lenke til kommentar
frankhaugen Skrevet 22. desember 2010 Forfatter Del Skrevet 22. desember 2010 HAHA!! jeg fikk det til !! jeg tilpasset litt selv, men funker fett som faen... løsning: //alternating class variable and constants $kat1 = "kat1"; $kat2 = "kat2"; $i = 1; //display result foreach($products as $product) { $class = (is_int($i / 2)) ? $kat2 : $kat1; echo '<tr class="'.$class.'" onclick="parent.main.location.href='.$special1.'">'. '<td><img class="thumbs" src="images/katana/'.$product['picture'].'.gif" /></td>'. '<td>'.$product['id'].'</td>'. '<td>'.$product['price'].'</td>'. '<td>'.$product['description'].'</td>'. '</tr>'; $i++; // Increment $i } takker for hjelpen igjen! Lenke til kommentar
MikkelRev Skrevet 22. desember 2010 Del Skrevet 22. desember 2010 (endret) Goodgood Edit: trykk på LØST-knappen. Endret 22. desember 2010 av MikkelRev Lenke til kommentar
Avean Skrevet 23. desember 2010 Del Skrevet 23. desember 2010 Sorry for å bumpe tråden din, men lurer på grunnen bak //call function $products = find_products(); //display result foreach($products as $product) Er nybegynner selv, bare lurer på meningen med foreach her ? Kan man ikke bare si $product = find_products(); og ferdig med det ? Lenke til kommentar
Thomas. Skrevet 23. desember 2010 Del Skrevet 23. desember 2010 Sorry for å bumpe tråden din, men lurer på grunnen bak //call function $products = find_products(); //display result foreach($products as $product) Er nybegynner selv, bare lurer på meningen med foreach her ? Kan man ikke bare si $product = find_products(); og ferdig med det ? Du bruker foreach for og hente ut hvert element i en array. <?php $array = array(1, 2, 3); foreach($array as $i) echo $i . '<br />'; ?> Vil gi følgende resultat: 1 2 3 I koden din, så vil mest sansynlig $products være en array som inneholder et element for hver rad som blir returnert av SQL-spørringen din. Derfor bruker man foreach for og loope igjennom array'et/resultatene og printe ut hvert resultatet av din SQL spørring. 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å