Avatar billede NSDK Nybegynder
01. maj 2014 - 00:00 Der er 7 kommentarer og
1 løsning

Hjælp til at hente korrekt resultat fra database

Hej,

Jeg har en problemstilling jeg håber I kan være med til at løse.

Jeg har en selectbox, hvor jeg har nogle options der er hentet ud fra min database fra en tabel kaldet "Events", og det fungerer fint.

<?php
$success = mysql_query("SELECT * FROM Events");
while($row = mysql_fetch_object($success)){
echo "<option value=\"". utf8_decode($row->Name) ."\">". utf8_encode($row->Name) ." (". utf8_encode($row->Club) .")" . "</option>\n";}
?>

Nu er jeg så i den situation at jeg gerne vil finde en bestemt record i tabellen ud fra mit valg i selectboxen. Jeg har en værdi kaldet "Price". Jeg vil gerne kunne hente prisen for det valgte.

Er der nogen der kan hjælpe med det?

P.S. Jeg er helt ny, og ønsker virkelig bare hjælp :-)

På forhånd mange tak.
01. maj 2014 - 00:54 #1
SELECT 'Price' FROM 'Events' WHERE 'Name' = 'XXXXXX';

Er det det du vil opnå?
Avatar billede NSDK Nybegynder
01. maj 2014 - 01:02 #2
Nej ikke helt.
Så finder jeg jo ikke den specifikke pris baseret på mit valg fra selectboxen?
Avatar billede NSDK Nybegynder
01. maj 2014 - 01:06 #3
Eller jo, det er egentligt det jeg vil opnå, men skal bare have udskiftet 'XXXXX', med resultatet af mit valg :-)
01. maj 2014 - 01:07 #4
Hvilket felt er den unikke id for et event?
01. maj 2014 - 01:08 #5
Hehe, ja det var ideen :P
Avatar billede NSDK Nybegynder
01. maj 2014 - 01:09 #6
Det er ID der er det unikke.
Avatar billede NSDK Nybegynder
01. maj 2014 - 01:18 #7
Har du en løsning til hvordan jeg får ændret XXXXX med det valgte ID?
01. maj 2014 - 03:25 #8
Jeg er et eksempel jeg har lavet. Har dog ikke testet det, og det er ikke klar til at blive lagt på nette, da det ikke sanitizer get værdien og derfor forsage SQL injection.

SQL kodeb:
CREATE DATABASE `booking`;
CREATE TABLE `booking`.`events` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(45) NOT NULL,
  `club` VARCHAR(45) NOT NULL,
  `price` DECIMAL(30) NOT NULL,
  PRIMARY KEY (`id`));

INSERT INTO `booking`.`events` (`name`, `club`, `price`) VALUES ('Roskilde F', 'Orange', '100000.45');
INSERT INTO `booking`.`events` (`name`, `club`, `price`) VALUES ('Sort Sol', 'Vega', '542');
INSERT INTO `booking`.`events` (`name`, `club`, `price`) VALUES ('La Roux', '5 Øren', '450');
INSERT INTO `booking`.`events` (`name`, `club`, `price`) VALUES ('Gesaffelstein', 'DR Koncert', '700');
INSERT INTO `booking`.`events` (`name`, `club`, `price`) VALUES ('Daft Punk', 'Operaen', '1200.32');

CREATE USER 'bookie'@'localhost' IDENTIFIED BY '***';GRANT USAGE ON *.* TO 'bookie'@'localhost' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;GRANT ALL PRIVILEGES ON `booking`.* TO 'bookie'@'localhost';



PHP - club_events.php
<html>
    <head>
        <title>Club Events</title>
    </head>
    <body>
        <div id="form">
            <form action="club_events.php" method="get">
                Select Event:<br />
                <div id="combobox">
                    <select name="events">
                    <?php
                        $db = mysqli_connect('127.0.0.1', 'bookie', 'nbfDwR9ApeUmHx6A', 'booking') or die("Database error");
                        if (mysqli_connect_errno())
                        {
                            printf("Connect failed: %s\n", mysqli_connect_error());
                            exit();
                        }
                       
                        $query = "SELECT id, name, club FROM events";
                        if ($result = mysqli_query($db, $query))
                        {
                            while ($obj = mysqli_fetch_object($result)) {
                                printf ('<option value="%s"> %s ( %s )</option><br />', $obj->id, $obj->name, $obj->club);
                            }
                        }
                        mysqli_free_result($result);
                    ?>
                    </select>
                </div>
                <input type="submit" value="Submit">
            </form>
        </div>
        <div id="result">
            <?php
                $e = $_GET["events"];
                if(isset($e))
                {
                    $query = "SELECT id, name, club, price FROM events WHERE id = '". $e ."'";
                    if (mysqli_connect_errno())
                    {
                        printf("Connect failed: %s\n", mysqli_connect_error());
                        exit();
                    }
                   
                    if ($result = mysqli_query($db, $query))
                    {
                        echo "Price list:<br />";
                        while ($obj = mysqli_fetch_object($result)) {
                            printf ("Event: %s, Club: %s, Price: %s\n", $obj->name, $obj->club, $obj->price);
                        }
                        mysqli_free_result($result);
                    }
                }
                mysqli_close($db);
            ?>
        </div>
    </body>
</html>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester