Šta je novo?

Mala PHP / MySQL pomoc potrebna.

SeRPeNT

Slavan
Učlanjen(a)
17.10.2005
Poruke
554
Poena
320
Imam jedan fajl iz koga skripta cita array i posle treba da ga dalje obradjuje.
Taj fajl je u staticnom formatu a ja bih zeleo da ga prebacim da cita iz baze.
Uspeo sam da namestim da procita odredjenu tabelu ali mi red iz tabele tretira kao pojedinacni array, a ja bi zeleo da svaki red bude za sebe.

Evo malo koda da ne brbljam vise:

Ovo je taj staticni fajl
Kod:
$slides = (object)array(
// --- Start slide list ---
// slide elements
(object)array(
					"title" => " Testslide",
					"category" => "About  Testslide",
					"tagline" => "Eye-candy for any PHP based website",
					"text" => " Testslide is the most eye-catching way to display your featured articles, stories or even products in your PHP based website, including CMSs like WordPress or Drupal.",
					"image" => "knightandday.jpg",
					"thumbImage" => "",
					"link" => "http://www.Testslide.net",
					"linkOpensInNewWindow" => 0,
					"showReadMore" => 1,
				),
				
				// slide elements
				(object)array(
					"title" => " Testslide is Search Engine Friendly!",
					"category" => "About  Testslide",
					"tagline" => "Makes it iPhone compatible too!",
					"text" => "Unlike Flash based Testslides,  Testslide uses CSS and Javascript wizardry only. The content of the slides is laid out as html code, which means it can be crawled by search engines. The proper usage (and order) of h1, h2, p (and more) tags will make sure Google (or any other search engine) regularly indexes your latest/featured items.",
					"image" => "theinvasion.jpg",
					"thumbImage" => "",
					"link" => "http://www.Testslide.net",
					"linkOpensInNewWindow" => 0,
					"showReadMore" => 1,
				),
);

Posle ga druga skripta ovako parsira:
Kod:
foreach($slides as $count=>$slide){

	// Perform slide limit
	if($fpssSlideLimit && $count>=$fpssSlideLimit) continue;
	
	// Use slide IDs for indexing the array
	$key = $count+1;

	// Slide name
	$output[$key]->name = $slide->name;

	// Slide name used in alt attributes
	$output[$key]->altname = htmlentities($output[$key]->name, ENT_QUOTES, 'UTF-8');
	
	// Slide link
	if($slide->link){
		$output[$key]->link = JWFrontpageSlideshowHelper::ampReplace($slide->url);
	} else {
		$output[$key]->link = 'javascript:void(0);';
	}
	
	// Slide link target
	$output[$key]->target = ($slide->linkOpensInNewWindow && $output[$key]->link != 'javascript:void(0);') ? ' target="_blank"' : '' ;

	// Slide text
	$output[$key]->text = $slide->text;

	// Slide tagline
	$output[$key]->tagline = strip_tags($slide->teaser);
	
	// Slide "read more..." link
	$output[$key]->readMore = $slide->showReadMore;

	// Category
	$output[$key]->secCatPath = $slide->category;

	// Slide image (main)
	$output[$key]->mainImage = $slide->image;

	// Slide image (thumb)
	if($slide->thumbImage){
		$output[$key]->thumbImage = $slide->thumbImage;
	} else {
		$output[$key]->thumbImage = $slide->image;
	}
	
	// Slide counter
	if(($count+1) < 10) $output[$key]->counter = "0".($count+1); else $output[$key]->counter = $count+1;

	// Slide rotate action
	if($rotateAction=='mouseover'){
		$output[$key]->rotateAction = ' onclick="parent.location=\''.$output[$key]->link.'\';return false;"';
	} else {
		$output[$key]->rotateAction = '';
	}
}

E sad ja sam izbrisao sve iz prvog fajla i ubacio sledece:

Kod:
define("PREFIX", 'slides_');
$max_entrys = 4;
$query = "SELECT * FROM ".PREFIX."test WHERE activated=1 ORDER BY sortid ASC LIMIT 0,".$max_entrys;	
$result = mysql_query($query) or die(mysql_error());
$slides = mysql_fetch_array($result);

U ovom slucaju skripta parsira sve kolone u jednom redu kao zasebni $sliders umesto kao array ...
Imate li ideju gde je zapelo 🙂
 
Poslednja izmena:
Uspeo sam da resim.

Ovako treba:
Kod:
define("PREFIX", 'slides');
$query = "SELECT * FROM ".PREFIX."test WHERE activated=1 ORDER BY sortid ASC";	
$result = mysql_query($query) or die(mysql_error());
$num = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
         { 
			$slides[]= (object)array(	
					"title" => $row['title'],
					"category" => $row['category'],
					"tagline" => $row['tagline'],
					"text" => $row['text'],
					"image" =>  $row['image'],
					"thumbImage" => "",
					"link" => $row['link'],
					"linkOpensInNewWindow" => $row['linkOpensInNewWindow'],
					"showReadMore" => $row['showReadMore']
								);

         }
 
Odlično da si uspeo sam da se snađeš cheers
Nego vidim da si dosta koristio "" kod indeksa arraya, ako nećeš stavljati varijablu unutar navodnika koristi polunavodnike '' to je malo brže, zato što kada staviš pune navodnike parser prolazi kroz tekst i traži varijable.
 
Nazad
Vrh Dno