Gå til innhold

annehver i loop, og autogenererte sider


Anbefalte innlegg

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
Videoannonse
Annonse

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

HAHA!! jeg fikk det til :D!!

 

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

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...