hallo

ik moet voor een school opdracht een poll maken met een dropdown menu met 50 bands erin en waarbij de eerst stem voor 9 punten telt de 2e voor 6 en de 3e voor 3 punten kan iemand mij daarbij helpen???

<select name="stem1">
<!-- met php hier 50 bands laten zien in een <option value="band_ID"> -->
</select>
<select name="stem2">
<!-- met php hier 50 bands laten zien in een <option value="band_ID"> -->
</select>
<select name="stem3">
<!-- met php hier 50 bands laten zien in een <option value="band_ID"> -->
</select>


Probeer eerst dat eens.

1) De bands ophalen uit de database (ik neem aan dat ze daar in staan?)
2) De bands in de <option>'s zetten
3) Er een werkend formulier omheen maken

Pas daarna kom je aan het toekennen van het aantal punten.
Thomas van den Heuvel op 19/05/2016 16:43:46

Wat heb je zelf al bedacht/ontworpen/gemaakt?


dit is wat ik to nu toe heb
<?php
<?php

error_reporting(E_ALL ^ E_DEPRECATED);
// php select option value from database

$hostname = "localhost";
$username = "root";
$password = "";
$databaseName = "poll";

// connect to mysql database

$connect = mysqli_connect($hostname, $username, $password, $databaseName);

// mysql select query
$query = "SELECT * FROM `bands`";

// for method 1

$result1 = mysqli_query($connect, $query);
$result2 = mysqli_query($connect, $query);
$result3 = mysqli_query($connect, $query);


?>

<body>

<fieldset>

<legend>What is your favorite Band?</legend>

<form action="" id="form1" name="form1" method="POST">

Email<br>
<input type="text" name="Email" id="email"><br>

<select id="vote1">

<?php while($row1 = mysqli_fetch_array($result1)):;?>

<option value="" id="vote1"><?php echo $row1[1];?></option>


<?php endwhile;?>


</select>

<select id="vote2">

<?php while($row2 = mysqli_fetch_array($result2)):;?>

<option value="" id="vote2"><?php echo $row2[1];?></option>


<?php endwhile;?>


</select>

<select id="vote3">

<?php while($row3 = mysqli_fetch_array($result3)):;?>

<option value="" id="vote3"><?php echo $row3[1];?></option>


<?php endwhile;?>


</select>


<input type="submit" name="submit" id="submit" value="Vote" />

<input type="hidden" name="id" value="form1" />

<input type="hidden" name="MM_insert" value="form1" />

<?php




?>
</form>

</fieldset>

</body>
?>

[size=xsmall]Toevoeging op 20/05/2016 09:28:59:[/size]

Ramon van Dongen op 19/05/2016 17:48:55


<select name="stem1">
<!-- met php hier 50 bands laten zien in een <option value="band_ID"> -->
</select>
<select name="stem2">
<!-- met php hier 50 bands laten zien in een <option value="band_ID"> -->
</select>
<select name="stem3">
<!-- met php hier 50 bands laten zien in een <option value="band_ID"> -->
</select>


Probeer eerst dat eens.

1) De bands ophalen uit de database (ik neem aan dat ze daar in staan?)
2) De bands in de <option>'s zetten
3) Er een werkend formulier omheen maken

Pas daarna kom je aan het toekennen van het aantal punten.



dat heb ik al maar nu moet ik een werkende database hebben waarbij die het update als ik bijvoorbeeld stem op alle 3
Wat is de reden dat je op lijn 21 t/m 23 steeds dezelfde query uitvoert?
- Ariën - op 20/05/2016 10:31:30

Wat is de reden dat je op lijn 21 t/m 23 steeds dezelfde query uitvoert?


idk was dingen aan het proberen maar ik heb de code aangepast naar dit maar dit werkt ook niet
hij past het niet aan in de database
<?php
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
//include "includes/connection.php";

define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'poll');

$db_link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME) or die ("verbindingsfout");
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

if (mysqli_connect_errno()) {
printf("connect failed: %s\n", mysqli_connect_error());
exit();
}

if ($result = $mysqli->query("SELECT DATABASE()")) {
$row = $result-> fetch_row();
printf("", $row[0]);
$result->close();

}




?>

<body>

<fieldset>

<legend>What is your favorite Band?</legend>

<form action="" id="form1" name="form1" method="POST">

Email:<br>
<input type="text" name="Email" id="email"></br></br>

Nummer 1<br/>

<?php echo '<select name="vote1">';
echo '<option>Kies een band</option>';

$sql="SELECT * FROM bands ORDER BY band";
$result = mysqli_query($db_link, $sql);

if (!$result){
die ("Database connection failed!");
}

while($row = mysqli_fetch_assoc($result)){
echo '<option value="' . $row['band_id'] . '">' . $row['band'] . '</option>';
}

echo '</select>';
?> </br>


Nummer 2</br>

<?php echo '<select name="vote2">';
echo '<option>Kies een band</option>';

$sql="SELECT * FROM bands ORDER BY band";
$result = mysqli_query($db_link, $sql);

if (!$result){
die ("Database connection failed!");
}

while($row = mysqli_fetch_assoc($result)){
echo '<option value="' . $row['band_id'] . '">' . $row['band'] . '</option>';
}

echo '</select>';
?></br>

Nummer 3<br/>

<?php echo '<select name="vote3">';
echo '<option>Kies een band</option>';

$sql="SELECT * FROM bands ORDER BY band";
$result = mysqli_query($db_link, $sql);

if (!$result){
die ("Database connection failed!");
}

while($row = mysqli_fetch_assoc($result)){
echo '<option value="' . $row['band_id'] . '">' . $row['band'] . '</option>';
}

echo '</select>';
?>

<?php


$conn = mysqli_connect ("localhost", "root", "", "poll");

if (!$conn === true) {
die("</br>connection failed: ". mysqli_connect_error());

}



if (isset($_POST['form1'])){
$email = mysqli_real_escape_string($link, $_POST['email']);
$vote1 = mysqli_real_escape_string($link, $_POST['vote1']);
$vote2 = mysqli_real_escape_string($link, $_POST['vote2']);
$vote3 = mysqli_real_escape_string($link, $_POST['vote3']);

$stmt = mysqli_prepare($db_link, "
UPDATE bands
SET stemmen =
CASE band_id
WHEN ? THEN punten + 10
WHEN ? THEN punten + 6
WHEN ? THEN punten + 3
END
WHERE band_id IN (?, ?, ?)");
mysqli_stmt_bind_param($stmt, "iiiiii", $vote1, $vote2, $vote3, $vote1, $vote2, $vote3);
mysqli_stmt_execute($stmt);

$stmt2 = mysqli_prepare($db_link, "INSERT INTO users (stem_id, email) VALUES (NULL, ?)");
mysqli_stmt_bind_param($stmt2, "s", $email);
mysqli_stmt_execute($stmt2);
}
?>
<input type="submit" name="submit" id="submit" value="Vote" />



</form>

</fieldset>

</body>
?>
En wat is je vraag/probleem precies?
En waarom maak je op lijn 11 en 12 twee keer een verbinding. Zowel procedureel (mysqli_connect) als via Object-Oriented (new Mysqli)?

Kies gewoon één van beiden.
- Ariën - op 20/05/2016 12:07:03

En wat is je vraag/probleem precies?
En waarom maak je op lijn 11 en 12 twee keer een verbinding. Zowel procedureel (mysqli_connect) als via Object-Oriented (new Mysqli)?

Kies gewoon één van beiden.


ik moet een zorgen dat als ik nu stem dat die de stemmen bijtelt in de database met de eerste stem 9 puten de 2e 6 en de 3e stem 3 punten maar dat werkt nog niet
Zorg dat je gewoon één connectie maakt, en kies dan procedureel of Object-Oriënted. Niet beiden tegelijk, en ook is het niet nodig om later een connectie te maken.

Bij sterke voorkeur kan je connectie opslaan in een apart bestand, zodat je die altijd en overal als eerste kan includeren.
Oef, misschien eens de functies opzoeken in documentatie wat je gebruikt?
Als je weet wat de functies / operators doen, weet je ook waar het misgaat.
Wanneer je de punten rechtstreeks in de bands tabel wegschrijft kun je niet meer zien hoe deze punten totstand zijn gekomen. Je houdt alleen het resultaat van de berekening bij... Ook controleer je nergens of iemand al gestemd heeft?

Ik zou een aparte tabel voor stemmen maken, waarbij iemand op grond van een e-mail adres een top 3 in kan geven. Je houdt daar simpelweg een e-mail adres bij, en drie band-id's. ZONDER score-gewichten, want wat als deze op een gegeven moment veranderen? Alleen de positie in de top 3 van een band van zo'n stem is van belang, de rest is uit te rekenen.

Reageren