Ostatnio napisałem coś takiego:
Cytat
Witam wszystkich
Utknąłem w zdechłym punkcie
Mam następujący kod w formularzu:
CODE
<h1>Wyszukiwanie książek w księgarni</h1>
<form action="rezultaty.php" method="post">
Wybierz metodę wyszukiwania:<br>
<select name="metoda_szukania">
<option value="autor">Autor
<option value="tytul">Tytuł
<option value="isbn">ISBN
</select><br>
Wprowadź poszukiwane wyrażenie:<br>
<input name="wyrazenie" type="text">
<br><br>
<select name="metoda_szukania_1">
<option value="autor">Autor
<option value="tytul">Tytuł
<option value="isbn">ISBN
</select><br>
Wprowadź poszukiwane wyrażenie:<br>
<input name="wyrazenie_1" type="text">
<bR><br>
<select name="metoda_szukania_2">
<option value="0-672-31697-8">0-672-31697-8
<option value="0-672-31745-1">0-672-31745-1
</select><br>
<bR>
<input type="submit" value="Szukaj">
</form>
Wszystko działa bardzo ładnie ale nie wiem jak zrobić, żeby była opcja umożliwiająca wybranie wszystkich pozycji z danej kolumny
Czyli coś takiego:
CODE
<select name="metoda_szukania_2">
<option value="0-672-31697-8">0-672-31697-8
<option value="0-672-31745-1">0-672-31745-1
<option value="wszystkie">wszystkie
</select><br>
Skrypt wygląda następująco:
Kod php:
<?php
$metoda_szukania=$HTTP_POST_VARS['metoda_szukania'];
$metoda_szukania_1=$HTTP_POST_VARS['metoda_szukania_1'];
$metoda_szukania_2=$HTTP_POST_VARS['metoda_szukania_2'];
$wyrazenie=$HTTP_POST_VARS['wyrazenie'];
$wyrazenie_1=$HTTP_POST_VARS['wyrazenie_1'];
$wyrazenie=trim($wyrazenie);
$wyrazenie_1=trim($wyrazenie_1);
if (!$metoda_szukania || !$wyrazenie)
{
echo 'Brak parametrów wyszukiwania, spróbuj ponownie';
exit;
}
$metoda_szukania=addslashes($metoda_szukania);
$metoda_szukania_1=addslashes($metoda_szukania_1);
$metoda_szukania_2=addslashes($metoda_szukania_2);
$wyrazenie=addslashes($wyrazenie);
$wyrazenie_1=addslashes($wyrazenie_1);
$db=mysql_connect('localhost', 'root', 'qwerty') or die ('nie można się połączyć<br>'.mysql_error());
mysql_select_db('ksiazkorama');
$zapytanie= "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%' AND ".$metoda_szukania_1." like '%".$wyrazenie_1."%' AND isbn='$metoda_szukania_2'";
echo $zapytanie .'<br>';
$wynik=mysql_query($zapytanie);
$ile=mysql_num_rows($wynik);
echo 'Znaleziono ' . $ile .' pozycji<br>';
for ($i=0; $i<$ile; $i++)
{
$wiersz=mysql_fetch_array($wynik);
echo '<b>' .($i+1) .'.' .'</b>' .'<b>Tytul:</b> ';
echo stripslashes($wiersz['tytul']);
echo '<br><b>Autor:</b> ';
echo stripslashes($wiersz['autor']);
echo '<bR><b>ISBN:</b> ';
echo stripslashes($wiersz['isbn']) .'<br><br>';
}
?>
Jak by ktoś mail pomysł jak to zrobić to bede barrrrrrrrrrdzo wdzieczny:)
Utknąłem w zdechłym punkcie
Mam następujący kod w formularzu:
CODE
<h1>Wyszukiwanie książek w księgarni</h1>
<form action="rezultaty.php" method="post">
Wybierz metodę wyszukiwania:<br>
<select name="metoda_szukania">
<option value="autor">Autor
<option value="tytul">Tytuł
<option value="isbn">ISBN
</select><br>
Wprowadź poszukiwane wyrażenie:<br>
<input name="wyrazenie" type="text">
<br><br>
<select name="metoda_szukania_1">
<option value="autor">Autor
<option value="tytul">Tytuł
<option value="isbn">ISBN
</select><br>
Wprowadź poszukiwane wyrażenie:<br>
<input name="wyrazenie_1" type="text">
<bR><br>
<select name="metoda_szukania_2">
<option value="0-672-31697-8">0-672-31697-8
<option value="0-672-31745-1">0-672-31745-1
</select><br>
<bR>
<input type="submit" value="Szukaj">
</form>
Wszystko działa bardzo ładnie ale nie wiem jak zrobić, żeby była opcja umożliwiająca wybranie wszystkich pozycji z danej kolumny
Czyli coś takiego:
CODE
<select name="metoda_szukania_2">
<option value="0-672-31697-8">0-672-31697-8
<option value="0-672-31745-1">0-672-31745-1
<option value="wszystkie">wszystkie
</select><br>
Skrypt wygląda następująco:
Kod php:
<?php
$metoda_szukania=$HTTP_POST_VARS['metoda_szukania'];
$metoda_szukania_1=$HTTP_POST_VARS['metoda_szukania_1'];
$metoda_szukania_2=$HTTP_POST_VARS['metoda_szukania_2'];
$wyrazenie=$HTTP_POST_VARS['wyrazenie'];
$wyrazenie_1=$HTTP_POST_VARS['wyrazenie_1'];
$wyrazenie=trim($wyrazenie);
$wyrazenie_1=trim($wyrazenie_1);
if (!$metoda_szukania || !$wyrazenie)
{
echo 'Brak parametrów wyszukiwania, spróbuj ponownie';
exit;
}
$metoda_szukania=addslashes($metoda_szukania);
$metoda_szukania_1=addslashes($metoda_szukania_1);
$metoda_szukania_2=addslashes($metoda_szukania_2);
$wyrazenie=addslashes($wyrazenie);
$wyrazenie_1=addslashes($wyrazenie_1);
$db=mysql_connect('localhost', 'root', 'qwerty') or die ('nie można się połączyć<br>'.mysql_error());
mysql_select_db('ksiazkorama');
$zapytanie= "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%' AND ".$metoda_szukania_1." like '%".$wyrazenie_1."%' AND isbn='$metoda_szukania_2'";
echo $zapytanie .'<br>';
$wynik=mysql_query($zapytanie);
$ile=mysql_num_rows($wynik);
echo 'Znaleziono ' . $ile .' pozycji<br>';
for ($i=0; $i<$ile; $i++)
{
$wiersz=mysql_fetch_array($wynik);
echo '<b>' .($i+1) .'.' .'</b>' .'<b>Tytul:</b> ';
echo stripslashes($wiersz['tytul']);
echo '<br><b>Autor:</b> ';
echo stripslashes($wiersz['autor']);
echo '<bR><b>ISBN:</b> ';
echo stripslashes($wiersz['isbn']) .'<br><br>';
}
?>
Jak by ktoś mail pomysł jak to zrobić to bede barrrrrrrrrrdzo wdzieczny:)
Dostałem odpowiedź
Cytat
W przypadku, gdy wartość dla danego szukania będzie równa "wszystkie" to musisz w warunku dać wyszukiwanie po wszystkich polach dla żądanej wartości, czyli bierzesz w nawias a nawiasie full OR, po nawiasie dalej AND jak bylo. I tak dla każdego warunku.
Zrobiłem coś takiego
SELECT * FROM ksiazki WHERE isbn=('0-672-31697-8' OR '0-672-31745-1');
No i MySQL wyrzuca mi wszystkie rekordy a nie tylko te 2 o które mi chodzi.
Mam jeszcze pytanie jak zapisać warunek:
Cytat
W przypadku, gdy wartość dla danego szukania będzie równa "wszystkie" to musisz w warunku dać wyszukiwanie po wszystkich polach dla żądanej wartości, czyli bierzesz w nawias a nawiasie full OR, po nawiasie dalej AND jak bylo. I tak dla każdego warunku.
za pomocą formularza, ja zrobiłem coś takiego ale chyba się nie popisałem
Heeeeeeeeeeeeeeeeelp