Autor | Zpráva | ||
---|---|---|---|
pavelec Profil |
#1 · Zasláno: 26. 3. 2014, 19:06:30
Dobrý den
Mám problém s provedením jednoho dotazu. Tedy chci vyfiltrovat data z tabulky, když uživatel zadá všechny informace vše funguje normálně, ale pokud nezadá jméno tak se mi vypíše "There was no matching record for the name" a nehledá dle přijmení. Jednoduše potřebuji aby to dokázalo hledat i dle jednoho kriteria, dle které vypíše všechny dostupné infromace z tabulky. S PHP začínám takže pokud by byl někdo ochotný a vysvětlil mi to po lopatě byl bych moc vděčný Html soubor: <!DOCTYPE html> <html > <head> <meta charset="UTF-8" /> <title>Search</title> </head> <body> <h1>Seacrh By Name</h1> <form action="hledej.php" method="get"> <select name="Jmeno"> <option value="Peter" selected="selected">Peter</option> <option value></option> <option value="Glenn" >Glenn</option> <option value="Pavel" >Pavel</option> </select> <select name="Prijmeni"> <option value="Neco" selected="selected">Neco</option> <option value="Novak" >Novak</option> <option value="Novak" >Novak</option> <input type="submit" value="Search" /> </form> </body> </html> PHP soubor: [pre <?php //capture search term and remove spaces at its both ends if the is any $searchTerm = trim($_GET['Jmeno']); $searchTerm1 = trim($_GET['Prijmeni']); //check whether the name parsed is empty if($searchTerm == "") { echo "Enter name you are searching for."; exit(); } //database connection info $host = "localhost"; //server $db = "mydata"; //database name $user = "root"; //dabases user name $pwd = ""; //password //connecting to server and creating link to database $link = mysqli_connect($host, $user, $pwd, $db); //MYSQL search statement $query = "SELECT * FROM Persons WHERE FirstName Like '%$searchTerm%' AND LastName Like '%$searchTerm1%' "; $results = mysqli_query($link, $query); /* check whethere there were matching records in the table by counting the number of results returned */ if(mysqli_num_rows($results) >= 1) { $output = ""; while($row = mysqli_fetch_array($results)) { $output .= "FirstName: " . $row['FirstName'] . "<br />"; $output .= "Name: " . $row['LastName'] . "<br />"; } echo $output; } else echo "There was no matching record for the name " . $searchTerm; ?> |
||
juriad Profil |
... připojení k DB $query = "SELECT * FROM Persons"; $cond = false; if (!empty($_GET['Jmeno'])) { $query .= " WHERE FirstName LIKE '%" . mysqli_real_escape_string(trim($_GET['Jmeno'])) . "%'"; $cond = true; } if (!empty($_GET['Prijmeni'])) { if ($cond) { $query .= " AND "; } else { $query .= " WHERE "; } $query .= "LastName LIKE '%" . mysqli_real_escape_string(trim($_GET['Prijmeni'])) . "%'"; } $results = mysqli_query($link, $query); ... Mimochodem, ten název PERSONS myslíš vážně? Množné číslo je PEOPLE. |
||
Časová prodleva: 11 let
|
0