Avatar billede djsteiner Nybegynder
30. december 2011 - 21:33 Der er 19 kommentarer og
1 løsning

loop iggem svar muligheder

hej jeg vil gerne have hjælp til hvordan dette sættes op rigtigt?

<?php
  $sql = mysqli_query($conn, "SELECT * FROM svar ORDER BY id ASC");

while ($result = mysqli_fetch_array($sql)) {



echo "<option name="svar" value=".$result['id']."'>  ".$result['svar']." 

</option>
Avatar billede jakobdo Ekspert
30. december 2011 - 21:38 #1
Mener du mysqli eller bare mysql?

i den gamle mysql, burde følgende virke:
<?php
$sql = mysql_query($conn, "SELECT * FROM svar ORDER BY id ASC");
if(mysql_num_rows($sql)>0){
  echo '<select name="svar">';
  while($result = mysql_fetch_array($sql)){
    echo '<option value="'.$result['id'].'">'.$result['svar'].'</option>';
  }
  echo '</select>';
}
?>
Avatar billede djsteiner Nybegynder
30. december 2011 - 22:27 #2
Hmm der sker ikke noget
Avatar billede jakobdo Ekspert
30. december 2011 - 22:31 #3
Bemærk jeg har rettet fra mysqli -> mysql.
Måske du kan tilføje i igen og teste.
Ellers tjek mysqli_error()
Avatar billede djsteiner Nybegynder
30. december 2011 - 22:38 #4
Min kode ser sådan her ud nu:

<?php 
   
echo 'Svar <select name="svar">';
echo '<option>Svar</option>';


$sql = mysql_query($conn, "SELECT * FROM svar ORDER BY id ASC");
if(mysql_num_rows($sql)>0){
  echo '<select name="svar">';
  while($result = mysql_fetch_array($sql)){
    echo '<option value="'.$result['id'].'">'.$result['svar'].'</option>';
  }
  echo '</select>';
}
?>
Avatar billede jakobdo Ekspert
30. december 2011 - 22:41 #5
Prøv lige at tilføj:

$sql = mysql_query($conn, "SELECT * FROM svar ORDER BY id ASC") or die(mysql_error());

Mit bud er du mangler at forbinde til databasen.
Avatar billede djsteiner Nybegynder
30. december 2011 - 22:49 #6
jeg har includret min dbconnection

<?php
 


include "include/dbconnct.php";


?>
</head>

<body>

<fieldset>

    <legend>Er det street?</legend>
   
    <form action="insert.php" id="form1" name="form1" method="POST">
   
    <label>
   
<?php 
   
echo 'Svar <select name="svar">';
echo '<option>Svar</option>';


$sql = mysql_query($conn, "SELECT * FROM svar ORDER BY id ASC") or die(mysql_error());


if(mysql_num_rows($sql)>0){
  echo '<select name="svar">';
  while($result = mysql_fetch_array($sql)){
    echo '<option value="'.$result['id'].'">'.$result['svar'].'</option>';
  }
  echo '</select>';
}
?>

   
       
       
    </label>
   

   
 

    <input type="submit" name="submit" id="submit" value="Vote" />
   
    <input type="hidden" name="id" value="form1" />
   
    <input type="hidden" name="MM_insert" value="form1" />
</form>

</fieldset>
Avatar billede jakobdo Ekspert
30. december 2011 - 22:50 #7
Og hvad sker der så på din side nu ?
Avatar billede djsteiner Nybegynder
30. december 2011 - 22:55 #8
selve formularen kommer bare frem men ikke noget fra databasen
Avatar billede jakobdo Ekspert
30. december 2011 - 23:01 #9
Ret lige:


$sql = mysql_query($conn, "SELECT * FROM svar ORDER BY id ASC") or die(mysql_error());


if(mysql_num_rows($sql)>0){
  echo '<select name="svar">';
  while($result = mysql_fetch_array($sql)){
    echo '<option value="'.$result['id'].'">'.$result['svar'].'</option>';
  }
  echo '</select>';
}
?>

til:


$sql = mysql_query($conn, "SELECT * FROM svar ORDER BY id ASC") or die(mysql_error());


if(mysql_num_rows($sql)>0){
  echo '<select name="svar">';
  while($result = mysql_fetch_array($sql)){
    echo '<option value="'.$result['id'].'">'.$result['svar'].'</option>';
  }
  echo '</select>';
}else{
echo 'Ingen svar fra DB';
}
?>
Avatar billede djsteiner Nybegynder
31. december 2011 - 00:01 #10
jeg prøvede lige at lave det uden at include min db connection:


<?php
$con = mysql_connect("localhost","root");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("picvote", $con);

   
echo 'Svar <select name="svar">';
echo '<option>Svar</option>';


$sql = mysql_query($con, "SELECT * FROM svar ORDER BY id ASC") or die(mysql_error());


if(mysql_num_rows($sql)>0){
  echo '<select name="svar">';
  while($result = mysql_fetch_array($sql)){
    echo '<option value="'.$result['sid'].'">'.$result['svar'].'</option>';
  }
  echo '</select>';
}else{
echo 'Ingen svar fra DB';
}
?>
    </label>
   

   
 

    <input type="submit" name="submit" id="submit" value="Vote" />
   
    <input type="hidden" name="id" value="form1" />
   
    <input type="hidden" name="MM_insert" value="form1" />
</form>

</fieldset>
Avatar billede djsteiner Nybegynder
31. december 2011 - 00:06 #11
Jeg prøvede også lige at lave en mere simple form så vist på denne side:

http://www.w3schools.com/php/php_mysql_insert.asp

Det virker fint.

Du havde ret men hensyn til at der ikke var forbindelse til databasen.
Avatar billede djsteiner Nybegynder
31. december 2011 - 00:24 #12
Jeg har lige prøvet at lave det fra mysql -> mysqli. igen så for jeg denne fejl:


Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\wamp\www\picture voting\index.php on line 26 Call Stack: 0.0005 675664 1. {main}() C:\wamp\www\picture voting\index.php:0 0.0073 684256 2. mysqli_select_db() C:\wamp\www\picture voting\index.php:26
Avatar billede jakobdo Ekspert
31. december 2011 - 00:25 #13
Svar
Avatar billede djsteiner Nybegynder
31. december 2011 - 00:31 #14
okay er det lukke tid ?
Avatar billede djsteiner Nybegynder
31. december 2011 - 00:36 #15
Jeg kan jo ikke få det selve spørgsmålet går ud på til at virke ?
Avatar billede djsteiner Nybegynder
31. december 2011 - 00:37 #16
hvad sker der her ?

if(mysql_num_rows($sql)>0){
Avatar billede inteeeL Nybegynder
31. december 2011 - 04:42 #17
Lige til dit sidste spørgsmål: mysql_num_rows( $sql) returnerer antal rækker for query-stringen.

if(mysql_num_rows($sql)>0){


Ovenstående kan oversættes til "hvis query-stringen returnerer mere end 0 resultater - altså mindst et resultat, kan scriptet forstsætte - ellers udskrives der en fejl".

Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\wamp\www\picture voting\index.php on line 26 Call Stack: 0.0005 675664 1. {main}() C:\wamp\www\picture voting\index.php:0 0.0073 684256 2. mysqli_select_db() C:\wamp\www\picture voting\index.php:26


Det er ganske logisk, at din mysqli_select_db returnerer en fejl - 1. parameter er en string og ikke mysqli. Først skal du beslutte dig for, hvad du vælger at benytte - mysql eller mysqli. Begge fungerer, men opstillingen er anderledes - vil personligt anbefale mysqli. Jeg går ud fra, at det er eksemplet fra http://www.w3schools.com/php/php_mysql_insert.asp, du har taget udgangspunkt i. Se rettelsen herunder samt kommentarerne.

<?php

$con = mysqli_connect("localhost","peter","abc123"); // Vores database-forbindelse
if (!$con) { // Hvis der ikke er forbindelse, udskrives der en fejl
    die('Could not connect: ' . mysqli_error( $con)); //Fejl af $con
}

mysqli_select_db($con, "my_db"); // Vi vælger databasen, læg mærke til at vores database-forbindelse står først ($con) - databasen efter

mysqli_query($con, "INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Peter', 'Griffin', '35')") OR die( mysqli_error( $con)); // Læg mærke til $con før sql-kaldet
mysqli_query($con, "INSERT INTO Persons (FirstName, LastName, Age) VALUES ('Glenn', 'Quagmire', '33')") OR die( mysqli_error( $con)); // Læg mærke til $con før sql-kaldet

mysqli_close($con);

?>


Håber det hjalp på forståelsen :)
Avatar billede djsteiner Nybegynder
31. december 2011 - 14:28 #18
Hej alle som har hjulpet mig her i denne tråd tak hjælpen jeg vil arbejde videre med det i det nye år :)

Godt nytår til jer! :)
Avatar billede djsteiner Nybegynder
02. januar 2012 - 18:16 #19
Hej er jeg på banen igen! :)

Jeg har lige prøvae at teste noget hvor jeg udskriver fra den samme database og tabel og det virker  som det skal:

<?php
$con = mysql_connect("localhost","root");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("picvote", $con);

$result = mysql_query("SELECT * FROM svar");

while($row = mysql_fetch_array($result))
  {
  echo $row['sid'] . " " . $row['svar'];
  echo "<br />";
  }

mysql_close($con);
?>
Avatar billede jakobdo Ekspert
03. januar 2012 - 09:44 #20
Er det så ikke lukke tid ?
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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