brad_langdon Posted November 17, 2009 Share Posted November 17, 2009 In the following code I am trying to insert the result of the mysql query called " $loop3 " into the javascript code that follows the loop. As the code is outside of the loop it only echo's the last result from the loop. I don't know much about arrays but I am pretty sure I have to store all of the results from " $loop3 " in an array so it can be used out of the loop. Can someone please explain how to do this. Please explain carefully as I don't know too much about arrays. The loop and javascript snippet is about halfway down through the code. <?php $loop = mysql_query("SHOW tables FROM $data_base") or die ('cannot select tables'); // SELECT ALL TABLES FROM CLIENT DATABASE while($row = mysql_fetch_array($loop)){ // SELECT ALL TABLES FROM CLIENT DATABASE $loop2 = mysql_query("SELECT * FROM $row[0] ORDER BY date02") or die ('cannot select table fields'); // SELECT ALL CONTENT FROM EACH TABLE while ($row2 = mysql_fetch_array($loop2)){ // SELECT ALL CONTENT FROM EACH TABLE echo "<div class='tabs'>"; echo "<h2>" . $row2[title] . "</h2>"; $loop3 = mysql_query("SELECT * FROM $row[0] ORDER BY date02") or die ('Cannot select table fields'); // SELECT ALL CONTENT FROM EACH TABLE mysql_data_seek($loop3,0); // RESET DATA COUNTER SINCE WHILE LOOP HAS ALREADY BEEN USED while ($row3 = mysql_fetch_array($loop3)){ $date = $row3[date02]; // LIST EACH OCCUPIED DATE IN FORMAT THAT MATCHES CALENDAR JQUERY FORMAT $date_a = substr ($date, 0, 4); // PULL YEAR AS SEPERATE VARIABLES SO THEY CAN BE REARRANGED TO FIT CALENDAR FORMAT $date_b = substr ($date, 4, 2); // PULL MONTH AS SEPERATE VARIABLES SO THEY CAN BE REARRANGED TO FIT CALENDAR FORMAT $date_c = substr ($date, 6, 2); // PULL DAY AS SEPERATE VARIABLES SO THEY CAN BE REARRANGED TO FIT CALENDAR FORMAT $date = "\"" . $date_b . "/" . $date_c . "/" . $date_a . "\","; // RE FORMAT DATE TO FIT CALENDAR JQUERY FORMAT } ?> <script type='text/javascript'> function nationalDays(date) { var natDays = [ <?php echo $date; ?> <!-- -- -- THIS IS THE PART WHERE I NEED THE ARRAY TO LIST THE RESULTS OF THE LOOP ABOVE -- -- --> ]; var sDate = (date.getMonth()+1).toString() + '/' + date.getDate().toString() + '/' + date.getFullYear().toString(); if ($.inArray(sDate, natDays) != -1) return [false,'Occupied','Not this day!']; else return [true, '']; } </script> <?php echo "<span class='StartDate'></span>"; echo "<p><h3>Booked Dates</h3>"; $loop2 = mysql_query("SELECT * FROM $row[0] ORDER BY date02") or die ('cannot select table fields'); // SELECT ALL CONTENT FROM EACH TABLE mysql_data_seek($loop2,0); // RESET DATA COUNTER SINCE WHILE LOOP HAS ALREADY BEEN USED while ($row2 = mysql_fetch_array($loop2)){ echo "<a class='cross' href='delete.php?cmd=delete&id=$row2[id]&table=$row[0]'></a><li class='dates'>" . $row2[date] . "</li>"; // LIST EACH OCCUPIED DATE AND LINK TO DELETE.PHP TO DELETE RECORD } echo "</p>"; echo "<p><a href='sessiondestroy.php?signout=true'>Logout</a></p>"; // SIGN OUT USER echo "</div>"; } } } ?> Quote Link to comment https://forums.phpfreaks.com/topic/181845-array-problem/ Share on other sites More sharing options...
taquitosensei Posted November 17, 2009 Share Posted November 17, 2009 $loop3 = mysql_query("SELECT * FROM $row[0] ORDER BY date02") or die ('Cannot select table fields'); // SELECT ALL CONTENT FROM EACH TABLE mysql_data_seek($loop3,0); // RESET DATA COUNTER SINCE WHILE LOOP HAS ALREADY BEEN USED while ($row3 = mysql_fetch_array($loop3)){ $date = $row3[date02]; // LIST EACH OCCUPIED DATE IN FORMAT THAT MATCHES CALENDAR JQUERY FORMAT $date_a = substr ($date, 0, 4); // PULL YEAR AS SEPERATE VARIABLES SO THEY CAN BE REARRANGED TO FIT CALENDAR FORMAT $date_b = substr ($date, 4, 2); // PULL MONTH AS SEPERATE VARIABLES SO THEY CAN BE REARRANGED TO FIT CALENDAR FORMAT $date_c = substr ($date, 6, 2); // PULL DAY AS SEPERATE VARIABLES SO THEY CAN BE REARRANGED TO FIT CALENDAR FORMAT $dates[] = "\"" . $date_b . "/" . $date_c . "/" . $date_a . "\","; // RE FORMAT DATE TO FIT CALENDAR JQUERY FORMAT } if jquery needs it in json after the loop and if you have php > 5.2 $dates=json_encode($dates); if it's < 5.2 then I'd suggest using pear JSON class to encode in your javascript var natDays=<?php echo $dates; ?> // no need for the brackets json takes care of this Quote Link to comment https://forums.phpfreaks.com/topic/181845-array-problem/#findComment-959123 Share on other sites More sharing options...
brad_langdon Posted November 17, 2009 Author Share Posted November 17, 2009 I have managed to move forward slightly using part of the code you listed. Now I get all results listed for each instance of the second loop where I should be getting different results for each instance of the second loop. I hope that makes sense. So the second loop is say a div with content and each div should display the results of the array depending on which database table it is pulling he results from. Instead I am getting all results from all tables in every div... any ideas? <?php echo "<div class='panes'>"; $loop = mysql_query("SHOW tables FROM $data_base") or die ('cannot select tables'); // SELECT ALL TABLES FROM CLIENT DATABASE while($row = mysql_fetch_array($loop)){ // SELECT ALL TABLES FROM CLIENT DATABASE $loop2 = mysql_query("SELECT * FROM $row[0] ORDER BY date02") or die ('cannot select table fields'); // SELECT ALL CONTENT FROM EACH TABLE while ($row2 = mysql_fetch_array($loop2)){ // SELECT ALL CONTENT FROM EACH TABLE echo "<div class='tabs'>"; echo "<h2>" . $row2[title] . "</h2>"; $abc=$row2[title]; $loop2 = mysql_query("SELECT * FROM $row[0] WHERE title = '$abc'") or die ('cannot select table fields'); // SELECT ALL CONTENT FROM EACH TABLE while ($row3 = mysql_fetch_array($loop2)){ $date = $row3[date02]; // LIST EACH OCCUPIED DATE IN FORMAT THAT MATCHES CALENDAR JQUERY FORMAT $date_a = substr ($date, 0, 4); // PULL YEAR AS SEPERATE VARIABLES SO THEY CAN BE REARRANGED TO FIT CALENDAR FORMAT $date_b = substr ($date, 4, 2); // PULL MONTH AS SEPERATE VARIABLES SO THEY CAN BE REARRANGED TO FIT CALENDAR FORMAT $date_c = substr ($date, 6, 2); // PULL DAY AS SEPERATE VARIABLES SO THEY CAN BE REARRANGED TO FIT CALENDAR FORMAT $dates[] = "\"" . $date_b . "/" . $date_c . "/" . $date_a . "\","; // RE FORMAT DATE TO FIT CALENDAR JQUERY FORMAT } ?> <script type='text/javascript'> function nationalDays(date) { var natDays = [ <?php foreach ($dates as $dates1) { print_r($dates1); } ?> ]; var sDate = (date.getMonth()+1).toString() + '/' + date.getDate().toString() + '/' + date.getFullYear().toString(); if ($.inArray(sDate, natDays) != -1) return [false,'Occupied','Not this day!']; else return [true, '']; } </script> <?php echo "<span class='StartDate'></span>"; echo "<p><h3>Booked Dates</h3>"; $loop2 = mysql_query("SELECT * FROM $row[0] ORDER BY date02") or die ('cannot select table fields'); // SELECT ALL CONTENT FROM EACH TABLE mysql_data_seek($loop2,0); // RESET DATA COUNTER SINCE WHILE LOOP HAS ALREADY BEEN USED while ($row2 = mysql_fetch_array($loop2)){ echo "<a class='cross' href='delete.php?cmd=delete&id=$row2[id]&table=$row[0]'></a><li class='dates'>" . $row2[date] . "</li>"; // LIST EACH OCCUPIED DATE AND LINK TO DELETE.PHP TO DELETE RECORD } echo "</p>"; echo "<p><a href='sessiondestroy.php?signout=true'>Logout</a></p>"; // SIGN OUT USER echo "</div>"; } } } ?> Quote Link to comment https://forums.phpfreaks.com/topic/181845-array-problem/#findComment-959485 Share on other sites More sharing options...
brad_langdon Posted November 17, 2009 Author Share Posted November 17, 2009 Anyone have any ideas... I am stuck I just cant figure this part out Quote Link to comment https://forums.phpfreaks.com/topic/181845-array-problem/#findComment-959549 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.