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 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)