lijst met datum's

Status
Niet open voor verdere reacties.

octron

Gebruiker
Lid geworden
4 mrt 2008
Berichten
65
oke ik heb een vraagje

ik wil een lijst met datum's b.v:
Code:
<select>
  <option>1 januari</option>
 <option>2 januari</option>
 <option>3 januari</option>
 <option>4 januari</option>
 <option>5 januari</option>
 </select>

op het moment dat er 1 datum is geselecteerd moet hij deze datum verzenden naar een database.
nu is dat geen probleem nu wil ik alleen dat op het moment dat hij die waarde naar de database stuurd hij ook meteen die datum uit de <select> haalt zodat deze datum niet meer kan worden gebruikt.

wie weet hoe ik dit kan oplossen???

mvg, Michel
 
Voor je de lijst met datums verstuurd naar de pagina, eerst opvragen welke datums nog beschikbaar zijn, en die vervolgens uit de array met mogelijke opties halen?
 
oke hier kom ik niet helenmaal uit ik probeer het nu anders.

ik heb een simpele html file
Code:
<html>
<head>
</head>
<body>
<fieldset>
<legend>
reserveren
</legend>
<form action="controle.php" method="post">
voornaam: <input type="text" name="voornaam1" />
achternaam: <input type="text" name="achternaam1" />
maand <input type="text" name="maand1" />
dag <input type="text" name="dag1" />
dagdeel <input type="text" name="dagdeel1" />




<input type="submit" />
</form>
</fieldset>
</body>
</html>
en de php code met deze code wil ik controleren of de datum nog niet gereserveert is.

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

mysql_select_db("boot", $con);

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



  while($row = mysql_fetch_array($result))  {
    if ($row == '$_POST[voornaam1]','$_POST[achternaam1]','$_POST[maand1]','$_POST[dag1]','$_POST[dagdeel1]'){
    echo"deze datum is al geboekt.";
}
    else {
    echo"hij is nog beschikbaar";
}
}
?>

nu krijg ik een foutmelding op lijn 21 dat is de regel:
PHP:
if($row== .......

dit komt waarschijnlijk omdat hij niet weet welke kolom hij met welke kolom moet vergelijken.

hoe kan ik dit oplossen?

mvg, Michel
 
Je vergelijkt een array met serie comma seperated strings; dat geeft een syntax error want dat kan niet ;)

Je moet een (of meer) van de velden in de array vergelijken met velden uit de $_POST array (zonder de aanhalingstekens aan de buitenkant)

PHP:
if ( $row['maand'] == $_POST[maand1] && $row['dag'] == $_POST[dag1] ) { 
// zoiets is het dus :)
}
 
oke ik heb nu dit:
PHP:
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("boot", $con);

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



  while($row = mysql_fetch_array($result))  {
    if ($row['naam'] == $_POST[voornaam1] && $row['achternaam'] == $_POST[achternaam1] && $row['maand'] == $_POST[maand1] && $row['dag'] == $_POST[dag1]&& $row['dagdeel'] == $_POST[dagdeel1]){
    echo"deze datum is al geboekt.";
}
    else {
    echo"hij is geboekt";
}
}
?>

nu krijg ik weer een fout melding op lijn 20: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\controle.php on line 20.

wat kan de oorzaak hier van zijn?

mvg, Michel
 
Meestal een spelfout.

Controleer de naam van je tabellen en velden, etc.

Run de query eens in PHPmyAdmin, kijk wat die zegt :)
 
er zat inderdaat een spellings fout in.
als het goed is heb ik er nu een MySQL-foutafhandeling in gezet.
PHP:
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("boot", $con);

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

if($result === false){
    echo("Er ging iets fout met de query: ".mysql_error()." (".$sSQL.")");}
    else



  while($row = mysql_fetch_array($result))  {
    if ($row['naam'] == $_POST[voornaam1] && $row['achternaam'] == $_POST[achternaam1] && $row['maand'] == $_POST[maand1] && $row['dag'] == $_POST[dag1]&& $row['dagdeel'] == $_POST[dagdeel1]){
    echo"deze datum is al geboekt.";
}
    else {
    echo"hij is nog beschikbaar";
    
}
}
?>

nu krijg ik weer nieuwe foutmeldingen:

Notice: Use of undefined constant voornaam1 - assumed 'voornaam1' in C:\wamp\www\controle.php on line 25
hij is nog beschikbaar
Notice: Use of undefined constant voornaam1 - assumed 'voornaam1' in C:\wamp\www\controle.php on line 25
hij is nog beschikbaar
Notice: Use of undefined constant voornaam1 - assumed 'voornaam1' in C:\wamp\www\controle.php on line 25
hij is nog beschikbaar
Notice: Use of undefined constant voornaam1 - assumed 'voornaam1' in C:\wamp\www\controle.php on line 25
hij is nog beschikbaar
Notice: Use of undefined constant voornaam1 - assumed 'voornaam1' in C:\wamp\www\controle.php on line 25
hij is nog beschikbaar
 
Het systeem denkt dat je een constante voornaam1 gedefineerd hebt, maar dat heb je niet.

Wat je wil is een string met de waarde voornaam1; ofwel je moet om voornaam1 een paar aanhalingstekens zetten.

Constante:
PHP:
define ( ' voornaam1' , 'een waarde' );
voornaam1;

String:
PHP:
"voornaam1";
 
ik heb het nu anders aangepakt ik kijk nu met een sql queri of die record al bestaat.

PHP:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> 
<html>
<head>
       <title>Title here!</title>
</head>
<body>
<?php
//maakt verbinding met DB.

$con = mysql_connect("localhost","root","");
mysql_select_db("boot", $con);
if (!$con)
  {  echo"er kan geen verbinding worden gemaakt met de db";
}
//hier onder kijkt hij of die rij al bestaat
$strStatement = "SELECT count(*) aantalRecords FROM reservering Where dag = " .$_POST['dag1'] ." and maand = " .$_POST['maand1'] ." and dagdeel = " .$_POST['dagdeel1'] .";";
// hier print hij de queri af.
echo "<hr>" .$strStatement ."<hr>";

$result = mysql_query($strStatement);

if($result === false){
    echo("Er ging iets fout met de query: " .mysql_error()." (".$sSQL.")");
} else {
  while($row = mysql_fetch_array($result))
  {
     $aantalRecords = $row['aantalRecords'];
     echo 'gevonden: ' .$row['aantalRecords'] .'<hr>';
  }

mysql_select_db("boot", $con);

  }


echo 'aantal gevonden rijen: ' .$aantalRecords ."<hr>";
// als er al 1 zelfde rij bestaat ...
if ($aantalRecords > 0) {
    echo"<p><h2>deze datum is al geboekt.</h2></p>";
}
else
{
  mysql_select_db("boot", $con);$sql="INSERT INTO reservering (naam, achternaam, maand, dag, dagdeel)
  VALUES('$_POST[voornaam1]','$_POST[achternaam1]','$_POST[maand1]','$_POST[dag1]','$_POST[dagdeel1]')";

  if (!mysql_query($sql,$con))
    die('Error: ' . mysql_error());

  echo "reservering in gelukt !!!";
}



 mysql_close($con);
?>
<p>
<a href="http://localhost/dit.html">klik hier om terug te gaan.</a>
</p>
<p>
<a href="http://localhost/dat.php">klik hier om te kijken welke dagen al zijn geboekt.</a>
</p>



</body>
</html>

nu krijg ik deze fout melding.....

HTML:
SELECT count(*) aantalRecords FROM reservering Where dag = 5 and maand = augustus and dagdeel = ochtend;
Notice: Undefined variable: sSQL in C:\wamp\www\controle.php on line 21
Er ging iets fout met de query: Unknown column 'augustus' in 'where clause' ()
Notice: Undefined variable: aantalRecords in C:\wamp\www\controle.php on line 34
aantal gevonden rijen:
Notice: Undefined variable: aantalRecords in C:\wamp\www\controle.php on line 36
reservering in gelukt !!!

hij voegt de record wel toe maar hij gaat fout bij het kijken of er al zoon rij bestaat....

weet iemand hier een oplossing voor???

mvg, Michel
 
ik weet niet, maar moet dit
PHP:
$_POST[voornaam1]
niet dit zijn?
PHP:
$_POST['voornaam1']
(met single quotes dus)
[edit]of je doet zoals frats zei ^^"[/edit]

Ook je query werkt niet, want je *moet* quotes gebruiken.
PHP:
$strStatement = "SELECT count(*) aantalRecords FROM reservering Where dag = " .$_POST['dag1'] ." and maand = " .$_POST['maand1'] ." and dagdeel = " .$_POST['dagdeel1'] .";";
--->
PHP:
$strStatement = "SELECT count(*) aantalRecords FROM reservering Where dag = '" .$_POST['dag1'] ."' and maand = '" .$_POST['maand1'] ."' and dagdeel = '" .$_POST['dagdeel1'] ."';";



Overgens, als je zoiets doet:
PHP:
if ($row['naam'] == $_POST[voornaam1] && $row['achternaam'] == $_POST[achternaam1] && $row['maand'] == $_POST[maand1] && $row['dag'] == $_POST[dag1]&& $row['dagdeel'] == $_POST[dagdeel1]){
    echo"deze datum is al geboekt.";
(wat niet klopt, moeten single quotes staan?) dan krijg je dus het probleem dat als iemand dezelfde dag/dagdeel/maand neemt, maar een andere naam, het alsnog doorgaat. Weet niet of dat de bedoeling is?



Mischien helpt dit wat
:thumb:
 
Laatst bewerkt:
ik was idd de single quotes vergeten.
het werkt nu :D:thumb:
dit is de code:
PHP:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> 
<html>
<head>
       <title>Title here!</title>
</head>
<body>
<?php
$con = mysql_connect("localhost","root","");
mysql_select_db("boot", $con);
if (!$con)
  {  echo"er kan geen verbinding worden gemaakt met de db";
}

//$strStatement = "SELECT count(*) aantalRecords FROM reservering Where dag = " .$_POST['dag1'] ." and maand = " .$_POST['maand1'] ." and dagdeel = " .$_POST['dagdeel1'] .";";
$strStatement = "SELECT count(*) aantalRecords FROM reservering Where dag = '" .$_POST['dag1'] ."' and maand = '" .$_POST['maand1'] ."' and dagdeel = '" .$_POST['dagdeel1'] ."';";


echo "<hr>" .$strStatement ."<hr>";

$result = mysql_query($strStatement);

if($result === false){
    echo("Er ging iets fout met de query: " .mysql_error()." (".$sSQL.")");
} else {
  while($row = mysql_fetch_array($result))
  {
     $aantalRecords = $row['aantalRecords'];
     echo 'gevonden: ' .$row['aantalRecords'] .'<hr>';
  }

mysql_select_db("boot", $con);

  }


echo 'aantal gevonden rijen: ' .$aantalRecords ."<hr>";

if ($aantalRecords > 0) {
    echo"<p><h2>deze datum is al geboekt.</h2></p>";
}
else
{
  mysql_select_db("boot", $con);$sql="INSERT INTO reservering (naam, achternaam, maand, dag, dagdeel)
  VALUES('$_POST[voornaam1]','$_POST[achternaam1]','$_POST[maand1]','$_POST[dag1]','$_POST[dagdeel1]')";

  if (!mysql_query($sql,$con)){
    die('Error: ' . mysql_error());
}
  echo "reservering in gelukt !!!";
}



 mysql_close($con);
?>
<p>
<a href="http://localhost/dit.html">klik hier om terug te gaan.</a>
</p>
<p>
<a href="http://localhost/dat.php">klik hier om te kijken welke dagen al zijn geboekt.</a>
</p>



</body>
</html>
dit is de uitkomst
HTML:
SELECT count(*) aantalRecords FROM reservering Where dag = '7' and maand = '6' and dagdeel = 'ochtend';

gevonden: 0

aantal gevonden rijen: 0

reservering in gelukt !!!


klik hier om terug te gaan.

klik hier om te kijken welke dagen al zijn geboekt.

als ik nu nog een keer de zelfde gegevens invoer krijg ik:

HTML:
SELECT count(*) aantalRecords FROM reservering Where dag = '7' and maand = '6' and dagdeel = 'ochtend';

gevonden: 1

aantal gevonden rijen: 1

deze datum is al geboekt.

klik hier om terug te gaan.

klik hier om te kijken welke dagen al zijn geboekt.

bedankt voor de moeite iedereen :thumb:

groeten Michel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan