Bradley99 Posted June 25, 2012 Share Posted June 25, 2012 Evening, I'm trying to add some code so that IF 2 items ARE inside a table, then part of an echo, doesn't echo. My echo is listing forms for users to make picks, but I'm trying to code so that IF a user has already a pick for a certain fight, that section of the form doesn't show, just the ones he hasn't picked will. Here's my echo code: <? $showevent = mysql_query("SELECT * FROM fights WHERE event='$viewevent' ORDER by id ASC"); while($the=mysql_fetch_object($showevent)){ echo " <form action='' method='post'><tr><td class='profilerow'><input type=radio name=fighter_id value=$the->fighter1> $the->fighter1 <BR> <input type=radio name=fighter_id value=$the->fighter2> $the->fighter2 <BR> <input type=radio name=fighter_id value=1> Draw</td> <td class='profilerow'><select name=method><option value=KO>Knockout</option><option value=TKO>Technical Knockout</option><option value=DEC>Decision</option></select></td> <td class='profilerow'><select name=round><option value=1>1</option><option value=2>2</option><option value=3>3</option><option value=4>4</option><option value=5>5</option></select></td> <td class='profilerow'><select name=bonus><option value=Yes>Yes</option><option value=No>No</option></td> <input type='hidden' name='fight_id' value='$the->id'> <td class='profilerow'><input type='Submit' name='Submit' value='Pick' class='Submit' /> </td></form> </tr>"; } ?> I was going to try and use something like this: $pickdone = mysql_query("SELECT * FROM betting WHERE user_id='$user->id' AND fight_id='$fight_id"); if ($pickdone. . . . ){ But I can't figure what should go in the IF part. Any help is appreciated. Quote Link to comment Share on other sites More sharing options...
Psycho Posted June 25, 2012 Share Posted June 25, 2012 I'm not really following your explanation. You state you want to exclude the output where "2 items ARE inside a table". I read that as if there are two records with the same value. but, I think you mean you want to exclude records where to fields have two different values. It also looks like you are trying to run two queries to accomplish that. That''s unnecessary. If there are records you are not going to use - then don't query them. You have one table for events and another table for the bets by users for those events and you want to exclude the events where the user has already placed a bet. So change the first query to exclude the records you don't want. I'm not sure what fields from the two table are used to associate them, but I am going to guess that the fight_id in the bets table is used to associate with the id in the fights table. Not sure, but you can make the correction as needed. I can think of two ways to accomplish this, but not sure which is more efficient: SELECT * FROM fights WHERE event='$viewevent' AND id NOT IN (SELECT fight_id FROM betting WHERE user_id='$user->id') ORDER by id ASC SELECT fights.* FROM fights LEFT JOIN betting ON betting.fight_id = events.event_id AND user_id='$user->id' WHERE fights.event='$viewevent' AND betting.fight_id IS NULL ORDER by fights.id ASC EDIT: Modified errors in 2nd query Quote Link to comment Share on other sites More sharing options...
Bradley99 Posted June 25, 2012 Author Share Posted June 25, 2012 You got it spot on with the code, Thanks!! Sorry if my explanation wasn't written too well, thanks again! Man they really need to put the SOLVED button back Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.