0

I have a mySQL database that is queried and displayed in tables in index.php. I have a file called up.php that handles a click on an <a> in each table that is output from the query in index.php. I need to have a variable that I can extract from a field in each seperate row that is queried, so that when the <a> is clicked it passes the variable to the up.php file to be manipulated. Right now the variable is just being over written and is equal to the value of the last row queried and the database is updated frequently, so I can't just set one to each row, it has to be dynamic.

Here is the index.php file

<?php
$sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC");
//query for even numbered rows where mes_id = even
$sql2=mysql_query("SELECT * FROM messages WHERE mod(mes_id,2) = 0 ORDER BY mes_id DESC");
//query for odd numbered rows where mes_id = even
$sql3=mysql_query("SELECT * FROM messages WHERE mod(mes_id,2) = 1 ORDER BY mes_id DESC");

while(($row = mysql_fetch_array($sql))AND($row2 = mysql_fetch_array($sql2))AND($row3 = mysql_fetch_array($sql3)) ){
$id = $row['id'];
$title = $row['title'];
$content = $row['content'];
$category = $row['category'];
$podcast = $row['podcast'];
$datetime = $row['datetime'];


$message1=$row2['msg'];

//******* this is the variable from the query that needs to be held and not overwritten ********
$mes_id1=$row2['mes_id'];

$totalvotes1=$row2['totalvotes'];

$message2=$row3['msg'];

//******* this is the second variable from the query that needs to also be held and not overwritten *******
$mes_id2=$row3['mes_id'];

$totalvotes2=$row3['totalvotes'];

//attempting to implement this array...? not sure how to use it correctly...
$valuess[]=$row2['mes_id'];

//******* I was trying to use these session variables in up.php but they were being overwritten in the query ********
$_SESSION['message1'] = $row2['msg'];
$_SESSION['message2'] = $row3['msg'];
$_SESSION['mes_id1'] = $row2['mes_id'];
$_SESSION['mes_id2'] = $row3['mes_id'];
$_SESSION['totalvotes1'] = $row2['totalvotes'];
$_SESSION['totalvotes2'] = $row3['totalvotes'];
$_SESSION['valuess'] = $valuess[1];
?>

<?php
// variable used to display file name of $podcast without the extension
$noext = $podcast;
$echodub = rawurlencode($podcast);
// code to display $noext without the file extension
$info = pathinfo($noext);
$noext_name =  basename($noext,'.'.$info['extension']);
?>

<!--  ********* echo php variables in html format, in a table with the class of "podcast" -->
<table class="podcast" border="1">
<tr>
    <td class="title">
     <?php echo $title; ?>
    </td>
    <td class="timeandcategory">
     <?php echo $datetime; ?>  <br>
     <?php echo $category; ?>
     <?php echo $_SESSION['mes_id1']; ?>
     <?php echo $_SESSION['mes_id2']; ?>
     <?php echo session_id(); ?>
    </td>
</tr>
<tr>
    <td class="content">
     <?php echo $content; ?>
    </td>
    <td class="myfblike">


 <span class='st_fblike_large' displayText='Facebook Like'></span><br>
     <span class='st_facebook_large' displayText='Facebook'></span><br>
     <span class='st_twitterfollow_large' displayText='Twitter Follow'></span><br>
     <span class='st_pinterest_large' displayText='Pinterest'></span><br>
     <span class='st_email_large' displayText='Email'></span><br>
     <span class='st_sharethis_large' displayText='ShareThis'></span><br>

    </td>

</tr>
<tr>
    <td class="audio">
     <!--echo the audio file -->
      <ul class="playlist">
       <li><a href="<?php echo"uploads/$podcast"; ?>"><?php echo"$noext_name"; ?></a></li>

      </ul>

    </td>
    <td>

     <!-- ********** this is the cell in the table where the veriables need to be held and sent to up.php ******** -->

<div id="main">
<div id="left">
<span class='up'><a href="up.php" class="" id="<?php echo $valuess[1]; ?>" name="up"><img src="up.png" alt="Down" /></a></span><br />
<?php echo $_SESSION['totalvotes1'] ?><br />
</div>
<div id="message">
<?php echo $_SESSION['message1'] ?>
</div>
<div class="clearfix"></div>
</div>
//********the down.php file is the same as the up.php file... just with opposite variables... im not concerned with this yet until i get the variables to display correctly in up.php
<div id="main">
<div id="left">
<br />
<?php echo $_SESSION['totalvotes2'] ?><br />
<span class='down'><a href="down.php" class="" id="<?php echo $_SESSION['mes_id2']; ?>" name="down"><img src="down.png" alt="Down" /></a></span>
</div>
<div id="message">
<?php echo $_SESSION['message2'] ?>
</div>
<div class="clearfix"></div>
</div>

    </td>
</tr>

</table>


<br>
<?php
 }
?>

and here is the up.php file

up.php

<?php
session_start();
include("config.php");

$message1 = $_SESSION['message1'];
$message2 = $_SESSION['message2'];
$mes_id1 = $_SESSION['mes_id1'];
$mes_id2 = $_SESSION['mes_id2'];
$totalvotes1 = $_SESSION['totalvotes1'];
$totalvotes2 = $_SESSION['totalvotes2'];
$ip=$_SERVER['REMOTE_ADDR'];

$ip_sql=mysql_query("select ip_add from Voting_IP where mes_id_fk='$mes_id1' and ip_add='$ip'");
$count=mysql_num_rows($ip_sql);
$ip_sql2=mysql_query("select ip_add from Voting_IP where mes_id_fk='$mes_id2' and ip_add='$ip'");
$count2=mysql_num_rows($ip_sql2);
//********* testing if these variables are being passed.....
echo $mes_id1;
echo $mes_id2;
$valuess[0] = $_SESSION['valuess'];
echo $valuess[0];
//********
// if the user has already voted, execute script
if($count==0 && $count2!=0)
{
$sql = "update Messages set totalvotes=totalvotes+1  where mes_id='$mes_id1'";
mysql_query( $sql);
$sql_in = "insert into Voting_IP (mes_id_fk,ip_add) values ('$mes_id1','$ip')";
mysql_query( $sql_in);
$sql = "update Messages set totalvotes=totalvotes-1  where mes_id='$mes_id2'";
mysql_query( $sql);
$sql_in = "DELETE FROM Voting_IP WHERE mes_id_fk='$mes_id2'";
mysql_query( $sql_in);
// if the user has not voted, execute script
}
else if($count==0 && count2==0)
{
$sql = "update Messages set totalvotes=totalvotes+1  where mes_id='$mes_id1'";
mysql_query( $sql);
$sql_in = "insert into Voting_IP (mes_id_fk,ip_add) values ('$mes_id1','$ip')";
mysql_query( $sql_in);
echo $mes_id1;
echo $mes_id2;
}
?>
1

1 Answer 1

0

You can try like this. hope may this will help you

<?php
$sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC");
//query for even numbered rows where mes_id = even
$sql2=mysql_query("SELECT * FROM messages WHERE mod(mes_id,2) = 0 ORDER BY mes_id DESC");
//query for odd numbered rows where mes_id = even
$sql3=mysql_query("SELECT * FROM messages WHERE mod(mes_id,2) = 1 ORDER BY mes_id DESC");


$count_variable = 0;

while(($row = mysql_fetch_array($sql))AND($row2 = mysql_fetch_array($sql2))AND($row3 = mysql_fetch_array($sql3)) ){
$id = $row['id'];
$title = $row['title'];
$content = $row['content'];
$category = $row['category'];
$podcast = $row['podcast'];
$datetime = $row['datetime'];


$message1=$row2['msg'];

//******* this is the variable from the query that needs to be held and not overwritten ********
$mes_id1=$row2['mes_id'];

$totalvotes1=$row2['totalvotes'];

$message2=$row3['msg'];

//******* this is the second variable from the query that needs to also be held and not overwritten *******
$mes_id2=$row3['mes_id'];

$totalvotes2=$row3['totalvotes'];

//attempting to implement this array...? not sure how to use it correctly...
$valuess[]=$row2['mes_id'];

//******* I was trying to use these session variables in up.php but they were being overwritten in the query ********
$_SESSION['message1'][$count_variable] = $row2['msg'];
$_SESSION['message2'][$count_variable] = $row3['msg'];
$_SESSION['mes_id1'][$count_variable] = $row2['mes_id'];
$_SESSION['mes_id2'][$count_variable] = $row3['mes_id'];
$_SESSION['totalvotes1'][$count_variable] = $row2['totalvotes'];
$_SESSION['totalvotes2'][$count_variable] = $row3['totalvotes'];
$_SESSION['valuess'][$count_variable] = $valuess[1];

$count_variable++;
?>

<?php
// variable used to display file name of $podcast without the extension
$noext = $podcast;
$echodub = rawurlencode($podcast);
// code to display $noext without the file extension
$info = pathinfo($noext);
$noext_name =  basename($noext,'.'.$info['extension']);
?>

this will return a session arrays like bellow :

array( 'message1':{ 0:'mnhj', 1:'jhf' }, 'message2':{ 0:'jhg', 1:'jhgjh' } ); etc...

4
  • will i need to use the $count_variable++ in up.php or can i just pass the values to up.php with $_SESSION['mes_id1'][$count_variable] ? Commented Feb 16, 2013 at 8:01
  • you have to pass $count_variable to up.php and get the messages or data accordingly Commented Feb 16, 2013 at 8:04
  • sorry, just to clarify, so for each row displayed in index.php, $_SESSION['mes_id1'][$count_variable] should be equal to the value of the field in that row, and it won't get overwritten? Commented Feb 16, 2013 at 8:05
  • sorry, this would just be amazzzing if this works and make the past 7 days of my life not a waste... been trying to figure this out for so long. so im really interested in understanding how this code works Commented Feb 16, 2013 at 8:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.