[thelist] String compare
Santilal Parbhu
santilal at scorpioneng.co.nz
Sun Jan 20 13:39:56 CST 2008
Hi
I am trying to create a form and a receiving script to create a form that
has a "Grade" checkbox and if the box is checked the user can pick a
particular "Round" from a drop down menu. Because there can be a number of
"grades" and each grade has a corresponding "round", I had to find a way to
link the two together. I decided to do this by concatenating "grade" with
"round" . When the script is received, I read grade and round values from a
database, and then concatenate the grade to the round. Then I do a string
compare to find a match. This will then tell me which round is linked to
which grade. Everything seems to work, except that the comparison always
fails. I have printed to the browser to check for a match, and they look
the same. I am using PHP4.0.4 on a Windows platform running Apache server
for testing. The code is below. Some of my code is probably unnecessary -
I have been playing around trying to locate where things were going wrong.
Any help would be appreciated.
Sending script
print '<p>Subject: <input type="text" name="subject" size="100"
maxlength="100" /></p>';
print "<p> Please select the draws required. </p>";
$query = "SELECT DISTINCT grade FROM $compdraw ORDER BY grade
";// For results, it is appropriate to get data from $compdraws rather than
$compgrades.
$query2= "SELECT DISTINCT new_round_id FROM $compdraw ORDER BY
new_round_id ";
if (@mysql_query($query)) {
r= mysql_query($query);
while ($row = mysql_fetch_row($r)) {
$rrow=$row[0];
print '<table border="1px"><tr><td>';
print "<p>$rrow";
print '<input type="checkbox" name="requireddraws[]" ';
print"value=$rrow></p>";
print"</input></td><td>Round: ";
print '<select name="roundid[]">';
if (@mysql_query($query2)) {
$r2= mysql_query($query2);
while ($row2 = mysql_fetch_row($r2)) {
$rrow2=$row2[0];
print "<option value=$rrow.$rrow2>";
print"$rrow2</option>";
}
print "</td></tr></select>";
}
print "</table>";
}
}
Receiving Script
//Identify which draws are required.
$query = "SELECT DISTINCT grade FROM $compdraw ORDER BY
grade";// For results, it is appropriate to get data from $compdraws rather
than $compgrades.
if (@mysql_query($query)) {
$r= mysql_query($query);
while ($row = mysql_fetch_row($r)) {
$grd=$row[0];
if
(in_array($grd,$HTTP_POST_VARS['requireddraws'])) {
$draws[] = $grd;//Fills $draws with all grades
requiring results.
$nl = 0; //Reset loop counter.
$rounds_count =
count($HTTP_POST_VARS['roundid']);//Fetches the number of grades requiring
results.
while ($nl < $rounds_count) {
$query3 = "SELECT DISTINCT new_round_id
FROM $compdraw WHERE grade = '$grd' ORDER BY new_round_id";
if (@mysql_query($query3)) {
$r3= mysql_query($query3);
while ($row3 =
mysql_fetch_row($r3)) {//Fetch all the rounds for each grade needing a
result.
$round_no = $row3[0];
$round_identifier =
$HTTP_POST_VARS['roundid'];
$round_identity =
$round_identifier[$nl];
if
(trim($round_identity) == trim($grd.$round_no)) {
print "OK";
$last_round_played[] =
$round_no ;
}
}
}
$nl = $nl+1;
}
}
}
}
Thanks.
Santilal
More information about the thelist
mailing list