webForumDet fria alternativet
Logga in / Bli medlem

Formulärkontrollen fungerar inte

PHP

2 svar · 413 visningar · startad av eklof00

Medlem sedan jan. 200737 inlägg
Frågan#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!'; 
 
}
?>
Medlem sedan juni 20006 031 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.

Medlem sedan jan. 200737 inlägg
#3

Ska jag sätta den på rad 25?

376 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
129 ms — deklarationer (db)
120 ms — hämta statistik (db)
125 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)