Jump to content

Recommended Posts

Posted

Boa noite, tenho aqui este codigo que tem um select option para gravar qual a categoria daquela reserva:

<?php
include "template.php";
?>
<div class="content-box">
 <h1 align="center">Área das Reservas!</h1>
 </div><br>


<?php
$error = "";
$success = "";
if (!empty($_POST['reserva'])) {
if (!$_POST['release'] || !$_POST['categoria']) {
print "<div align='center'><h4>Tem de preencher todos os campos.</h4></div>";
exit;
}
if (empty($error )) {
 $release = mysql_real_escape_string($_POST['release']);
 $categoria = $_POST['categoria']; // escaping not needed when hashing. Should use a salt for md5

  $id_utilizador = $_SESSION['id'];
  $data_reserva = date("d F Y");
 if (empty($error)) {
	$registerquery = mysql_query("INSERT INTO reservas (release, id_categoria, id_utilizador, data_reserva) VALUES('".$release."', '".$categoria."', '".$id_utilizador."', '".$data_reserva."')");
	  if($registerquery) {
	   $success .= "<div align='center'>A sua conta foi criada. Por favor <a href=\"login.php\">clique aqui para login</a>.</div>";
	  } else {
	   $error .= "<div align='center'>Desculpe, o registo falhou. Por favor tente de novo.</div>";
	  }
  }
}
}
?>

 <div class="content-box">

 <?php
if (!empty($error)) {
?>
<h1 align='center'>Erro</h1>
<?php echo $error; ?>
<?php
}elseif (!empty($success)) {
echo $success;
}else {
?>
<form method="post" action="reserva.php" name="reserva">
<table>
	 <tr>
								 <td>
									Release:
									</td>
									<td>
									<input name="release" type="text" class="input" size="25"/>
									</td>
								</tr>
	 <tr><td><select name='categoria'>
	<?php $getips = mysql_query("SELECT * FROM categoria");
	while($r = mysql_fetch_array($getips))
	{
  echo "<option value='$r[nome_categoria]'>$r[nome_categoria]</option>";
	}
	echo "</select></td></tr>"; ?>
</table>
 <input type="submit" name="reserva" id="reserva" value="Enviar" />
</form></div></div>
<?php
}
?>

 </div>

Na base de dados tenho isto:

pbKPS.png

e queria que no select aparecesse tudo o que aparece no "nome_categoria", mas quero que seja inserido na outra tabela o id e nao o nome da categoria....

Espero por ajuda obrigado...

Posted (edited)

Eu não testei o code, mas deve funcionar 🙂

$q = 'SELECT id, nome_categoria FROM categorias';
$result = mysql_query($q);
echo '<select name=selector>'; $c='';
while ($row = mysql_fetch_array($result)) {
   echo '<option value="'.$row['id'].'">'.$row['nome_categoria'].'</option>'
   $c++;
}
if (empty($c)) echo '<option value=0>No Values</option>';
echo '</select>';
Edited by MoshMage

If all Else fails, use Else If;

Posted

Agora tenho algo assim:

<?php
include "template.php";
?>
<div class="content-box">
 <h1 align="center">Área das Reservas!</h1>
 </div><br>


<?php
$error = "";
$success = "";
if (!empty($_POST['reserva'])) {
if (!$_POST['release'] || !$_POST['selector']) {
print "<div align='center'><h4>Tem de preencher todos os campos.</h4></div>";
exit;
}
if (empty($error )) {
 $release = mysql_real_escape_string($_POST['release']);
 $categoria = $_POST['selector']; // escaping not needed when hashing. Should use a salt for md5

  $id_utilizador = $_SESSION['id'];
  $data_reserva = date("d F Y");
 if (empty($error)) {
    $registerquery = mysql_query("INSERT INTO reservas (release, id_categoria, id_utilizador, data_reserva) VALUES('".$release."', '".$categoria."', '".$id_utilizador."', '".$data_reserva."')");
	  if($registerquery) {
	   $success .= "<div align='center'>A sua conta foi criada. Por favor <a href=\"login.php\">clique aqui para login</a>.</div>";
	  } else {
	   $error .= "<div align='center'>Desculpe, o registo falhou. Por favor tente de novo.</div>";
	  }
  }
}
}
?>

 <div class="content-box">

 <?php
if (!empty($error)) {
?>
<h1 align='center'>Erro</h1>
<?php echo $error; ?>
<?php
}elseif (!empty($success)) {
echo $success;
}else {
?>
<form method="post" action="reserva.php" name="reserva">
<table>
	 <tr>
								 <td>
								    Release:
								    </td>
								    <td>
								    <input name="release" type="text" class="input" size="25"/>
								    </td>
							    </tr>
<?php
$q = 'SELECT id, nome_categoria FROM categoria';
$result = mysql_query($q);
echo '<select name=selector[]>'; $c='';
while ($row = mysql_fetch_array($result)) {
   echo '<option value="'.$row['id'].'">'.$row['nome_categoria'].'</option>';
}
if (empty($c)) echo '<option value=0>No Values</option>';
echo '</select>'; ?>
</table>
 <input type="submit" name="reserva" id="reserva" value="Enviar" />
</form></div></div>
   <?php
}
?>

 </div>

mas diz-me sempre "ERRO Desculpe, o registo falhou. Por favor tente de novo."

Posted (edited)

Desculpe, o registo falhou. Por favor tente de novo. (erro : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'release, id_categoria, id_utilizador, data_reserva) VALUES('oaoaoaoa', '1', '44'' at line 1)

EDIT: descobri o erro: $registerquery = mysql_query("INSERT INTO `reservas` (`release`, `id_categoria`, `id_utilizador`, `data_reserva`) VALUES('".$release."', '".$categoria."', '".$id_utilizador."', '".$data_reserva."')");

tinha de meter ``

Edited by joaocasta

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.