[ djovan01 @ 03.01.2007. 16:13 ] @
Htela bi da uradim search and display baziran na osnovu inputa. Znaci imam neki malo form gde korisnik ubaci id i prema tome treba da izbaci kompletan report. e ovako sam ja nesto napisala .Mislim da nisam postavila $result query kako treba. ne znam kako bi drugacije trebala da glasi.

Hvala

Ovo mi je formular:
Code:

<form action="viewreport.php" method="post">
          <table width="300" border="1" align="center" class="styleForTable2">
            <tr bgcolor="#993333">
              <td colspan="2"><font color="#000000">Search </font></td>
              </tr>
            <tr>
              <td width="130">Quote Id</td>
              <td width="154"><input type="text" name="q_id"></td>
            </tr>
            <tr bgcolor="#CCCCCC">
              <td colspan="2"><input type="submit" name="Submit" value="Display Full Quote Request"></td>
              </tr>
          </table>
          <div align="center"></div>
          </form>



ovo mi je viewreport.php
Code:

<?php
$username = "lee_danijel";
$password = ""******;
$hostname = "localhost";
$id = addslashes($_POST['q_id']);

$dbhandle = mysql_connect($hostname, $username, $password)
 or die("Unable to connect to MySQL");
 
$selected = mysql_select_db("leecontr_betaquote",$dbhandle)
  or die("Could not select quote");

$result = mysql_query("SELECT * FROM test WHERE 'q_id' = $q_id");
while ($row = mysql_fetch_array($result))
{
echo "<table width='558' border='1' class='styleForTable'>\n";
echo"<tr><td width='558'>Contact Information</td></tr>\n
     <tr><td width='186'><strong>Company Name</strong><td width='186'><td>{$row['c_name']}</td></tr>\n
     <tr><td width='93'><strong>Primary Contact</strong></td><td width='93'>{$row['contact_name']}</td><td width='93'><strong>Phone</strong></td><td width='93'>{$row['phone']}</td><td width='93'><strong>E mail</strong></td><td width='93'>{$row['email']}</td></tr>\n
     <tr><td width='186'><strong>Job Location</strong></td><td width='186'>{$row['j_location']}</td></tr>\n
     <tr><td width='186'<strong>Approximate Start Date</strong></td><td width='186'>{$row['start_date']}</td></tr>\n
     <tr><td width='558'><strong>Facility Information</strong></td></tr>\n
     <tr><td width='186'><strong>Hours of Operation</strong><td width='186'>{$row['hours']}</td></tr>\n
     <tr><td width='93'><strong>Ceiling Height</strong></td><td width='93'>{$row['ceiling_ht']}</td><td width='93'><strong>Floor Thickness</strong></td><td width='93'>{$row['floor']}</td></tr>\n";
     
echo "</table>\n";
}
?>
[ Miroslav Ćurčić @ 03.01.2007. 17:09 ] @
U suštini to je to, ali:
1. trebalo bi da imaš obradu dogadjaja kada nije prenet POST podatak, nešto kao default vrednost ili izlazak iz obrade,
2. WHERE deo treba da je: WHERE q_id = '$q_id'
3. umesto mysql_fetch_array treba ti mysql_fetch_assoc
4. podaci koje dobiješ iz baze dodatno obradi s stripslashes
[ djovan01 @ 03.01.2007. 19:28 ] @
hvala lepo :) uspelo je. Jos jedno pitanje kako da ucinim da ukoliko polje u formularu je postvaljeno prazno da tu automatski bude ubaceno recimo N/A tako da kad posle uradim search i display celog reporta nemam prazna polja?


Hvala jos jednom
[ Miroslav Ćurčić @ 03.01.2007. 21:30 ] @
Pa ovo je trivijalno:
if (isset($_POST['Telefon'])) $Telefon= $_POST['Telefon'] else $Telefon= '';
if (!$Telefon) $Telefon= 'N/A';
// sad upotrebiš promenljivu $Telefon u sql instrukciji
[ djovan01 @ 04.01.2007. 14:48 ] @
Miroslave da li ima neki laksi nacin jer imam mnogoooo promenjivih. trebalo bi mi jedno 40-50 if recenica za samo jedan formular.
[ Nemanja Avramović @ 04.01.2007. 16:16 ] @
Valjda ovako ide skraćena verzija tog IF-a:
Code:
isset($_POST['Telefon'])) ? $Telefon = $_POST['Telefon'] : $Telefon= 'N/A';


E sad, ako je kod "else" uvek vrednost N/A ti možeš napraviti funkciju pa pustiti $_POST niz kao parametar funkciji, ili foreach da koristiš, ili tako nešto. $_POST je običan niz, pa se prema njemu tako i ophodiš