|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
What am I doing wrong with this elseif condition?
$query = "SELECT company, priority FROM companyid_uks49179 WHERE town='Bury St. Edmunds' AND category='sleep' AND priority IN ('1', '2', '3') ORDER BY priority"; This returns a result set of a number of companies with different priority numbers from 1 to 3. see webpage http://www.freeweekends.co.uk/test3.php I now want to create a table result for each one, with an 'elseif' statement creating a different effect for each of the three different priorities. $result = mysql_query($query) or die ('Error in query: $query. ' . mysql_error()); echo '<table border=1 cellpadding=10>'; while($row = mysql_fetch_object($result)) { $priority = $row['priority']; if ($priority == '1') { echo '<tr>'; echo "<td>$row->company</td>"; echo '<tr>'; echo "<td>test1</td>"; echo '<tr>'; } elseif ($priority == '2') { echo '<tr>'; echo "<td>$row->company</td>"; echo '<tr>'; echo "<td>test2</td>"; echo '<tr>'; } else { echo '<tr>'; echo "<td>$row->company</td>"; echo '<tr>'; echo "<td>test3</td>"; echo '<tr>'; } } echo '</table>'; This returns all the results as if they were not priority 1 or 2. See http://www.freeweekends.co.uk/test2.php Beginners question I know, but what am I doing wrong??? Many thanks Alec |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Alec wrote:
> What am I doing wrong with this elseif condition? > > $query = "SELECT company, priority FROM companyid_uks49179 WHERE > town='Bury St. Edmunds' AND category='sleep' AND priority IN > ('1', '2', '3') ORDER BY priority"; > > This returns a result set of a number of companies with different > priority numbers from 1 to 3. see webpage http://www.freeweekends.co.uk/test3.php > > I now want to create a table result for each one, with an 'elseif' > statement creating a different effect for each of the three different > priorities. I'm that much into usage of else if when I have this kind of options, I suggest you try out a switch. > $result = mysql_query($query) or die ('Error in query: $query. ' . > mysql_error()); > > echo '<table border=1 cellpadding=10>'; > > while($row = mysql_fetch_object($result)) { //No values are in an array['priority'], they are in an object->priority; switch($row->priority) { case '1': $type='test1'; break; case '2': $type='test2'; break; case '3': $type='test3'; break; default: $type='unknown'; break; } echo "<tr>\n<td>{$row->company}</td>\n</tr>\n"; echo "<tr>\n<td>{$type}</td>\n</td>\n"; > > } > echo '</table>'; You may have to take a better look at your indentation and your html validity. Don't duplicate code when you can have it once, this way you can make your code shorter, functions will be a good thing to use if you have same code that you need to use in different places. -- //Aho |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Alec wrote:
> What am I doing wrong with this elseif condition? > > $query = "SELECT company, priority FROM companyid_uks49179 WHERE > town='Bury St. Edmunds' AND category='sleep' AND priority IN > ('1', '2', '3') ORDER BY priority"; > > This returns a result set of a number of companies with different > priority numbers from 1 to 3. see webpage http://www.freeweekends.co.uk/test3.php > > I now want to create a table result for each one, with an 'elseif' > statement creating a different effect for each of the three different > priorities. > > $result = mysql_query($query) or die ('Error in query: $query. ' . > mysql_error()); > > echo '<table border=1 cellpadding=10>'; > > while($row = mysql_fetch_object($result)) > > { > $priority = $row['priority']; > > if ($priority == '1') > > { > echo '<tr>'; > echo "<td>$row->company</td>"; > echo '<tr>'; > echo "<td>test1</td>"; > echo '<tr>'; > } > > elseif ($priority == '2') > > { > echo '<tr>'; > echo "<td>$row->company</td>"; > echo '<tr>'; > echo "<td>test2</td>"; > echo '<tr>'; > } > > else > > { > echo '<tr>'; > echo "<td>$row->company</td>"; > echo '<tr>'; > echo "<td>test3</td>"; > echo '<tr>'; > } > > } > echo '</table>'; > > This returns all the results as if they were not priority 1 or 2. See > http://www.freeweekends.co.uk/test2.php > > Beginners question I know, but what am I doing wrong??? > > Many thanks > > Alec > > Maybe it should be if ($priority == 1) ... And J.O.'s suggestion to use switch is good. -- ================== Remove the "x" from my email address Jerry Stuckle JDS Computer Training Corp. jstucklex@attglobal.net ================== |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Jerry Stuckle wrote:
> Alec wrote: >> What am I doing wrong with this elseif condition? >> >> $query = "SELECT company, priority FROM companyid_uks49179 WHERE >> town='Bury St. Edmunds' AND category='sleep' AND priority IN >> ('1', '2', '3') ORDER BY priority"; >> >> This returns a result set of a number of companies with different >> priority numbers from 1 to 3. see webpage >> http://www.freeweekends.co.uk/test3.php >> >> I now want to create a table result for each one, with an 'elseif' >> statement creating a different effect for each of the three different >> priorities. >> >> $result = mysql_query($query) or die ('Error in query: $query. ' . >> mysql_error()); >> >> echo '<table border=1 cellpadding=10>'; >> >> while($row = mysql_fetch_object($result)) >> >> { >> $priority = $row['priority']; > Maybe it should be > > if ($priority == 1) ... > > And J.O.'s suggestion to use switch is good. > The $row is a object, and he tries to use it as an array, so $priority is nothing/null, which mean it never can be 1,2 and therefore always will fall in the last else-statement. -- //Aho |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
J.O. Aho wrote:
> Jerry Stuckle wrote: >> Alec wrote: >>> What am I doing wrong with this elseif condition? >>> >>> $query = "SELECT company, priority FROM companyid_uks49179 WHERE >>> town='Bury St. Edmunds' AND category='sleep' AND priority IN >>> ('1', '2', '3') ORDER BY priority"; >>> >>> This returns a result set of a number of companies with different >>> priority numbers from 1 to 3. see webpage >>> http://www.freeweekends.co.uk/test3.php >>> >>> I now want to create a table result for each one, with an 'elseif' >>> statement creating a different effect for each of the three different >>> priorities. >>> >>> $result = mysql_query($query) or die ('Error in query: $query. ' . >>> mysql_error()); >>> >>> echo '<table border=1 cellpadding=10>'; >>> >>> while($row = mysql_fetch_object($result)) >>> >>> { >>> $priority = $row['priority']; > >> Maybe it should be >> >> if ($priority == 1) ... >> >> And J.O.'s suggestion to use switch is good. >> > The $row is a object, and he tries to use it as an array, so $priority is > nothing/null, which mean it never can be 1,2 and therefore always will fall in > the last else-statement. > Ah, I missed that one. Good catch! I just always use mysql_fetch_array(). :-) -- ================== Remove the "x" from my email address Jerry Stuckle JDS Computer Training Corp. jstucklex@attglobal.net ================== |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Jerry Stuckle wrote:
> J.O. Aho wrote: >> Jerry Stuckle wrote: >>> Alec wrote: >>>> What am I doing wrong with this elseif condition? >>>> >>>> $query = "SELECT company, priority FROM companyid_uks49179 WHERE >>>> town='Bury St. Edmunds' AND category='sleep' AND priority IN >>>> ('1', '2', '3') ORDER BY priority"; >>>> >>>> This returns a result set of a number of companies with different >>>> priority numbers from 1 to 3. see webpage >>>> http://www.freeweekends.co.uk/test3.php >>>> >>>> I now want to create a table result for each one, with an 'elseif' >>>> statement creating a different effect for each of the three different >>>> priorities. >>>> >>>> $result = mysql_query($query) or die ('Error in query: $query. ' . >>>> mysql_error()); >>>> >>>> echo '<table border=1 cellpadding=10>'; >>>> >>>> while($row = mysql_fetch_object($result)) >>>> >>>> { >>>> $priority = $row['priority']; >> >>> Maybe it should be >>> >>> if ($priority == 1) ... >>> >>> And J.O.'s suggestion to use switch is good. >>> >> The $row is a object, and he tries to use it as an array, so >> $priority is >> nothing/null, which mean it never can be 1,2 and therefore always will >> fall in >> the last else-statement. >> > > Ah, I missed that one. Good catch! I just always use > mysql_fetch_array(). :-) Thats the most common one I use, but nowadays I been more using mysqli, but when writing soap server stuff, I have run into trouble of using mysqli and have in those use mysql instead. So I compile always php with both mysql and mysqli support, at least until I have rewritten all old scripts and the soap trouble is solved somehow. -- //Aho |
|
![]() |
| Outils de la discussion | |
|
|