
Na początek MySQL. A więc mam bazę płyt CD poszczególnych artystów. Wygląda to tak, że w tabeli artysta mieści się jego id i jego nazwa. Natomiast w tabeli płyta do każdej płyty przypożądkowany jest id artysty, który ją wyprodukował.
Tworzę aplikację, która w formie sklepu będzie obsługiwać moją bazę danych. Jestem na poziomie wyszukiwarki danych. Chciałem utworzyć taką oto wyszukiwarkę:
- Artysta - rozwijana lista zawierąjąca wszystkich artystów z bazy danych
- Gatunek - jak wyżej
- Nośnik - j.w.
Takie oto listy mam gotowe. Chcę, aby po wybraniu jakiejkolwiek opcji wyszukiwania wyświetlałą się lista płyt im odpowiadająch. Chciałbym również, aby poszczególne opcje wyszukiwania mogły się łączyć (np. Artysta + Gatunek, Gatunek + Nośnik, sam Artysta, itd.). Nie potrafię sobie natomiast poradzić z przekazaniem danych dalej i wyświetleniem dalszych danych wg wyszukiwania. Pomoże mi ktoś? Poniżej zamieszczam stworzony dotychczas przeze mnie kod:
- Kod: Zaznacz wszystko
<?php
require ('conn.php');
$artysta=mysql_query("SELECT * FROM artysta;");
$gatunek=mysql_query("SELECT gatunek FROM plyta;");
$nosnik=mysql_query("SELECT * FROM nosnik;");
$dane=mysql_query("select id_plyty, tytul, gatunek from plyta inner join (artysta, wydawca, cena) on (plyta.id_wydawcy=wydawca.id_wydawcy) and (plyta.id_artysty=artysta.id_artysty) and (plyta.id_ceny=cena.id_ceny);");
echo "<form method='post' action='katalog.php'>
Artysta: <select name='Szukaj'>
<option>wybierz</option>";
while($art=mysql_fetch_array($artysta))
{
echo "<option>".$art['nazwa_artysty']."</option>";
}
$art=$_POST['artysta'];
if(isset($_POST['Szukaj']) && $_POST['Szukaj']=='artysta')
{
if($_POST['Szukaj']=='artysta')
{
echo "selected";
}}
echo "</select><input type='submit' value='Szukaj'/></form>";
/*------------------------------------------------*/
/*-----------------WYGLĄD TABELI------------------*/
/*------------------------------------------------*/
if(isset($_POST['Szukaj']))
{
if($_POST['Szukaj']=='wybierz')
{
echo "Zły wybór, spróbuj ponownie!";
}
}
?>
Dla opcji "wybierz" funkcja działa. Co zrobić dalej?
Mam gotowy kod do wyświetlania na trochę innych zasadach, otóż tutaj wyszukiwarka wygląda tak:
-ARTYSTA -> SZUKAJ
- GATUNEK -> SZUKAJ
- NOŚNIK -> SZUKAJ
po wybraniu którejś z powyższych opcji wyświetla się tabelka w której zestawieni są wszyscy artyści, gatunki i nośniki z bazy. Poniżej kod:
- Kod: Zaznacz wszystko
<?php
require ('conn.php');
$dane=mysql_query("select id_plyty, tytul, gatunek from plyta inner join (artysta, wydawca, cena) on (plyta.id_wydawcy=wydawca.id_wydawcy) and (plyta.id_artysty=artysta.id_artysty) and (plyta.id_ceny=cena.id_ceny);");
echo "<form method='post' action='katalog.php'>
Wybierz: <select name='tabele'>
<option ";
if(isset($_POST['tabele']) && $_POST['tabele']=='Artysta')
{
if($_POST['tabele']=='Artysta')
{
echo "selected";
}}
echo ">Artysta</option>
<option ";
if(isset($_POST['tabele']) && $_POST['tabele']=='Gatunek')
{
echo "selected";
}
echo ">Gatunek</option>
<option ";
if(isset($_POST['tabele']) && $_POST['tabele']=='Nosnik')
{
echo "selected";
}
echo ">Nosnik</option>
</select><br><br>
<input type='submit' value='Szukaj' name='edytuj' value='TRUE' />
</form></fieldset>";
/*------------------------------------------------*/
/*-----------------WYGLĄD TABELI------------------*/
/*------------------------------------------------*/
if(isset($_POST['edytuj']))
{
if($_POST['tabele']=='Artysta')
{
$plyta=mysql_query("SELECT tytul FROM plyta WHERE id_artysty='".$art."';");
echo "<table border='2px' bordercolor='orange' cellspacing='2' cellpadding='2' align='center' class='founded'>
<tr align='center' valign='middle' style='color: red';>
<th bgcolor=black style=color:white><small>LP.</small></th>
<th bgcolor=black style=color:white><small>Tytul plyty</small></th>";
while ($wiersz=mysql_fetch_row($plyta))
{
echo "<tr align='center' valign='middle' style=font-weight:bold;><td bgcolor=black style=color:white><small>".$wiersz[1]."</small></td></tr>";
} echo "</table>";
}
}
if(isset($_POST['edytuj']))
{
if($_POST['tabele']=='Gatunek')
{
$gatunek=mysql_query("SELECT * FROM plyta;");
echo "<table border='2px' bordercolor='orange' cellspacing='2' cellpadding='2' align='center' class='founded'>
<tr align='center' valign='middle'>
<th style=color:white><small>Gatunek</small></th>";
while ($wiersz=mysql_fetch_array($gatunek))
{
echo "<tr align='center' valign='middle' style=font-weight:bold;><td bgcolor=black style=color:white><small>".$wiersz[5]."</small></td></tr>";
}
echo "</table></>";
}
if($_POST['tabele']=='Artysta')
{
$artysta=mysql_query("SELECT * FROM artysta ORDER BY nazwa_artysty;");
echo "<center><fieldset><b>ILOSĆ ARTYSTÓW W BAZIE: ".mysql_num_rows($artysta)."</b></fieldset></center><br>";
echo "<table border='2px' bordercolor='orange' cellspacing='2' cellpadding='2' align='center' class='founded'>
<tr align='center' valign='middle' style='color: red';>
<th bgcolor=black style=color:white><small>LP.</small></th>
<th bgcolor=black style=color:white><small>ARTYSTA</small></th>";
while ($wiersz=mysql_fetch_row($artysta))
{
echo "<tr align='center' valign='middle' style=font-weight:bold;><td bgcolor=black style=color:white><small>".$wiersz[0]."</small></td><td><small>".$wiersz[1]."</small></td></tr>";
} echo "</table>";
}
if($_POST['tabele']=='Nosnik')
{
$nosnik=mysql_query("SELECT * FROM nosnik;");
echo "<center><fieldset><legend><big><b>DANE</b></big></legend><blink><b>ILOŚĆ NosnikÓW W BAZIE: ".mysql_num_rows($nosnik)."</b></blink></fieldset></center><br>";
echo "<table border='2px' bordercolor='orange' cellspacing='2' cellpadding='2' align='center' class='founded'>
<tr align='center' valign='middle' style='color: red';>
<th bgcolor=black style=color:white><small>LP.</small></th>
<th bgcolor=black style=color:white><small>RODZAJ</small></th>";
while ($wiersz=mysql_fetch_row($nosnik))
{
echo "<tr align='center' valign='middle' style=font-weight:bold;><td bgcolor=black style=color:white><small>".$wiersz[0]."</small></td><td><small>".$wiersz[1]."</small></td></tr>";
} echo "</table>";
}
}
*/
?>
To działa, ale jak pisałem wcześniej chciałbym to zrobić na swój sposób.