Archief - PHP: default items gebruiken als begin

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Sprits

Legacy Member
rare titel maar ik had totaal geen idee hoe ik het kon omschrijven :D

op mijn products pagina staan er links alle links naar de verschillende products. als je op een product klikt, wordt het ID mee verstuurt en refreshed de pagina met het ID erachter (products.php?pID=1).
met die ID vult php de rechterkant van de pagina verder aan met de info...

als men op een product klikt, komt er een pijltje voor om aan te geven da je dat product nu aan het bekijken bent. dit is enkel als je een product gekozen hebt en dus een ID hebt meegegeven.
als er geen ID wordt meegegeven (dus als je gewoon op products.php drukt) dan moet hij het eerste product uit de database laten zien. en dus langs de linkerkant moet er een pijltje voorkomen.
daar is dus het probleem.
hoe kan ik ervoor zorgen dat er op de default page (met het eerste product) ook een pijltje voor de link komt?

ik kan een ID meegeven maar da mag ik ni doen, want van de moment ze het eerste product verwijderen... moet het tweede product gezien worden.

ik hoop da ge het snapt :p

linkerkant (tabel met de links in)
PHP:
$pID = $_GET["pID"];
	
	$query = mysql_query("SELECT * FROM products ORDER BY name");
	while ($prod = mysql_fetch_array($query)) {
		$sdesc = ubb_code(stripslashes($prod["sdesc"]));
		if (strlen($sdesc) > 200){
			$sdesc = substr($sdesc, 0, 200);
			$sdesc = $sdesc ."...";
		}
	
		if ($prod["pID"] == $pID) {
			echo "<img src=\"admin\layout\buttons\link.gif\">&nbsp;<a href=\"products.php?pID=". $prod["pID"] ."\"><b>". $prod["name"] ."</b></a>
			<div class=\"date\">$sdesc</div><hr /><br />
			";
		}
		else {
			echo "<a href=\"products.php?pID=". $prod["pID"] ."\"><b>". $prod["name"] ."</b></a>
			<div class=\"date\">$sdesc</div><hr /><br />
			";
		}
	}

rechterkant (tabel met de info in)
PHP:
if ($pID) {
		$query2 = mysql_query("SELECT * FROM products WHERE pID = '$pID'");
		
		while ($prod2 = mysql_fetch_array($query2)) {
		$ldesc = ubb_code(stripslashes($prod2["ldesc"]));
		
		echo "	<table border=\"0\" width=\"100%\">
					<tr>
						<td valign=\"top\"><h2>". $prod2["name"] ."</h2></td>";
		if ($prod2["logo"]) {
			echo "		<td valign=\"top\" align=\"right\"><img src=\"$uploadrel". $prod2["logo"] . "\" /></td>
					</tr>
					<tr>
						<td valign=\"top\" colspan=\"2\">$ldesc</td>
					</tr>";
		}
		else {	
						
		echo "		</tr>
					<tr>
						<td valign=\"top\">$ldesc</td>
					</tr>";
		}
		echo "</table>";
		}
	}
	else {
		$query2 = mysql_query("SELECT * FROM products ORDER BY name ASC LIMIT 1");
		
		while ($prod2 = mysql_fetch_array($query2)) {
		$ldesc = ubb_code(stripslashes($prod2["ldesc"]));
		
		echo "	<table border=\"0\" width=\"100%\">
					<tr>
						<td valign=\"top\"><h2>". $prod2["name"] ."</h2></td>";
		if ($prod2["logo"]) {
			echo "		<td valign=\"top\" align=\"right\"><img src=\"$uploadrel". $prod2["logo"] . "\" /></td>
					</tr>
					<tr>
						<td valign=\"top\" colspan=\"2\">$ldesc</td>
					</tr>";
		}
		else {	
						
		echo "		</tr>
					<tr>
						<td valign=\"top\">$ldesc</td>
					</tr>";
		}
		echo "</table>";
		}
	}

Sprits

Legacy Member
ik heb het kunnen laten werken maar dan niet dynamisch (Caffo is het eerste product maar als er een product met een B aan wordt toegevoegt dan werkt dit al nimeer) en zeer omslachtig...
iemand die een beter idee heeft?

PHP:
$pID = $_GET["pID"];
	
	$query = mysql_query("SELECT * FROM products ORDER BY name");
	while ($prod = mysql_fetch_array($query)) {
		$sdesc = ubb_code(stripslashes($prod["sdesc"]));
		if (strlen($sdesc) > 200){
			$sdesc = substr($sdesc, 0, 200);
			$sdesc = $sdesc ."...";
		}
	
		if ($prod["pID"] == $pID) {
			echo "<img src=\"admin\layout\buttons\link.gif\">&nbsp;<a href=\"products.php?pID=". $prod["pID"] ."\"><b>". $prod["name"] ."</b></a>
			<div class=\"date\">$sdesc</div><hr /><br />
			";
		}
		else {
			if ($prod["name"] == "Caffo" & !isset($pID)) {
				echo "<img src=\"admin\layout\buttons\link.gif\">&nbsp;<a href=\"products.php?pID=". $prod["pID"] ."\"><b>". $prod["name"] ."</b></a>
				<div class=\"date\">$sdesc</div><hr /><br />
				";
			}
			else {
				echo "<a href=\"products.php?pID=". $prod["pID"] ."\"><b>". $prod["name"] ."</b></a>
				<div class=\"date\">$sdesc</div><hr /><br />
				";
			}
		}
	}

Tyfius

Legacy Member
Kan je niet gewoon een query doen?
Selecteer het 1ste item uit de tabel, ORDER BY `name` ofzo...

Sprits

Legacy Member
kheb het dus verkeerd uitgelegt :p
(ik mag de website nog ni vrijgeve dus is het nogal moeilijk om het te late zien en moeilijk om uit te leggen:))

ik zal wel een andere oplossing zoeken. toch bedankt

Tyfius

Legacy Member
Dan heb je het inderdaad verkeed uitgelegd. Zoals ik uw uitleg begrijp wil je bij het huidige geselecteerde product er een pijltje voor tonen. Als je geen product selecteerd moet dit bij het 1ste product uit de tabel gebeuren. Uit je 2de post leid ik af dat dit alfabetisch moet gebeuren.
Dus: if geen ID then SELECT ... FROM ... ORDER BY `name` ASC -> geeft het 1ste product uit de tabel weer...

Sprits

Legacy Member
ja, twas nogal moeilijk voor uit te leggen... maar ik heb juist te horen gekregen dat ni het eerste product, maar gewoon het product 'Caffo' als eerste moet getoont worden :D

dus, het is al in orde! toch bedankt :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan