Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Nie działa wyszukiwarka wg kryteriów....
Forum PHP.pl > Forum > Przedszkole
karminowa
Witam, mam problem z wyszukiwarką wg kilku kryteriów, ale od poczatku
mam tabelę

Id_zwiazku - int911)
Data_aktualizacji - date
Nazwa_IUPAC - varchar(100)
Nr_CAS varchar - (100)
Wzor - text
Masa_molowa - decimal(12,6)
Synonim_ang - text
synonim_pol - text

i jeszcze kilka kolumn, ale wg tych które wypisałam ma być wyszukiwanie:

formularz index.html jest następujący:

<b>Przeszukaj bazę wg: </b><br><br>
<form action="search.php" method="post">
<select name="podstawaszukania">
<option value="Nazwa_IUPAC"> Nazwy IUPAC
<option value="Nr_CAS">Numeru CAS
<option value="Wzor">Wzoru sumarycznego
<option value="Synonim_angielski">Synonimu angielskiego
</select>

Wpisz wyszukiwany produkt: <input type="text" name="phrase" />
<input type="submit" value="Szukaj!" />

</form>


a poniżej kod php search.php :

<?php
// program wyszukiwarki - search.php
// wyświetlenie nagłówka
echo'<h2>Wyniki wyszukiwania</h2>';
// usunięcie niepotrzebnych białych znaków
$_POST['phrase']=trim($_POST['phrase']);
// sprawdzenie, czy użytkownik wpisał dane
if(empty($_POST['phrase']))
// jeśli nie, to wyświetl komunikat i zakończ działanie skryptu
die('Formularz wypełniony niepoprawnie! Nie można wyświetlić wyników wyszukiwania!');
// jeśli jednak dane są wpisane poprawnie
else
{
// połączenie z bazą danych,
$base=mysqli_connect('localhost','justynaichp','123456','predict_5');
// skonstruowanie zapytania

$query="Select Nazwa_IUPAC From basic_data Where Nazwa_IUPAC Like '%{$_POST['phrase']}%' Or Nr_CAS Like '%{$_POST['phrase']}%' Or Wzor Like '%{$_POST['phrase']}%'";
// wysłanie zapytania do bazy danych
$result=mysqli_query($base,$query);
// ustalenie ilości wyszukanych obiektów
$obAmount=mysqli_num_rows($result);
// wyswietlenie ilości wyszukanych obiektów
echo'Znaleziono: '.$obAmount.'<br /><br />';
// wyświetlenie wyników w pętli
for($x=0;$x<$obAmount;$x++)
{
// przekształcenie danych na tablicę
$row=mysqli_fetch_assoc($result);
// wyświetlenie numeru identyfikacyjnego zwiazku
echo $x+1;
echo '. ';
// wyświetlenie nazwy związku
echo $row['Nazwa_IUPAC'];
echo'<br/>';

}
}
// zamknięcie połączenia
mysqli_close($base);
// koniec aplikacji
?>

jestem początkująca i nie wiem jak zrobić zeby po wybraniu w liście rozwijalnej np: Nazwy Iupac wpisać np "methanol" i zeby na stronie wyskoczył mi wynik w postaci:
Nr_Id Data aktualizacji Nazwa IUPAC Nr Cas Wzór Masa molowa Synonim angielski Synonim polski
12 2006-02-02 Ethane 74-84-0 C2 H6 30.070000 Refrigerant 170, Dimethyl, Methylmethane Etan


tzn zeby wypisywał na strone wiersz z tabel i żeby Nazwa IUOAC była linkiem

nie działa mi ta wyszukiwarka bo wląsciwie szuka tylko wg tej Nazwy IUPAC, nie wiem jak dopisać zeby wyszukiwał wg nr_CAs (liczba) czy wg Wzoru np C5H6 itd

prosze o pomoc


sadistic_son
Tak więc na początek radzę Ci Justyno umieścić kody w odpowiednim Code Box'ie bo inaczej temat zostanie zamknięty.
Następnie zmienną $query przekształcić w poniższy sposób:
  1. $query="Select Nazwa_IUPAC From basic_data Where Nazwa_IUPAC Like '%".$_POST['phrase']."%' Or Nr_CAS Like '%".$_POST['phrase']."%' Or Wzor Like '%".$_POST['phrase']."%'";
  2.  
A na koniec zamiast pętli for używać do wyświetlania wyników pętli while.
  1. //ZAMIAST TEGO:
  2. for($x=0;$x<$obAmount;$x++)
  3. {
  4. // przekształcenie danych na tablicę
  5. $row=mysqli_fetch_assoc($result);
  6.  
  7. //ZROB TAK:
  8. while($row=mysql_fetch_assoc($result)){
  9.  

Tyle na początek.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.