mod-edit

slecht geformatteerde code hersteld.

ik zit met een probleem maar vindt het een beetje moeilijk uit te leggen.
Als ik iets selecteer (code onderaan), dan zet hij dat niet vast in $_POST['game'] enz.

<?php
  $sql_game = "SELECT game FROM projects_game";
  $sql_xgame = "SELECT xgame FROM projects_xgame";
  $sql_type = "SELECT type FROM projects_type";
  
  $res_game = mysql_query($sql_game) or die(mysql_error());
  $res_xgame = mysql_query($sql_xgame) or die(mysql_error());
  $res_type = mysql_query($sql_type) or die(mysql_error());
  
  while ($row_game = mysql_fetch_assoc($res_game)) {
      if ($row_game['game'] != null) {
          $aGames[] = $row_game['game'];
      }
  }
  while ($row_xgame = mysql_fetch_assoc($res_xgame)) {
      if ($row_xgame['xgame'] != null) {
          $aXGame[] = $row_xgame['xgame'];
      }
  }
  while ($row_type = mysql_fetch_assoc($res_type)) {
      if ($row_type['type'] != null) {
          $aType[] = $row_type['type'];
      }
  }
  
  echo "<select name=\"game\" class='textbox'>";
  foreach ($aGames as $gKey => $gValue) {
      echo "<option value='" . $gKey . "'";
      echo ">" . $gValue . "</option>";
  }
  echo '</select>';
  
  echo "<select name=\"xgame\" class='textbox'>";
  foreach ($aXGame as $gKey => $gValue) {
      echo "<option value='" . $gKey . "'";
      echo ">" . $gValue . "</option>";
  }
  echo '</select>';
  
  echo "<select name=\"type\" class='textbox'>";
  foreach ($aType as $gKey => $gValue) {
      echo "<option value='" . $gKey . "'";
      echo ">" . $gValue . "</option>";
  }
  echo '</select>';
?> 
Ik zie dan ook nergens een <form> tag staan met een method="post".
ja die staat er boven, maar dat leek me niet nodig dacht ik:
<?
echo "<form method=\"post\" action=\" " .$_SERVER['PHP_SELF']. "\">";
?>



Waarom die spatie bij action en waarom niet tussen enkele quotes zodat je niet hoeft te escapen?
<?
echo '<form method="post" action="' . $_SERVER['PHP_SELF'] . '">';
?>
<? if ($row_game['game'] != null) { ?>
Waarom staat deze vergelijking niet in de query? Dat haal je geen overbodige data op en het scheelt een stukje php-code.
<? $sql_game = "SELECT game FROM projects_game WHERE game NOT NULL"; ?>
@SanThe && @Frank:
ik heb het verbeterd nu :)
iemand dit het antwoord weet?
Hoe ziet je code er nu uit?
(netjes geformatteerd graag)
Het probleem weet ik niet.. wat ik wel weet is dat de code volgens mij veeeeeeel korter kan!

<?php
$sql_game = "SELECT game FROM projects_game";
$sql_xgame = "SELECT xgame FROM projects_xgame";
$sql_type = "SELECT type FROM projects_type";

$res_game = mysql_query($sql_game) or die(mysql_error());
$res_xgame = mysql_query($sql_xgame) or die(mysql_error());
$res_type = mysql_query($sql_type) or die(mysql_error());

echo "<select name=\"game\" class='textbox'>";
while ($row_game = mysql_fetch_assoc($res_game)) {
echo "<option value=\"".$row_game['game']."\">".$row_game['game']."</option>";
}
echo '</select>';

echo "<select name=\"xgame\" class='textbox'>";
while ($row_xgame = mysql_fetch_assoc($res_xgame)) {
echo "<option value=\"".$row_xgame['xgame']."\">".$row_xgame['xgame']."</option>";
}
echo '</select>';

echo "<select name=\"type\" class='textbox'>";
while ($row_type = mysql_fetch_assoc($res_type)) {
echo "<option value=\"".$row_type['type']."\">".$row_type['type']."</option>";
}
echo '</select>';
?>
@niek:
je hebt onbedoeld het probleem opgelost, ik had dat ongeveer eerst ook maar een vriend zei dat wat ik had beter was maarja.

bedankt allemaal voor het meedenken/helpen :D
<?
echo '</select>';

echo "<select name=\"type\" class='textbox'>";
?>
Waarom gebruik je de ene keer enkele quotes bij een echo en de andere keer dubbele quotes? Het meest vreemde is nog dat wanneer enkele quotes het leven een stuk eenvoudiger maken, jij dubbele quotes gaat gebruiken zodat je alle dubbele quotes (en die zijn VERPLICHT!) in de html-output kunt gaan escapen... Hoezo vragen om problemen?
<?
echo '</select>';

echo '<select name="type" class="textbox">';
?>
Dit is toch een stuk slimmer? Gebruik in PHP dus altijd (!) enkele quotes.

De enige uitzondering die ik hier op maak (en die bevestigt de regel), zijn queries. In een query staan strings tussen enkele quotes, het is dus wel zo slim om de query zelf tussen dubbele quotes te zetten. Dat doe jij ook al, dat kun je dus zo houden.

Reageren