dpvomqeu396484 2017-03-23 08:14
浏览 65

使用PHP和SQL指向新URL

first I'm sorry for my English. I've got a problem with my code. I've got a school assigment to make a Game called Lotto Weekend Miljonairs and I got stuck on one thing. When you start the game you need to fill in some information about yourself, that creates an ID automatically in my php-database but the question is how does it direct you to a tab with the ID?

My code:

//Lotto.php?speler=  nummerid speler &id=1

        // Maken van verbinding database
        try {
          $db = new PDO('mysql:host=localhost;dbname=lotto', 'root','');
        }
        catch(PDOException $e) {
          echo $e->getMessage();
        }

        //nummer check spelers 
        if(!isset($_GET['speler'])) {
            exit('Geen speler');
        }

        //Controle antwoord van vraag
  if(isset($_POST['antwoord']) & isset($_POST['id'])) {

              $id = (int)$_POST['id'];
              $sql = "SELECT * FROM vragen WHERE ID = ".$id;
              $sql = $db->query($sql);
              $row = $sql->fetchAll();
              $row = $row[0];

              if($row['antwoord'] != $_POST['antwoord']) {
        //voortgang speler opslaan 
                $sql = "UPDATE spelers SET voortgang = '" . $id."' WHERE id = '" . $_GET['speler']."'";
        $resultaat = $db->exec($sql);
            header('Location: '.$uri.'/meedoen.html');
                  exit('Fout');
              }

        } elseif(!isset($_GET["ID"]) || $_GET["ID"] === 1) {

        } else {
            exit();
        }
        //ophalen van speler
  $sql = "SELECT * FROM spelers WHERE ID = '".$_GET['speler']."'";
  $sql = $db->query($sql);
    $speler = $sql->fetchAll();
  $speler = $speler[0];

  //Ophalen van (volgende) vraag
  $id = 1;
  if(isset($_GET["id"])) {
     $id = $_GET["id"];
  }

  $sql = "SELECT * FROM vragen WHERE ID = ".$id;
  $sql = $db->query($sql);
    $row = $sql->fetchAll();
    $row = $row[0];
     //volgende vraag bepalen
  $id_next = (int)$id;
    $id_next++;
            echo '<form action="Lotto.php?speler='.$_GET['speler'].'&id='.$id_next.'" method="post">';
                    echo 'vraag: '.$row['vraag'].'<br>';
                  echo '<input name="id" type="hidden" value="'.$id.'" >';
                    echo ' <input type="radio" name="antwoord" value="A" checked> antwoord A: '.$row['A'].'<br>';
                    echo ' <input type="radio" name="antwoord" value="B"> antwoord B: '.$row['B'].'<br>';
                    echo ' <input type="radio" name="antwoord" value="C"> antwoord C: '.$row['C'].'<br>';
                    echo ' <input type="radio" name="antwoord" value="D"> antwoord D: '.$row['D'].'<br>';
                    echo ' <input type="submit" name="verzend"> ';
            echo '</form>';

            //hulpmiddel publiek
           if($speler['publiek']==0) {
                echo 'Publiek gebruikt<br>';
           } elseif(isset($_POST['publiek']) && $_POST['publiek']==true) {

                $sql = "UPDATE spelers SET publiek = '0' WHERE id = '" . $_GET['speler']."'";
                $resultaat = $db->exec($sql);

                $values = publiek();
                echo 'A: '.$values[0].'<br>';
                echo 'B: '.$values[1].'<br>';
                echo 'C: '.$values[2].'<br>';
                echo 'D: '.$values[3].'<br>';

            } else {
                echo '<form action="Lotto.php?speler='.$_GET['speler'].'&id='.$id.'" method="post">';
                echo '<input name="publiek" type="hidden" value="true" >';
                echo ' <input type="submit" value="publiek"> <br>';
                echo '</form>';                   
            }
            //hulpmiddel 5050
           if($speler['halfhalf']==0) {
               echo '5050 gebruikt<br>';
           } elseif(isset($_POST['halfhalf']) && $_POST['halfhalf']==true) {
                $sql = "UPDATE spelers SET halfhalf = '0' WHERE id = '" . $_GET['speler']."'";
                $resultaat = $db->exec($sql);

                $values = halfhalf($id,$db);
                echo $values[0].' is fout<br>';
                echo $values[1].' is fout<br>';
            } else {
                echo '<form action="Lotto.php?speler='.$_GET['speler'].'&id='.$id.'" method="post">';
                echo '<input name="halfhalf" type="hidden" value="true" >';
                echo ' <input type="submit" value="halfhalf"> <br>';
                echo '</form>';                   
            }
            //hulpmiddel hint
           if($speler['hint']==0) {
              echo 'Hint gebruikt<br>';
           } elseif(isset($_POST['hint']) && $_POST['hint']==true) {

                $sql = "UPDATE spelers SET hint = '0' WHERE id = '" . $_GET['speler']."'";
                $resultaat = $db->exec($sql);
              echo ''.$row['hint'].'<br>';

            } else {
                echo '<form action="Lotto.php?speler='.$_GET['speler'].'&id='.$id.'" method="post">';
                echo '<input name="hint" type="hidden" value="true" >';
                echo '<input type="submit" value="hint"> <br>';
                echo '</form>';                   
            }

        function publiek() {

          $values = array();
          $total = 100;

          for($i=0;$i<3;$i++) {
            $temp = rand(0, $total-1);
            $values[$i] = $temp;      
            $total = $total - $temp;
          }              

          $values[3] = $total;
          return $values;
        }

        function halfhalf($id,$db) {

            $sql = "SELECT * FROM vragen WHERE ID = ".$id;
            $sql = $db->query($sql);
            $row = $sql->fetchAll();
            $row = $row[0];

            $values = array();

            while(!isset($values[0])) {
                $value = nummervraag(rand(0,3));
                if($value!==$row['antwoord']) {
                    $values[0] = $value;
                }
            }

            while(!isset($values[1])) {
                $value = nummervraag(rand(0,3));
                if($value!==$row['antwoord'] && $value!==$values[0]) {
                    $values[1] = $value;
                }
            }

            return $values;
        }

        function nummervraag($nummer) {

            switch($nummer) {
                case 0:
                    return 'A';
                case 1:
                    return 'B';
                case 2:
                    return 'C';
                case 3:
                    return 'D';
            }

        }

        ?>

My SQL:

    -- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Gegenereerd op: 22 mrt 2017 om 10:42
-- Serverversie: 10.1.19-MariaDB
-- PHP-versie: 5.6.24

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `lotto`
--

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `spelers`
--

CREATE TABLE `spelers` (
  `ID` int(11) NOT NULL,
  `voornaam` text NOT NULL,
  `achternaam` text NOT NULL,
  `leeftijd` int(11) NOT NULL,
  `woonplaats` text NOT NULL,
  `bellen` int(11) NOT NULL DEFAULT '1',
  `publiek` int(11) NOT NULL DEFAULT '1',
  `halfhalf` int(11) NOT NULL DEFAULT '1',
  `voortgang` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Gegevens worden geëxporteerd voor tabel `spelers`
--

INSERT INTO `spelers` (`ID`, `voornaam`, `achternaam`, `leeftijd`, `woonplaats`, `bellen`, `publiek`, `halfhalf`, `voortgang`) VALUES
(133, 'hhfgh', 'fgh', 34, 'dfg', 1, 1, 1, 0),
(134, 'Wessel', 'Minnen', 16, 'Oosterbeek', 1, 1, 1, 0),
(135, '', '', 0, '', 1, 1, 1, 0),
(136, '', '', 0, '', 1, 1, 1, 0),
(137, 'Wessel', 'Minnen', 10, 'wwe', 1, 1, 1, 0);

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `vragen`
--

CREATE TABLE `vragen` (
  `ID` int(11) NOT NULL,
  `vraag` text NOT NULL,
  `A` text NOT NULL,
  `B` text NOT NULL,
  `C` text NOT NULL,
  `D` text NOT NULL,
  `antwoord` text NOT NULL,
  `hint` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Gegevens worden geëxporteerd voor tabel `vragen`
--

INSERT INTO `vragen` (`ID`, `vraag`, `A`, `B`, `C`, `D`, `antwoord`, `hint`) VALUES
(1, 'hoeveel poten?', '4', '5', '6', '7', 'C', 'gggg'),
(2, 'hoeveel scholen zijn er in nl?', '5000', '100000', '15', '1000000', 'A', 'dit is een test'),
(3, 'hoelang is een chinees?', '80cm', '90cm', '100cm', 'hoelang', 'D', 'het is een chinees'),
(4, 'wat is het gem. inkomen per uur?', '5 euro', '60000 euro', '7 euro', '8 euro', 'B', 'veel geld'),
(5, 'wie is de rijkste rapper van de wereld?', 'biggie', 'ali b', 'eminem', 'miley cyrus', 'C', 'afkomst is Amerikaans');

--
-- Indexen voor geëxporteerde tabellen
--

--
-- Indexen voor tabel `spelers`
--
ALTER TABLE `spelers`
  ADD PRIMARY KEY (`ID`);

--
-- Indexen voor tabel `vragen`
--
ALTER TABLE `vragen`
  ADD PRIMARY KEY (`ID`),
  ADD KEY `ID` (`ID`);

--
-- AUTO_INCREMENT voor geëxporteerde tabellen
--

--
-- AUTO_INCREMENT voor een tabel `spelers`
--
ALTER TABLE `spelers`
  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=138;
--
-- AUTO_INCREMENT voor een tabel `vragen`
--
ALTER TABLE `vragen`
  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!

40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

My php code to add a player:

<!DOCTYPE html>
<html>
<head>
    <title>Lotto weekend miljonairs</title>
</head>
<body>
 <?php
 // Maken van verbinding
 try {
 $db = new PDO('mysql:host=localhost;dbname=lotto', 'root','');
 }
 catch(PDOException $e) {
 echo $e->getMessage();
 }
 // De SQL opdracht
 $sql = "INSERT INTO spelers (voornaam, achternaam, leeftijd, woonplaats)
 VALUES ('$_POST[voornaam]','$_POST[achternaam]', '$_POST[leeftijd]','$_POST[woonplaats]')";
 $resultaat = $db->exec($sql);
 // Controle van de toegevoegde gegevens
 $sql = "SELECT * FROM `spelers` where voornaam=$_POST[voornaam]";
 $resultaat = $db->query($sql);
 foreach ($resultaat as $resultaat) {
    echo '<p>';
    echo 'Voornaam:' .$resultaat['voornaam'].'<br>';
    echo 'Achternaam:' .$resultaat['achternaam'].'<br>';
    echo 'Leeftijd:' .$resultaat['leeftijd'].'<br>';
    echo 'Woonplaats:' .$resultaat['woonplaats'].'<br>';
    echo '</p>';
 }
    echo "<p>is toegevoegd!</p>";
    echo "<p><form action='spel.php' method='post'>
        <input type='submit' name='submit' value='Klik hier om te beginnen!' title='Klik hier om te beginnen!' tabindex='6'>
        </form></p>";
    $db = NULL;
 ?> 
    <form action="SEG.html" method="post">
    <input type="submit" name="terug" value="Terug naar het menu." title="Terug" tabindex="7">
</form>
</body>
</html>
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题
    • ¥15 lna设计 源简并电感型共源放大器