Php-link maken

Status
Niet open voor verdere reacties.

janusss

Gebruiker
Lid geworden
21 okt 2006
Berichten
91
hey, weer een probleempje, hopelijk is er hier weer iemand die dat kan oplossen...

PHP:
$deel0 = '<li>';
		$deel1 = '<a href="http://www.mijnhuisarts.com/index.php?page="';
		$deel2 = $row1[$row_num1];
		$deel3 =  '">';
		$deel4 = '</a>';
		$deel5 = '</li>';
		$big_string = $deel0.$deel1.$deel2.$deel3.$deel2.$deel4.$deel5;
		print($big_string);

waarbij $row1 = mysql_fetch_array($result1)
en for ($row_num1 = 0;
$row_num1 < $row_count1;
$row_num1++

welnu, zoals jullie op http://www.Mijnhuisarts.com kunnen zien kan ik de text wel displayen maar kan ik er niet voor zorgen dat de link werkt, de link wordt namelijk index.php?page=

plzz help
 
Code:
<?php
//PHP CODE
if($_GET['page'] == "home")
 {
 echo "homepage";
 }
?>

<!-- LINK IN HTML CODE -->
<a href="?page=home">Homepage</a>

Bedoel je dit
 
Maak van
PHP:
        $deel1 = '<a href="http://www.mijnhuisarts.com/index.php?page="';

eens
PHP:
        $deel1 = '<a href="http://www.mijnhuisarts.com/index.php?page=';

Aangezien je in deel3 de string nogmaals afsluit met een "
 
Laatst bewerkt:
Je maakt het jezelf wel moeilijk...

Je kunt het ook zo doen:
PHP:
$link = '<li>
          <a href="http://www.mijnhuisarts.com/index.php?page='. $row1['$row_num1'] .'">
          </a>
         </li>'; //Moet je geen text voor de link hebben?
 
Laatst bewerkt:
Je maakt het jezelf wel moeilijk...

Je kunt het ook zo doen:
PHP:
$link = '<li>
          <a href="http://www.mijnhuisarts.com/index.php?page="'. $row1['$row_num1'] .'">
          </a>
         </li>'; //Moet je geen text voor de link hebben?

Vergeet dan niet die extra " te verwijderen ;)
 
hmm, ik moet dus wel text hebben voor die link he..

PHP:
$link = '<li>
          <a href="http://www.mijnhuisarts.com/index.php?page='. $row1['$row_num1'] . '">' .
          "$row1[$row_num1]" . '</a></li>'; //Moet je geen text voor de link hebben?  
		print($link);

Dit is dus de code die ik momenteel gebruik, alles gaat goed, enkel die page=pagina lukt niet, de links verwijzen allemaal naar http://www.mijnhuisarts.com/index.php?page= en dan niets meer :confused:
 
Waarschijnlijk klopt hetgeen je uit de database wilt halen niet.

Wat moet er volgens jou als resultaat uit $row1['$row_num1'] komen?
 
Kunnen tabelnamen met een $ beginnen?

waarschijnlijk is het $row1['row_num1']

:rolleyes: Nieuw in PHP? Wat dacht je van een variabele?:)

Maarja, daar gaan we tenminste vanuit. Het is aan de TS om ons te informeren...
 
Om even wat duidelijkheid te scheppen: de hele code van mijn functie:
PHP:
/* functie display_menu_inhoud definieren*/


function display_menu_inhoud($row_kk){

	$query1="SELECT pagina_naam
FROM inhoud_index
WHERE onderverdeling = '$row_kk'
";
			$result1= mysql_query($query1);
			$row_count1= mysql_num_fields($result1);
			print('<ul>');
			while ($row1 = mysql_fetch_array($result1))
			
		
			{
			
			for ($row_num1 = 0;
           $row_num1 < $row_count1;
           $row_num1++){     
        
		
		$link = '<li>
          <a href="http://www.mijnhuisarts.com/index.php?page='. $row1['$row_num1'] . '">' .
          "$row1[$row_num1]" . '</a></li>'; //Moet je geen text voor de link hebben?  
		print($link);
		
		
		}
		
		}print('</ul>');
		
		}

Hopelijk vindt nu iemand de oplossing..:thumb:
 
Waarom je precies een FOR-lus in een WHILE-lus wilt doen ontgaat mij.

Ik denk dat je in de tabel inhoud_index ook een veld ID hebt? Dan heb je de FOR-lus niet nodig...

Probeer dit eens:
PHP:
function display_menu_inhoud($row_kk)
{ 
  $inhoudQuery ="SELECT id, pagina_naam
                 FROM inhoud_index
                 WHERE onderverdeling = '$row_kk'";
  $inhoudResult = mysql_query($inhoudQuery) or die(mysql_error()); 
  $totaalAantal = mysql_num_rows($inhoudResult); 
  echo '<ul>'; 
  while ($inhoudRow = mysql_fetch_array($inhoudResult)) 
  {
    $link = '<li> 
              <a href="http://www.mijnhuisarts.com/index.php?page='. $inhoudRow['id'] .'">'. 
               $inhoudRow['pagina_naam'] .'
              </a></li>';  
    echo $link;
  }
  echo '</ul>'; 
}

Wat roep je precies aan met $row_kk?
 
de functie die ik hierboven gepost heb wordt aangeroepen in de volgende functie

PHP:
/* functie display_onderverdeling definieren*/

function display_onderverdeling()
{
$query="SELECT onderverdeling FROM onderverdelingen ORDER BY id";
			$result= mysql_query($query);
			$row_count= mysql_num_fields($result);
			while ($row = mysql_fetch_array($result))
    {
      for ($row_num = 0;
           $row_num < $row_count;
           $row_num++){     
        
		print('<h1>');
		print($row[$row_num]);
		print('</h1>');
		
		
		display_menu_inhoud($row[$row_num]);
	
		}
		}
		}

text dus denk ik...


***** EDIT*****

De code die je gepost hebt werkt helemaal, heb gewoon inhoudRow['pagina_id'] moete vervangen door inhoudRow['pagina_naam']


Danku!!!
 
Laatst bewerkt:
Ook in die functie zie ik weer een FOR in een WHILE. Heb je hier een specifieke reden voor?

Aan de query te zien haal je alleen het veld 'onderverdeling' uit de database dus kan het volgens mij ook wel zo doen als je het veld 'id' ook gebruikt:

PHP:
function display_onderverdeling() 
{ 
  $onderverdelingQuery = "SELECT id, onderverdeling FROM onderverdelingen ORDER BY id"; 
  $onderverdelingResult = mysql_query($onderverdelingQuery) or die(mysql_error());
  while ($onderverdelingRow = mysql_fetch_array($onderverdelingResult)) 
  { 
    echo '<h1>'. $onderverdelingRow['onderverdeling'] .'</h1>';
    display_menu_inhoud($onderverdelingRow['id']);
  }
}

Je hebt al een ID in de database meelopen dus waarom zou je die niet gewoon gebruiken? Tenminste ik denk dat je daarom die FOR-lus steeds maakt...
 
Ik ben vreselijk nieuw in php/mysql...

Ik gebruik dan ook het eerste wat in mijn hoofd opkomt en blijkbaar is dat niet altijd het juiste...

Daarom ben ik enorm dankbaar dat dit forum bestaat, voor al mijn problemen hebben jullie al een oplossing gevonden, bedankt daarvoor!

:thumb:
 
De code die je gepost hebt werkt helemaal, heb gewoon inhoudRow['pagina_id'] moete vervangen door inhoudRow['pagina_naam']

Ik zie net dat je het gewijzigd hebt, maar ik snap niet precies wat je nu gewijzigd hebt.

Je zegt dat je dit deel hebt gewijzigd:
PHP:
    $link = '<li>  
              <a href="http://www.mijnhuisarts.com/index.php?page='. $inhoudRow['id'] .'">'.  
               $inhoudRow['pagina_naam'] .' 
              </a></li>';
Maar je roept nu pagina_id op, krijg je dan niet gewoon bij de link alleen een getal te zien waarop je moet klikken? Ik zag in jou query dat je een veld pagina_naam had dus ik neem aan dat die als link moet worden weergegeven... Of hoe heb je $link nu gemaakt? En belangrijker nog: Hoe ziet je query er nu uit.
 
het antwoord op al de vragen, samengevat in een klein stukje code:
PHP:
function display_menu_inhoud($row_kk){ 
  $inhoudQuery ="SELECT id, pagina_naam
                 FROM inhoud_index
                 WHERE onderverdeling = '$row_kk'";
  $inhoudResult = mysql_query($inhoudQuery) or die(mysql_error()); 
  $totaalAantal = mysql_num_rows($inhoudResult); 
  echo '<ul>'; 
  while ($inhoudRow = mysql_fetch_array($inhoudResult)) 
  {
    $link = '<li> 
              <a href="http://www.mijnhuisarts.com/index.php?page='. $inhoudRow['pagina_naam'] .'">'. 
               $inhoudRow['pagina_naam'] .'
              </a></li>';  
    echo $link;
  }
  echo '</ul>'; 
}
 
De gestripte versie :D
PHP:
function display_menu_inhoud($row_kk){  
  $inhoudQuery ="SELECT pagina_naam 
                 FROM inhoud_index 
                 WHERE onderverdeling = '$row_kk'"; 
  $inhoudResult = mysql_query($inhoudQuery) or die(mysql_error());
  echo '<ul>';  
  while ($inhoudRow = mysql_fetch_array($inhoudResult))  
  { 
    $link = '<li>  
              <a href="http://www.mijnhuisarts.com/index.php?page='. $inhoudRow['pagina_naam'] .'">'.  
               $inhoudRow['pagina_naam'] .' 
              </a></li>';   
    echo $link; 
  } 
  echo '</ul>';  
}
De id heb ik uit de query gehaald, die gebruik je toch niet en ook het aantal velden tellen is niet meer nodig :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan