PHP - Looping Data
Similar TutorialsI'm trying to loop "Question" as a list of links (link is #id_number), and then later on the page loop "Question" and "Answer", anchored by the id_number tag. It's looping "Question" just fine, but how do I then loop the same data again later in the same page? Code: [Select] <?php $username="username"; $password="password"; $database="database_name"; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); $query="SELECT * FROM ft_form_17 WHERE Include='Include'"; $result=mysql_query($query); $num=mysql_numrows($result); mysql_close(); ?> Header Goes here<br /><br /><br /> <?php $i=0; while ($i < $num) { $f1=mysql_result($result,$i,"question"); //Question $f2=mysql_result($result,$i,"answer"); //Answer $f3=mysql_result($result,$i,"submission_id"); //id number ?> <a href="#<?php echo $f3; ?>"><?php echo $f1; ?></a><br /> <?php $i++; } ?> <br /><br /><br /> <strong><a name="<?php echo $f3; ?>"><?php echo $f1; ?></a></strong> <?php echo $f2; ?> Hi Guys I have never reall worked with xml and im stuck. I am gathering data from a class. include "example/class.php"; $data = new Class; $request = $data->List_Accounts(); $res = $data->run_xml($request); echo "<pre>"; print_r($res); echo "</pre>"; Ok so this is the output i get from the print_r(); <pre><!--?xml version="1.0" encoding="utf-8"?--> <rpc request_id="43535"> <response code="0" text="OK"> <account datatype="list"> <name datatype="username">arf34</name> <type datatype="account_type">3</type> <descr datatype="string">Linux Virtual Hosting</descr> <server datatype="int">35</server> </account> <account datatype="list"> <name datatype="username">awecerfewve</name> <type datatype="account_type">3</type> <descr datatype="string">Linux Virtual Hosting</descr> <server datatype="int">34</server> </account> </response></rpc></pre> How could i them loop through this data and pull out certain types like username and account_type using a foreach loop???? Can anyone please help with this. Thanks Hi there, I am wanting to insert post data into my DB, this is guest information if i do a $safePost = filter_input_array(INPUT_POST); print_r($safePost); i get the following output. Array ( [action] => addGuestInfo [guestno] => 2 [bookingid] => 151 [customerid] => 22 [Guestname-0] => Jamie [Guestname-1] => Joe [GuestAge-0] => 4-3 [GuestInfo-0] => celiac [GuestAge-1] => 18 [GuestInfo-1] => wheat ) normally the guestname-0, guestage-0, guestinfo-0 would be in correct order but we have to ensure the just incase it isns't (see output above) we cater for that aswell, we can have upto 6 guest details coming in at once. so I need to loop through the data and insert into my DB. I have tried various for / foreach loops but cant seem to get it to group the data together I have tried things like below, but it inserts each record multiple times. $safePost = filter_input_array(INPUT_POST); foreach($safePost as $key => $value){ $exp_key = explode('-', $key); // for ($i =0; $i <= $guestcount; $i++) { switch ($exp_key[0]) { case 'Guestname': $booking->guestno = $exp_key[1]; $booking->guestname = $val; break; case 'GuestAge': $booking->guestno = $exp_key[1]; $booking->guestage = $val; break; case 'GuestInfo': $booking->guestno = $exp_key[1]; $booking->guestinfo = $val; break; default: break; } //CALLS FUNCTION TO INSERT TO DB result = lastInsertId(); $result= $booking->insertGuestDetails(); //} }
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 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. 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? 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! 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. 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. 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 } Hello All, I have two arrays. One called $number_array and one called $title_array. $number_array = (1,2,3,4); $title_array = ("Title One", "Title Two", "Title Three", "Title Four"); Now what I want to do is run through each of the arrays one by one each time I query my database, so for example the first time it would output the query and title as: Code: [Select] //First time SELECT * FROM tbl WHERE something = 1 <optgroup label="Title One"> //Second time SELECT * FROM tbl WHERE something = 2 <optgroup label="Title Two"> //etc.. so here's my code: <? echo '<select id="class" class="selectbox" name="class">'; $number_array = (1,2,3,4); $title_array = ("Title One", "Title Two", "Title Three", "Title Four"); $result = mysql_query ('SELECT * FROM tbl WHERE something = ".$number_array."') or die ('Error: '.mysql_error ()); echo '<optgroup label="".$title_array."">'; while ($row = mysql_fetch_array($result)) { echo '<option value="'.$row['id'].'" class="'.$row['name'].'">'.strtoupper($row['name']).'</option>'; } echo '</optgroup>'; echo ' </select>'; ?> Anyone please help? Hi, I was wondering why this won't work, i am INSERTING an array of authors like so in a table, see insertAuthor() method below: <?php class People { public function insertAuthor(){ $authArray = array(); array_push($authArray, mysql_real_escape_string($_POST['author'])); //Check if Pname exists foreach($authArray as $author): $query = "SELECT * FROM People WHERE Pname = '".$author."'"; $result = mysql_query($query); if(mysql_num_rows($result) > 0): $row = mysql_fetch_array($result); $Pid = $row['Pid']; //If exists Get their Pid and insert into PeopleCon $sql = "INSERT INTO PeopleCon(Pid, PCorder, PCdateadded, PCdeleted) VALUES (".$Pid.", (select MAX(PCorder) + 1), now(), 0)"; $result = mysql_query($sql); else: //Else Get MAX Pid $query = "SELECT MAX(Pid) as max FROM People"; $result = mysql_query($query); $max = mysql_fetch_array($result); $Pid = $max['max']; //Insert into People $sql = "INSERT INTO People (Pname, Pdateadded, Pdeleted) VALUES ('".$author."', now(), 0)"; $result = mysql_query($sql); //Insert into PeopleCon $sql = "INSERT INTO PeopleCon(Pid, PCorder, PCdateadded, PCdeleted) VALUES (".$Pid.", (select MAX(PCorder) + 1), now(),0)"; $result = mysql_query($sql); endif; endforeach; } } ?> However what i need to do is, check to see if an Author exists, if so INSERT into a table called PeopleCon, if the Author does NOT exist i need to INSERT into 2 different tables, People and PeopleCon... The reason i have the 2 tables is because People simply holds the persons personal details, but PeopleCon holds details linking to different tables. But this query does not work, i know there are better methods of getting this to work.. I do this in the front end: if(isset($_POST['add_author'])): People::insertAuthor(); endif; Is this possible? I would appreciate any help. Just want to get this working Thanks Kind regards Billy 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. I'm trying to figure out what I'm doing wrong. For each recipient it runs each value which is an integer through the getUserByUserID function to verify that no values inside of the array are non users. But here's the part I'm not sure of and that's the if $recipient or $sender == FALSE. If ANY of the values are found to be non values then I want that if statement to activate. Code: [Select] foreach ($this->input->post('recipient[]') AS $recipient) { $this->users->getUserByUserID($recipient); } $sender = $this->users->getUserByUserID($this->input->post('sender')); // Verifies users were returned from database if (($recipient == FALSE) || ($sender == FALSE)) { // Users was not found in the database $outputArray['message'] = 'Either the recipient or yourself could not be found in the database!'; } 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 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 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> I've made a loop here.. Code: [Select] <form name="formdeliver" method="post" action="addOrder.php" onSubmit="return confirm('Are you Sure the data inputed are correct? Click Ok to continue.')"> <div id="apDiv2" style="overflow:auto "> <?php $host="localhost"; $username="root"; $password=""; $db_name="SEdatabase"; $tbl_name="bottlenumbers"; mysql_connect("$host", "$username", "$password")or die("cannot connect"); mysql_select_db("$db_name")or die("cannot select DB"); $sql="SELECT * FROM $tbl_name"; $result=mysql_query($sql); $name = $_SESSION['customername']; $q = $_SESSION['quantity']; echo "<table border='1'> <tr> <td><font size = '2'>Customer Name : $name </font></td></tr><tr> <td><font size = '2'>Quantity : $q </font></td> </tr> </table><br>"; for($i = 0; $i < $q; $i++){ echo "Bottle Number :"; echo "<select name=\"bottlenum[]\" onChange=\"this.name\"> <option>Select</option>"; if(mysql_num_rows($result)) { while($row = mysql_fetch_assoc($result)) { echo "<option>" .$row['BottleNumber']. "</option>"; } echo "</select>"; } else { echo "<option>No Customer Encoded</option></select>"; } echo "<font size = 2 >Type :</font> <select name=\"bottletype[]\" onChange=\"this.name\"'>'; <option selected>Select .. </option> <option> Slim </option> <option> Round </option> </select><br>"; } ?> <br> <input type="image" src="continue.png" width="100" height="25" name="login" border="0" /> </div> </form> So what it basically do is.. User will input some data w/c i included as $_POST['customername'] and $_POST['quantity'] So when the user will input 5 quantity.. i want my loop to have 5 pairs of 2 drop down list.. well i suceeded there. but, my problem is the 1st pair will output the .$row['BottleNumber']. w/c i included at the loop, and then the rest will have no output.. when i clicked them the dropdown list will only show the Select one. but for the 1st pair its working fine. Sorry for the bad english.. someone help me pls |