Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: php menu

Sivun loppuun

JyKKemus [20.02.2008 08:49:38]

#

En keksinyt parempaa otsikkoa.

Eli kyseessä on valikko jossa on kategoria ja sen alikategoriat.
En keksi millään miten saan että koodi tulostaisi alakategoriotten jälkeen tuon </div> tekstin

            <a class="item1" href="javascript:void(0)">Kategoriat</a>
		<div class="section">
<?php

$result = mysql_query("SELECT ala.id, cat.name, ala.name FROM alakategoriat ala LEFT JOIN category cat ON cat.id = ala.kategoria ORDER BY cat.id, ala.name", $yhteys);

$tempCat = null;

	while ($row = mysql_fetch_row($result)) {

	    if ($tempCat != $row[1]) {

                // Kategoria
		echo "\t\t<a class=\"item2 arrow\" href=\"javascript:void(0)\">" . $row[1] . "<img src=\"images/arrow1.gif\" width=\"10\" height=\"12\"/></a>\n";
		echo "\t\t\t<div class=\"section\">\n";}

                // Alakategoria
		echo "\t\t\t\t<a class=\"item2\" href=?page=pics&id=" . $row[0] . ">" . $row[2] . "</a>\n";

		$tempCat = $row[1];}

?>
		</div>

JyKKemus [20.02.2008 11:08:50]

#

Eli vähän tarkennusta siis sitten kun kategorian kaikki alakategoriat on tulostettu niin tulostuisi </div> teksti ja sitten alkaisi tulostumaan uus kategoria ja sen alakategoriat jne.

Tän näkönen siitä pitäisi tulla (koodia vähän karsittu)

<a class="item1" href="javascript:void(0)">Kategoriat</a>
	<div class="section">
	<a class="item2 arrow" href="javascript:void(0)">Kategoriaa>
			<div class="section">
				<a class="item2" href=#>Alakategoria</a>
				<a class="item2" href=#>Alakategoria</a>
				<a class="item2" href=#>Alakategoria</a>
			</div>
	<a class="item2 arrow" href="javascript:void(0)">Kategoria</a>
			<div class="section">
				<a class="item2" href=#>Alakategoria</a>
			</div>
	</div>

TsaTsaTsaa [20.02.2008 11:28:54]

#

Menisköhän jotenkin näin äkkiä sutastuna:

<a class="item1" href="javascript:void(0)">Kategoriat</a>
<div class="section">

<?php
$kategoriat = mysql_query("SELECT id, name FROM category", $yhteys); // haetaan kategoriat
$result = mysql_query("SELECT ala.id, cat.name, ala.name
                       FROM alakategoriat ala
                       LEFT JOIN category cat ON cat.id = ala.kategoria
                       ORDER BY cat.id, ala.name", $yhteys);

while ($row = mysql_fetch_row($kategoriat))
{
  // Kategoria
  echo "\t\t<a class=\"item2 arrow\" href=\"javascript:void(0)\">"
        . $row[1] . "<img src=\"images/arrow1.gif\" width=\"10\" height=\"12\"/></a>\n";
  echo "\t\t\t<div class=\"section\">\n";

  // Alakategoriat
  while ($rowa = mysql_fetch_row($result))
  {
    if ( $rowa[1] == $row[1] )
    {
    echo "\t\t\t\t<a class=\"item2\" href=?page=pics&id=" . $rowa[0] . ">" . $rowa[2] . "</a>\n";
    }
  }

  echo "</div>";
}
?>

</div>

JyKKemus [20.02.2008 13:42:32]

#

Jokin vika vielä kun nyt se ei tulosta ton toisen kategorian alakategorioita

TsaTsaTsaa [20.02.2008 17:28:47]

#

Niin no vikahan on siinä, että $resultista loppuu rivit jo ekalla kertaa. Korjaussarja:

<a class="item1" href="javascript:void(0)">Kategoriat</a>
<div class="section">

<?php
$kategoriat = mysql_query("SELECT id, name FROM category", $yhteys); // haetaan kategoriat
$result = mysql_query("SELECT ala.id, cat.name, ala.name
                       FROM alakategoriat ala
                       LEFT JOIN category cat ON cat.id = ala.kategoria
                       ORDER BY cat.id, ala.name", $yhteys);

while ($row = mysql_fetch_row($kategoriat))
{
  // Kategoria
  echo "\t\t<a class=\"item2 arrow\" href=\"javascript:void(0)\">"
        . $row[1] . "<img src=\"images/arrow1.gif\" width=\"10\" height=\"12\"/></a>\n";
  echo "\t\t\t<div class=\"section\">\n";

  // Alakategoriat
  for (int $i = 0 ; $i < mysql_num_rows($result) ; ++$i)
  {
    $alaid = mysql_result($result, $i, 0);
    $catnimi = mysql_result($result, $i, 1);
    $alanimi = mysql_result($result, $i, 2);

    if ( $catnimi == $row[1] )
    {
    echo "\t\t\t\t<a class=\"item2\" href=?page=pics&id=" . $alaid . ">" . $alanimi . "</a>\n";
    }
  }

  echo "</div>";
}
?>

</div>

tsuriga [20.02.2008 18:12:07]

#

Sama esimerkiksi template-malliin (tietokantahaut vielä muualle, väleillä väliä jos kaipaa lisäselkeyttä), toiminnasta en sano mittään. Tuli tykästyttyä tähän Symfony frameworkkiin tutustuessa.

<?php
$kategoriat = mysql_query( "SELECT name FROM category", $yhteys );
$alakategoriat = mysql_query( "SELECT ala.id, cat.name, ala.name
                               FROM alakategoriat ala
                               LEFT JOIN category cat ON cat.id = ala.kategoria
                               ORDER BY cat.id, ala.name", $yhteys );
?>
<a class="item1" href="javascript:void(0)">Kategoriat</a>
<div class="section">
<?php while ( $rowK = mysql_fetch_array( $kategoriat ) ): ?>
 <a class="item2_arrow" href="javascript:void(0)">
 <?php echo $rowK[ 'name' ]; ?>
 <img src="images/arrow1.gif" width="10" height="12" /></a>;
 <div class="section">;
  <?php while ( $rowAK = mysql_fetch_array( $alakategoriat ) ): ?>
  <?php if ( $rowAK[ 'ala.name' ] === $rowK[ 'name' ] ): ?>
  <a class="item2" href="?page=pics&id=<?php echo $rowAK[ 'ala.id' ]; ?>"><?php echo $rowAK[ 'ala.name' ]; ?></a>
  <?php endif; ?>
 <?php endwhile; ?>
 </div>
<?php endwhile; ?>
</div>

JyKKemus [21.02.2008 07:56:18]

#

Tämä toimii muuten mutta se ei tulosta linkkiä mitä toisessa kategoriassa on

<?php

	$kategoriat = mysql_query("SELECT name FROM `category` ", $yhteys); //kategoriat
	$result = mysql_query("SELECT ala.id, cat.name, ala.name FROM alakategoriat ala
	LEFT JOIN category cat ON cat.id = ala.kategoria ORDER BY cat.id, ala.name", $yhteys);

	while ($row = mysql_fetch_row($kategoriat)) {

	// Kategoria
	echo "\t\t<a class=\"item2 arrow\" href=\"javascript:void(0)\">
	" . $row[0] . "<img src=\"images/arrow1.gif\" width=\"10\" height=\"12\"/></a>\n";
	echo "\t\t\t<div class=\"section\">\n";

	// Alakategoriat
	while ($rowa = mysql_fetch_row($result)) {

	if ( $rowa[1] == $row[0] ) {

	echo "\t\t\t<a class=\"item2\" href=?page=pics&id=" . $rowa[0] . ">
	" . $rowa[2] . "</a>\n"; } }

	echo "\t\t\t</div>\n"; }
?>

TsaTsaTsaa [21.02.2008 08:44:49]

#

Eikö tuo minun korjaussarja auttanut?

JyKKemus [21.02.2008 14:00:57]

#

ei

Parse error: syntax error, unexpected T_VARIABLE, expecting ';'


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta