webForumDet fria alternativet

Formulärkontrollen fungerar inte

2 svar · 411 visningar · startad av eklof00

eklof00Medlem sedan jan. 200737 inlägg
#1

Denna kod skapar ett formulär med radiknappar där användaren skall välja 1, x eller 2. Jag vill att ett felmeddelande visas om inte användaren har markerat samtliga matcher (rad 25). Som det ser ut verkar det som om koden endast kontrollerar den första matchen och lämnar resten tomt.

<?php 
session_start(); // Alltid överst på sidan 
 
include "conn.php"; // Databasanslutningen

header ('Refresh: 60');
// Kolla om inloggad = sessionen satt 
if (!isset($_SESSION['sess_match_id'])){ 
  header("Location: as08.php"); 
  exit; 
}
if (!isset($_SESSION['sess_user_id'])){ 
  header("Location: index.php"); 
  exit; 
}
 if (isset($_POST['submit'])) { 
 // Kolla om användaren tippat förut
  $i = 0;
  $sql = "SELECT COUNT(*) FROM spel_tb WHERE user_id='{$_SESSION['sess_user_id']}' AND match_id='{$_POST['match_id'][$i]}'";
  $result = mysql_query($sql);
  if (mysql_result($result, 0) > 0) {
    $error[] = 0;
	$i++;
  }
   // Kolla om det finns tomma fält
   $i = 0;
      if (empty($_POST['tips_'.$_POST['match_id'][$i]])) {
         $error[] = 1;
      }
 
 if (!isset($error)){
    $i = 0;
    foreach($_POST['match_id'] as $match) {
        $sql = "INSERT INTO spel_tb (user_id, match_id, tips) VALUES('{$_SESSION['sess_user_id']}','{$_POST['match_id'][$i]}','{$_POST['tips_'.$_POST['match_id'][$i]]}')"; 
        mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
        $i++;
    }
     header("Location: speltack.php"); 
     exit;
}
}
$error_list[0] = "Du har redan tippat på den här eller dessa matcher!";
$error_list[1] = "Du har inte fyllt i alla fält!";
if (isset($error)) { 
   foreach ($error as $err) {
      echo $error_list[$err]."<br />";
   }
}

 ?> 
<form action="spel_as08.php" method="post" name="submit"> 
<?PHP 
$sql = "SELECT * FROM match_tb WHERE liga='as08' AND date > CURRENT_TIMESTAMP() AND date = ' {$_SESSION['sess_date']} '" or die(mysql_error()); 
$result = mysql_query($sql); 
   while ($row = mysql_fetch_assoc($result)) { 
$date[$row['date']][] = array($row['match_id'], $row['matcher']); 
} 
 
 
if (isset($date) && !empty($date)) { 
      echo '<table>';   
      foreach ($date as $day => $value){ 
          echo '<tr>'; 
         echo '<td></td>'; 
         echo '<td>' . '<b>' . $day. '</b>' . '</td>'; 
         echo '<td align="center"><b>1</b></td>'; 
         echo '<td align="center"><b>X</b></td>'; 
         echo '<td align="center"><b>2</b></td>'; 
      echo '</tr>'; 
       
        foreach ($value as $game) 
       { 
        echo '<tr>'; 
        echo '<td align ="right">'. $game[0].'.</td>'; 
      
      
         echo '<td>'. $game[1].'</td>'; 
         echo '<td><input type="radio" value="1" name="tips_'.$game[0].'"></td> 
                 <td><input type="radio" value="X" name="tips_'.$game[0].'"></td> 
                 <td><input type="radio" value="2" name="tips_'.$game[0].'"><input type="hidden" name="match_id[]" value="'.$game[0].'"></td>'; 
         echo '</tr>'; 
         
          } 
 
} 
echo '</table>'; 
echo '<input type="submit" name="submit" value="Skicka"> 
</form>'; 
 
}else{ 
echo 'Du kan inte spela på denna match, Spelstopp har inträtt!'; 
 
}
?>
PeddaMedlem sedan juni 20006 032 inlägg
#2

Använd count($dinarray) för att få ut antalet poster i din array och jämför det med antalet val.

eklof00Medlem sedan jan. 200737 inlägg
#3

Ska jag sätta den på rad 25?

243 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
240 ms — hämta tråd, inlägg och bilagor (db)