PHP - Looping Even If No Content
I want to display 50 results, theirfore I'm using a while loop to do so, the issue is, if $row consists of results lower then 50 (it will display them) and not display 50..so I'm trying to figure out a way so even if $row doesn't cosist of 50 i'll display what it has aswell as continue the $i (and for the rest display NO CONTENT).
I've come up with the following on the spot (not sure if it even would work) - but was wanting a better solution. $i = 0; $results = mysql_num_rows($result); while ($row = mysql_fetch_assoc($result)) { $i++; echo $i .' CONTENT '.$row['name'].'<br />'; } if ($result < 50) { for($i <= 50 - $result; $i++) { echo $i .' NO CONTENT<br />'; } } Similar TutorialsHi, I will start off trying to explain what I am trying to make the best I can. What I want to create is a script that gets the gold value from this website: http://www.lbma.org.uk/pages/index.cfm?page_id=46&title=current_statistics and then save it to a variable which I will use to calculate values of different gold karats. Here is the content in bold I need on the website I linked: Quote LONDON GOLD FIXING USD GBP EUR AM 1588.00 1005.127 1251.083 PM 1589.50 1004.741 1249.803 So what help do I need? Well, I don't expect you to figure out the calculating part for me but some help how to get that content pointed out above and save it to a variable is what I would appreciate getting some help with. I don't know much PHP, only some and I have been trying to figure this out for a day now without any success. I suppose php get contents and/or curl should be used here but I don't know how really. I would very much appreciate the help I can get on this. Thank you! ok I'm a bit stuck here were I would think something would work easily im getting an error. What I am trying to loop is.. $data="UPDATE ts12 SET djid='$_POST[TS0]' WHERE id=1"; $data="UPDATE ts12 SET djid='$_POST[TS1]' WHERE id=2"; This would go on for 84 id's. So I figured I could just loop this line so I only have to type it once. Right now I have it set up for just testing 7 ids and I have this code.... if ($edit == yes) { for ($i=0; $i < 7; $i++){ $n=($i+1); $data.="UPDATE ts12 SET djid='$_POST[TS$i]' WHERE id=$n"; } if (!mysql_query($data,$con)) die('Error: ' . mysql_error()); }else{} The error I am getting is... PHP Parse error: syntax error, unexpected T_VARIABLE, expecting ']' in dir/page on line 6 What am I doing wrong here? I am pulling data from an sql data base. I want it to displayed (Item # | Error button | Link) however as its looping with a while on the database info I cant seem to get it to loop on the item number so it shows 1, 2, 3,.... on each row. Current coding is: while ($info = mysql_fetch_array($data)){ Print '<tr>'; Print"<td style='width: 15px;' class='cat-list'>$D</td>"; if ($info['id']==""){ Print"<td class='cat-list'> </td>"; }else{ Print"<td class='cat-list' style='width: 20px;'><img border='0' src='images/error.png' width='16' height='16'></td>"; } if ($info['link']==""){ Print"<td class='cat-list'> </td>"; }else{ Print"<td class='cat-list'><a target='_blank' href='".html_entity_decode(stripslashes($info[link]))."'>".substr(html_entity_decode(stripslashes($info[link])), 0, 85)."</a></td>"; } } How would I get the $D item to show 1 2 3... ect? Thanks, Jim i have this bit of code which is supposed to do a while loop of rows from a database then inside that does a while loop of columns, so its basically creating a html table of dynamic data from mysql. the column loop works fine, but the row one isnt, it only goes through and echos out the first row then stops. ive spent hours now trying to see why and i cant see it hence my call for help. $totalrows = 4; $columns = 5; $columncount = 1; $rowcount = 1; echo "<table>"; while ($rowcount <= $totalrows) { echo "<tr>"; $sql = "SELECT * FROM ville_map WHERE id = '$rowcount'"; $sql_result = mysql_query($sql, $connection); while ($row = mysql_fetch_array($sql_result)) { $c1 = explode(',', $row["c1"]); $c2 = explode(',', $row["c2"]); $c3 = explode(',', $row["c3"]); $c4 = explode(',', $row["c4"]); $c5 = explode(',', $row["c5"]); while ($columncount <= $columns) { $arraynum = ${'c'.$columncount}; if ($arraynum[2] > 0) { $playerimage = '<img src="images/player' .$arraynum[2]. '.png"'; } else { $playerimage = ""; } echo '<td background="images/' .$arraynum[0]. '.jpg" width="50" height="50">' .$playerimage. '</td>' ; $columncount++; } } echo "</tr>"; $rowcount++; } ?> </table> any help would be much appreciated. Take a look he http://answers.yahooapis.com/AnswersService/V1/questionSearch?appid=YahooDemo&query=test That is a generated XML file from Yahoo's API. If you take a look, it has a node titled "Question". With PHP, how can I loop through each "Question" node and grab all of it's children as well? I tried this code, but apparently it did not work: $req = "http://answers.yahooapis.com/AnswersService/V1/questionSearch?appid=YahooDemo&query=php"; $res = file_get_contents($req); $xml = simplexml_load_string($res); foreach ($xml->xpath('//Question') as $question) { // "//question" means for each question node echo((string)$question['Subject']." - ".(string)$question['Content']); // you get all the child nodes in $question } Hey, I have the following code that gets the name of the course from the XML. XML Snippet Code: [Select] <?xml version="1.0"?> <courses> <course> <id>70</id> <name>Marketing and Social Media</name> <dates> <date> <instance_id>6747</instance_id> <location /> <course_type>Day</course_type> <date_available>2011/07/13</date_available> <time_start>9:30</time_start> <time_end>17:00</time_end> <availibility>7</availibility> <running_dates> <running_date>2011/07/13</running_date> <running_date>2011/07/14</running_date> </running_dates> </date> </dates> </course> <course> </courses> PHP Code: [Select] $dom = new DomDocument(); $dom->load("courses.xml"); $xp = new domxpath($dom); $titles = $xp->query("/courses/course/name"); foreach ($titles as $node) { print $node->textContent . " "; } This prints out the course name fine. My question is how Can i get the rest of the data from the same query. For example why cant I do something like.. Code: [Select] ... foreach ($titles as $node) { print $node->name. " "; print $node->time_start. " "; print $node->course_type. " "; etc.. } So I want to loop through get the name and assign the rest of the nodes in there to variables or something. How come this doesn't loop? Everything is in the while loop.
My database connection is in the included file you see to begin the code which is what db_conx refers to just to be clear. Database connection is not an issue nor is getting values. I just get the first one and nothing more. No looping taking place here.
What I miss?
require('includes/db_connect.php'); $query = "SELECT * FROM events ORDER BY displayorder ASC"; $result = mysqli_query($db_conx, $query); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $pid = $row["id"]; $title = $row["title"]; $date = $row["date"]; $info = $row["info"]; $linkTxt = $row["linkTxt"]; $link = $row["link"]; $message = "<div id='events_holder'><table width='500' border='0' cellspacing='0' cellpadding='10'> <form action='edit_event_parse.php' method='post'> <tr> <td class='prayer_title'>Title:</td> <td><input type='text' name='title' class='admin_input' value='" .$title."' /></td> </tr> <tr> <td class='prayer_title'>Date:</td> <td><input type='text' name='date' class='admin_input' value='".$date."' /></td> </tr> <tr> <td class='prayer_title'>Link Text:</td> <td><input type='text' name='linkTxt' class='admin_input' value='".$linkTxt."' /></td> </tr> <tr> <td class='prayer_title'>Link URL:</td> <td><input type='text' name='link' class='admin_input' value='".$link."' /></td> </tr> <tr> <td class='prayer_title'>Event Details:</td> <td><textarea name='info' cols='20' rows='10' class='admin_area'>".$info."</textarea></td> </tr> <tr> <td><input type='hidden' name='pid' value='".$pid."' /></td> <td><input name='submit' type='submit' value='Edit Event' class='admin_submit'/></td> </tr> </form> </table> <p> </p> <hr /> <p> </p> </div>"; }Thanks! ANYONE WHO CAN HELP ME WITH MY LOOP? THIS IS THE CODE THANKS IN ADVANCE.
<?php $testTwo = 'bakit ayaw po gumana paulit ulit bakit'; $testOne = 'bakit paulit ulit bakit ulit'; $tTwo = explode(' ', $testTwo); $tOne = explode(' ', $testOne); echo"SIMILARITIES:</br>"; foreach($tOne as $first) { foreach($tTwo as $second) { if($second == $first) { echo $second.' '; } } echo"</br>"; } ?> THIS IS THE OUTPUT SIMILARITIES: bakit bakit paulit ulit bakit bakit ulit THIS IS MY EXPECTING OUTPUT. bakit paulit ulit bakit ulit lang ok, here is some code: Code: [Select] <?php // Query member data from the database and ready it for display $sql = mysql_query("SELECT * FROM products"); while($row = mysql_fetch_array($sql)){ $product = $row["product"]; ?> <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#myform").validate({ debug: false, submitHandler: function(form) { // do other stuff for a valid form $.post('process.php', $("#myform").serialize(), function(data) { $("#price").load("index.php #price"); $('#results').html(data); }); } }); }); </script> <form name="myform" id="myform" method="POST" action=""> <input type="hidden" name="hiddenField" id="hiddenField" value="<?php echo $product; ?>" /> <input type="submit" name="submit" value="Submit" style="background-color:lightgreen; height:50px; width:100px;"> </form> <?php } ?>and here is process.php Code: [Select] <?php include_once("/connect.php"); ?> <?php $price=$_POST['hiddenField']; $sql = "INSERT INTO cart (price) VALUES('$price')"; $rs = mysql_query($sql) or die ("Problem with the query: $sql<br>" . mysql_error()); echo mysql_error(); ?>. what is happening is it is supposed to be submitting form without page reload.......but only the first one in the loop does it. I want all of them to do it. can anyone help me do this properly. I have a website of grids of webcam images.
I have decided to make a looping webpage where I want just 1 image per page and every 2 seconds moves on to the next image.
I have the following code - but it only gets 1 image. I was going to update the database record with the next image but have decided it will be easier to get an array and loop round that somehow. Normally when I loop its easy to display the results in a table but this time i want it to display 1 image (record) at a time then move on...
The code below works fine (only showing the first image form the website in my database)
I hope someone can help me out please.
TIA
<html> <head> <title>My webcam page </title> </head> <?php $host = 'localhost'; $user = 'my_User'; $pass = 'my_Password'; $db = 'my_db'; $con = mysqli_connect($host, $user, $pass, $db) or die(mysqli_connect_error()); $sql = "SELECT * FROM `websites` WHERE `currentshowing`=1 LIMIT 0, 30 "; $result = mysqli_query($con,$sql); if (!$result) { die("Error: Data not found.."); } $test = mysqli_fetch_array($result); $webpic=$test['webpic']; $basesite=$test['basesite']; $location=$test['location']; ?> <div align="center"> <h1>MY WEBSITE (Ongoing work)</h1> </div> <td><div align="center"><?PHP echo $location; ?><br> <a href="<?PHP echo $basesite; ?>"> <img src="<?PHP echo $webpic; ?>" alt="<?PHP echo $location; ?>" width="80%" border="0"/> </a></div></td> </body> </html> So I made the code as simple as possible to avoid any confusing crap: scripttest.php: Code: [Select] <?php $dbhost = 'localhost:3306'; $dbuser = 'root'; $dbpass = 'root'; $dbname = 'aosdb'; $conn = mysql_connect($dbhost,$dbuser,$dbpass) or die ('Error connecting to mysql'); $idcol=7; $j=0; $b=1; mysql_select_db($dbname); $queryj = "SELECT name FROM IMPrints"; $resultj = mysql_query($queryj); $num=mysql_num_rows($resultj); while($j<$num){ $Column = mysql_result($resultj, $j); echo $Column; $queryb = "SELECT * FROM IMBuilt WHERE idcol=$idcol"; $resultb = mysql_query($queryb); $built = mysql_fetch_row($resultb); include("mysqltest.php"); $j++; $b++; } ?> mysqltest.php: Code: [Select] <?php if($_POST) { $povar = $built[$b]+$_POST["built"][$j]; $queryi="UPDATE IMBuilt SET $Column = $povar WHERE idcol = $idcol"; mysql_query($queryi); } echo $povar; ?> <form class="bd" method="post" action="scripttest.php"><input type="text" name="built[]"><input type="submit" value="Build"></form> Everything mostly looks fine except one thing: If I set name="built" than no matter what form i enter the value to be added in, it affects all the values. If I set name="built[]" then no matter what form i enter the value to be added in, it only affects the first value. Currently in the table there are 4 columns. Each form is supposed to edit the column value where idcol=6. So the first one edits column Basic in the row where idcol is 6. A value input in the second for should be added to the current value for Column Advanced where idcol=6. But I can't get the forms, which are produced by the loop, to edit the column they are paired with. In the display in the broswer it lists the column value correctly over each form and also the current value in the table. next to the column. But it doesn't change the right columns. Hi I have two albums with pictures in them, what I want to know is how do I put the first image of my album next to the albums name. For example I have an album called gallery 1 and I have 2 pictures in it and before you click the link to go see those images i want the first picture to be next to gallery 1. I hope that made sense. Thank you for your help. This is the code I got so far public function home(){ $galleries_model = new galleries_model('galleries'); $galleries = $galleries_model -> get_all(); foreach($galleries as $gallery){ $sql = ("SELECT * FROM gallery_images WHERE id = gallery_id LIMIT 1"); $this->_params['list'][] = $gallery; } } } Ok i have been after the solution for this for a while and I have finally got it in a state where it is producing results but....... they are wrong so I will start from the beginning with what I have and what I am trying to do. I have these tables Members Id Name Clubs ID Name Permission ID Name Link MemberID PermissionID ClubID When a member joins a club thier ID ant the ID of the club are entered into the link table along with their permission (as a number) so MemberID PermissionID ClubID 01 02 01 I have a loop which is going to echo the clubs a member is a part of. So for my querys function GetUser($user) { $qFindUser = "SELECT * FROM members WHERE email = '$user'"; $rFindUser = mysql_query($qFindUser); $UserInfo = mysql_fetch_array($rFindUser); return $UserInfo; } function GetLinkByMemberID($link) { $qLink = mysql_query("SELECT * FROM link WHERE memberID = '$link'"); $Link = mysql_fetch_array($qLink); return $Link; } function GetClub1($clubs) { $qFindClub = mysql_query("SELECT * FROM clubs WHERE clubID = '$clubs'"); return $qFindClub; } function GetPermission($per) { $qPermission = mysql_query("SELECT * FROM `permissions` WHERE permissionID = '$per'"); $permission = mysql_fetch_array($qPermission); return $permission; } $User = GetUser($_SESSION['Username']); // returns as array from the login details all member details $Link = GetLinkByMemberID($User['memberID']); // returns as a fetch array all clubs the member is a part of $Club = GetClub1($Link['clubID']); // returns as the query $permission = GetPermission($Link['permission']); //returns as array so I can echo the permission word not ID Now the loop is limited by 3 so <?php $Club = mysql_fetch_array($Club); $stack3 = ($Club+$Link); for($i = 0; ($CP = ($stack3)) && $i < 3; $i++ ){ ?> <tr> <th scope="col"><img name="" src="" width="32" height="32" alt="" /></th> <th scope="col"><?php echo $CP['name']; //from the club table ?><span class="ownertext"> <?php echo $CP['permission']; //from the link table ?> The problem I'm having the the loop is returning the first record its selects 3 times and not echoing each club once. I have worked on it for so long I can no longer make sense of it. Can anyone see my errors and point out just how to fix it? Im guessing it involves something to do with how Im finding my permission but I really dont know. As im sure you can see from the code Im a php beginner so Im struggling to make sense of this. I've been over it a few times and for some reason my results are being read out 2 times per row in the database. This error occurs consistently accross my scripts except for one, but for the life of me I can't work out how. Any help would be appreciated. I have a feeling this is rather basic and am sorry for asking something so trivial. Many thanks. GET ALL CS RESULTS PHP - FULL FILE Code: [Select] <?php include ('connect.php'); $cat = $_GET['id']; $sql = "SELECT ind_id, ind_name, cs_name, cs_value, quarter, fiscal_year FROM industry, customer_satisfaction, cs_value, time"; $result = mysqli_query($link, $sql); $output = mysqli_affected_rows($link); if (!$result) { $error_num = mysqli_errno($link); $error_desc = mysqli_error($link); include ('error.html.php'); exit(); } else { while ($industry_result = mysqli_fetch_array($result)) { $industry_results[] = array( 'ind_id' => $industry_result['ind_id'], 'ind_name' => $industry_result['ind_name'], 'cs_name' => $industry_result['cs_name'], 'cs_value' => $industry_result['cs_value'], 'quarter' => $industry_result['quarter'], 'fiscal_year' => $industry_result['fiscal_year'] ); } if (!$industry_results) { $error = '<p><i>Database Returned no Results.</i></p>'; } else { include ('all_cs_results.html.php'); } } ?> GET ALL CS RESULTS HTML OUTPUT - FULL FILE Code: [Select] <ul id="result_list" class="results_list"> <?php foreach ($industry_results as $industry_result): ?> <li id="cs_result"> <?php echo $industry_result['ind_id']; ?> </li> <li id="cs_result"> <?php echo $industry_result['ind_name']; ?> </li> <li id="cs_result"> <?php echo $industry_result['cs_name']; ?> </li> <li id="cs_result"> <?php echo $industry_result['cs_value']; ?> </li> <li id="cs_result"> <?php echo $industry_result['quarter']; ?> </li> <li id="cs_result"> <?php echo $industry_result['fiscal_year']; ?> </li> <?php endforeach; ?> </ul> JQUERY AJAX LAYER - CODE SNIPPET Code: [Select] $('#all_cs').click(function(){ $('#display').load('get_all_cs.php', function(){ })}); I have a loop which works fine but before the loop I run a query which I store as $AlbumName From this array and within the loop I want to echo $AlbumName['album_name']; but obvisouly its not working. Can somebody please show me how to do it? <?php $qImage = "SELECT * FROM photos"; $rImage = mysql_query($qImage); $Array = mysql_fetch_array($rImage); $qAlbumName = "SELECT * FROM albums WHERE id =".$Array['album'].""; $rAlbumName = mysql_query($qAlbumName); $AlbumName = mysql_fetch_array($rAlbumName); while ($row_images = mysql_fetch_assoc($rImage) ) { ?> <?php echo $row_images['id']; echo $row_images['name']; echo $row_images['photo_description']; echo $AlbumName['album_name']; } ?> I am trying to loop through the array that I have created to check to see if any of the dates in the array match the date I am passing (which is todays date) and then asks the user to consider making another booking. This is what I have so far but I am not sure how to finish it off: Code: [Select] $table_id = 'booking'; $query = "SELECT * FROM booking WHERE bookingDate = 'newDate'"; $result = mysql_query($query); $loop = $end_Time - $start_Time; echo $loop; while($row = mysql_fetch_assoc($result)){ if ($startTime || $end_Time == 'booking.startTime'){ echo "choose another booking"; }{ echo "booking is ok"; } Hi, I am having a problem, which if I don't get some help, promises to melt my brain. It may have a simple solution, but I cannot conjure it with my limited, and relatively new coding skills. I need to grab everything from a table, group them up by a tag and then, in their tag groups, print them out into div boxes. details below. Code: [Select] <?php // grab everything from the database and group by tag, sort by adddate $query = " select * from portfolio group by tag sort by adddate "; $result = mysql_query ($query); $row = mysql_fetch_array($result); /* I now need to loop through the array putting each tag group into separate div boxes.. HOW?? at the momenet I am using a while loop, but I think I should be using a for loop with foreach as well? */ // below is my current loop, which just takes each entry and sticks them all into seperate div boxes. which is crap. while ($row) { echo "<div class='boxgrid'><a href=".$row['fullPath']." rel='prettyPhoto[".$row['tag']."]'><img src=".$row['thumbPath']." title=".$row['desc']."/></a></div>"; $row = mysql_fetch_array($result); } include('./scripts/footer.php'); mysql_close($con); // my actual desired output would be like shown below ?> <div class="boxgrid"> <a href="./images/imagename01.jpg" rel="prettyPhoto[TAG]"><img src="./images/thumbs/thumbname.jpg"/></a> <a href="./images/imagename02.jpg" rel="prettyPhoto[TAG]"><img src="./images/thumbs/thumbname.jpg"/></a> <a href="./images/imagename03.jpg" rel="prettyPhoto[TAG]"><img src="./images/thumbs/thumbname.jpg"/></a> <a href="./images/imagename04.jpg" rel="prettyPhoto[TAG]"><img src="./images/thumbs/thumbname.jpg"/></a> </div> <div class="boxgrid"> <a href="./images/imagename01.jpg" rel="prettyPhoto[TAG]"><img src="./images/thumbs/thumbname.jpg"/></a> <a href="./images/imagename02.jpg" rel="prettyPhoto[TAG]"><img src="./images/thumbs/thumbname.jpg"/></a> </div> <div class="boxgrid"> <a href="./images/imagename01.jpg" rel="prettyPhoto[TAG]"><img src="./images/thumbs/thumbname.jpg"/></a> </div> <div class="boxgrid"> <a href="./images/imagename01.jpg" rel="prettyPhoto[TAG]"><img src="./images/thumbs/thumbname.jpg"/></a> </div> <div class="boxgrid"> <a href="./images/imagename01.jpg" rel="prettyPhoto[TAG]"><img src="./images/thumbs/thumbname.jpg"/></a> </div> if anyone here can help, It is quite likely that I may cry. Ben. I have a select field in my join form which allows users to select one of my speicifed counties. In the table the county is link to a country. I am trying to echo in a select statement a loop of all the available counties in england. here is the code <?php $qGetCounty = "SELECT * FROM Counties"; $rGetCounty = mysql_query($qGetCounty); echo " <select name=\"County\"> <optgroup label=\"England\"> "; while ($county = mysql_fetch_assoc($rGetCounty)){ if($county['country']=='England') { echo " <option value= '{$county['county']}'>{$county['county']}</option> "; }} echo " <optgroup label=\"Wales\"> "; while ($county=='Wales'){ echo " <option value= '{$county['county']}'>{$county['county']}</option> "; } echo " <optgroup label=\"Scotland\"> "; while ($county=='Scotland'){ echo " <option value= '{$county['county']}'>{$county['county']}</option> "; } echo " </select> " ; ?> It is not erroring but also it is not worlking correctly. It shows all the counties in England and both the labels for scotland and wales but does not show any counties in these two areas. I am new to loops so do not know how to fix this. I have tried changing the line while ($county=='Wales') to while ($county = mysql_fetch_assoc($rGetCounty)) But this makes no difference Hi all, I am trying to show information on a page if a value collected from a $_GET value is the same as a value in a Mysql database provided that the users email address links the email address next to the value in the mysql database. I have created the script however as there are more than one $row['value'] I can not get a foreach loop to work to scroll through all the $row['value'] values until it finds a matching one. Hope you can see from the code what I am talking about. The code I have is below: <?php $email = $_SESSION['logname']; $sql = "SELECT reg FROM sales WHERE email='$email'"; $result = mysqli_query($cxn,$sql) or die ("Couldn't execute query"); while($row = mysqli_fetch_assoc($result)) // NEED HELP INSERTING A FOREACH $ROW['REG'] SEE IF IT MATCHES $_GET['REG'] TYPE OF SCRIPT// { if ($row['reg'] == $_GET['reg'] ) { echo $row['reg'] . " is registered by you!"; } elseif ($row['reg'] != $_GET['reg'] ) { echo $_GET['reg'] . "<br>"; echo $row['reg']; echo $email . "<br>"; echo "I am sorry but the $_GET[reg] does not seem to be registered by you!"; exit(); } } ?> |