Avatar billede Thomasrn Seniormester
17. marts 2017 - 14:41 Der er 5 kommentarer og
1 løsning

tilfældig nummer

er nok et rookie spørgsmål men er rimelig ny inde for dette skal have importeret et random nummer til min sql og skal være et tal mellem 1-10
koden ser således ud
<?php
echo(rand(10,100));
?>
hvordan giver jeg den et navn så jeg kan få den ind i min MySQL?
Avatar billede amite Mester
17. marts 2017 - 14:49 #1
Hvis du spørger om hvordan du laver en PHP variabel som indeholder værdien af funktionen rand(10,100), så gøres det som følger:

$varRandomNumber = rand(10,100);

Så kan du bruge $varRandomNumber i din SQL statement fra PHP.

Hvis det er noget andet du spørger om, så uddyb venligst...
Avatar billede Thomasrn Seniormester
17. marts 2017 - 15:01 #2
mener om man ikke kan give den et navn lige som den her kode som har fået navnet  postion

<div class="position">
    <label>Position:</label>
    <select name="position">
        <?php
            $query = "SELECT * FROM position";
            $results = mysqli_query($con, $query);

            foreach ($results as $position) {
                    ?>
        <option value="<?php echo $position["position"];?>"><?php echo $position["position"]; ?></option>


så jeg kan smide den over i min MySQL på denne måde

$sql = "INSERT INTO fodboldspillere (fornavn, efternavn, alder, land, position)
VALUES ('$spillerfornavn', '$spillerefternavn', '$alder', '$land', '$position')";
$result = $con->query($sql);
Avatar billede amite Mester
17. marts 2017 - 16:37 #3
Man kan gøre hvad man vil :) Men du bliver dog nødt til at udtrykke dig lidt mere klart, hvis vi skal nå i mål med dette. Hvis man stiller upræcise spørgsmål, får man upræcise svar. Jeg kan simpelthen ikke svare fyldestgørende på det du spørger om. Der ikke er nok information om hvad du ønsker at opsnå og hvorfor.

Så hvis jeg skal svare dig på det du spørger om bliver svaret:

Du har en PHP variabel som indeholder navnet værdien af rand(10,100). Du ønsker at gemme denne værdi i en MySQL tabel. Det kan du gøre ved at oprette et felt i tabellen som hedder f.eks. "randomnumber" os så indsætte værdien af det tilfældige nummer deri som følger:

$varRandomNumber = rand(10,100);

$sql = "INSERT INTO fodboldspillere (fornavn, efternavn, alder, land, position, randomnumber) VALUES ('$spillerfornavn', '$spillerefternavn', '$alder', '$land', '$position', '$varRandomNumber')";
Avatar billede Thomasrn Seniormester
17. marts 2017 - 17:01 #4
okay lad mig prøve at forklare det, det er fordi jeg er i gang med at lave et spil hvor man skal kunne lave sin egen fodboldspiller og skal genere et tilfældig tal som spilleren skal ha' som stats så der for vil jeg kun genere et nr mellem 10-100 i f.eks. aflevering, skud, hovedstød osv. har fået den til at gemme alt det man skal indtaste/vælg men kan ikke få gemte det random nummer vil mene koden skulle være så ledes

<?php
$varRandomNumber = rand(1,12);
?>

og så når den skulle gemmes i MySQL

$sql = "INSERT INTO fodboldspillere (fornavn, efternavn, alder, land, position, aflervering)
VALUES ('$spillerfornavn', '$spillerefternavn', '$alder', '$land', '$position', '$varRandomNumber')";
$result = $con->query($sql);

så aflevering skulle gerne gemmes til et tal mellem 1-12 men sker ikke håber det gav et lidt bedre forklaring :)
Avatar billede olsensweb.dk Ekspert
17. marts 2017 - 19:12 #5
hvilke fejl får du ??
står der det i $sql som du forvendter ??
hvorfor sætter du ikke or die på din query eller pakker din query ind i en if sætning ??.
har du en mysqli connection ?? (kan se i dit sidste spm du brugte det gamle mysql API )



et lille hurtigt eks


<?php
// test database
/*
--
-- Database: `test`
--

CREATE TABLE `fodboldspillere` (
  `id` int(11) NOT NULL,
  `fornavn` varchar(50) COLLATE utf8_danish_ci NOT NULL,
  `efternavn` varchar(50) COLLATE utf8_danish_ci NOT NULL,
  `alder` int(11) NOT NULL,
  `land` varchar(20) COLLATE utf8_danish_ci NOT NULL,
  `position` int(11) NOT NULL,
  `aflervering` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;


ALTER TABLE `fodboldspillere`
  ADD PRIMARY KEY (`id`);


ALTER TABLE `fodboldspillere`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
*/



$con = new mysqli('localhost', 'root', '', 'test');
// check connection
if (!$con) {
    echo 'Der opstod en fejl.';
    exit();
}
$con->set_charset("utf8");


$varRandomNumber = rand(1,12);

// test data
$spillerfornavn = "allan";
$spillerefternavn = "simonsen";
$alder = 42; // bør være en datetime ala 1999-05-09 00:00:00, og hedde dob (date of birth), ellers bliver det besværligt med at opdatere hver gang en spiller fylder år :)
$land = "dk"; // bør hedde lande_id, og være en fremmednøgle til en lande tabel
$position = "5";



$sql = "INSERT INTO fodboldspillere (fornavn, efternavn, alder, land, position, aflervering)
VALUES ('$spillerfornavn', '$spillerefternavn', '$alder', '$land', '$position', '$varRandomNumber')";
echo $sql; // test, står der hvad jeg forvendter ??
$result = $con->query($sql) or die($con->error);
?>
Avatar billede Thomasrn Seniormester
09. april 2017 - 04:42 #6
fandt dog en løsning til sidste brugte denne kode i opretspiller,php
<input type="hidden" name="aflervering" value="<?php echo rand(1,10); ?>" />

og gemte i opretspiller2,php
$aflervering = $_POST['aflervering'];
$sql = "INSERT INTO fodboldspillere (aflervering)¨
VALUES ('$aflervering*);
$result = $con->query($sql);
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