Jump to content
php.lv forumi

Linka generesana


edw

Recommended Posts

Sveiki, varbut kads var izlidzet?

 

 

Ir kods, kas attelo sadalas, apaksadalas no sql un veido linku tam, piemeram "?id=4", bet man vajadzetu, lai saja linka tiktu ieklauta vel viena kolona no sql "info", un links izskatitos apmeram sadi "?id=4&info=in_c".

 

kods ir sads,

 

<?php
 // nodrošinām, lai $_GET['id'] eksistētu un lai tas būtu skaitlis
 $_GET['id'] = isset($_GET['id']) ? (int)$_GET['id'] : 0;

 // $_GET['id'] mainīt nevajag (šis mainīgais var noderēt citās lapas vietās),
 // tāpēc izveidojam jaunu mainīgo; šajā mainīgajā esošā vērtība tiks mainīta
 $id = $_GET['id'];

 // izveidojam nepieciešamo parent_id sarakstu
 $parents = array($id);
 while ( $id ) {
$res = mysql_query("select parent_id from toc where id = {$id} limit 1");
$row = mysql_fetch_row($res);
mysql_free_result($res);
if ( !$row ) { break; }
$id = $row[0];
$parents[] = $id;
 }
 $parents = implode(',', $parents);

 // selectojam izvēlnes attēlošanai nepieciešamos datus
 $res = mysql_query("select id, parent_id, title from toc where parent_id in ({$parents}) order by id asc");

 while ( $row = mysql_fetch_assoc($res) ) {
$toc[$row['parent_id']][] = $row;
 }
 mysql_free_result($res);

 // attēlojam izvēlni
 // izvēlnes attēlošanai izmantosim rekursīvu f-ju
 function ShowChildren ($toc, $parent_id, $level ) {
foreach ( $toc[$parent_id] as $elem ) {
  $indent = str_repeat('  ', $level);
  $current = $_GET['id'] == $elem['id'] ? "style=''" : '';
  echo "<a class='links' href='?id={$elem['id']}' {$current}><h2 class='bar'>{$indent}{$elem['title']}</h2></a>";
  if ( isset($toc[$elem['id']]) ) {
	ShowChildren($toc, $elem['id'], $level + 1);
  }
}
 }
 ShowChildren($toc, 0, 0);

?>

Ja, kas sis gabals nemts no http://www.misc.lv/?id=20

 

Varbut kads var izlidzet, meginaju vairakus varinatus, bet sada veida skripta nu nekadi nesanak man. Agrak stradaju ar vienkarsaku skriptu, kur nolasa tikai sadalas un tur problemu nekadu nebija, bet nu tagad vajag ari apaksadalas un tapc deretu jusu palidziba.

Link to comment
Share on other sites

Ja, kas sis gabals nemts no http://www.misc.lv/?id=20

Paldies par atsauci ;) vēlējos vien piebilst, ka šeit redzamajā kodā ir veiktas šādas tādas izmaiņas (t.i., ir pāris nesmukumi, kuru nav misc.lv atrodamajā) ;)

 

Par atbildi - kamēr reģistrējos, andrisp jau paspēja atbildēt - labo <a> tega href atribūta vērtību.

Link to comment
Share on other sites

×
×
  • Create New...