Joined: 25 Aug 2003 Posts: 1842 Location: Zagreb, Hrvatska
Posted: 07.06.2009 20:00 Post subject: Re: php forme
paor wrote:
mali telefonski imenik
1. kako rješiti ako netko želi pretragu sa praznim inputtekst poljem (bez specifičnog prezimena)
Najbolje tako da izbacis prezime iz WHERE uvjeta u tom slucaju.
Detektiras u php-u ako je polje prazno, i ne stavis to polje u sql upit.
Quote:
2. koji option value staviti za Sve ulice da bi pretraga vraćala rezultate svih ulica, pokušao sam sa *, pa ne ide
Mozes probati staviti '%' znak, medjutim puno bolje bi bilo da stavis npr. 'sve', i to onda
ulovis s php-om, pa ako je odabrana ta opcija, polje ulica izbacis iz where uvjeta.
pokušavam sa sintaksom if(empty($_POST['prezime'])), ali ne mogu pogoditi ispravnu sintaksu ili položaj u datoteci
Vjerujem da postoji jednostavniji nacin dohvata, ali tek sam poceo sa php-om
Code:
<?php
// prvo provjeri da li je ista doslo preko POST-a
if (isset($_POST["prezime"])) {
// doslo je, sad vidi da li je prazan string ili ima nesto unutra:
if (!empty($_POST["prezime"])) $prezime = $_POST["prezime"]; // ima nesto
} else {
$prezime = ""; // prezime nije dohvaceno.
}
echo $prezime;
?>
function make_var_safe($val) {
if (eregi("\r", $val) || eregi("\n", $val)) {
return null;
}
$val = htmlspecialchars(trim($val));
if (get_magic_quotes_gpc()) {
$val = stripslashes($val);
}
return $val;
}
if (isset($_POST['submit'])) {
// generic form submit handling
foreach ($where_fields as $field => $dummy) {
// just a simplistic way to make sure input is somewhat safe
$_POST[$field] = make_var_safe($_POST[$field]);
// if a field is empty, unset it from the array
// so it doesn't get included in the sql generation loop
if (empty($_POST[$field])) {
unset($where_fields[$field]);
}
}
/**
* special case for 'ulica', if "sve" is selected
* unset the field so it doesn't get included in the query
*/
if (isset($_POST['ulica']) && $_POST['ulica'] === 'sve') {
unset($where_fields['ulica']);
}
}
// main part of the query
$sql = "SELECT " . implode(', ', $fields_to_fetch) . " FROM telimenik";
// looping over the fields and generating the sql query we need
$total_fields = count($where_fields);
$cnt = 0;
if ($total_fields) {
$sql .= ' WHERE ';
foreach ($where_fields as $field => $dummy) {
$cnt++;
if ($cnt > 1) {
$sql .= ' AND ';
}
$sql .= $field . " = '" . $_POST[$field] . "'";
}
}
$sql = trim($sql);
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum