Guest

badanka

By: a guest on Jul 16th, 2009  |  syntax: PHP  |  size: 4.19 KB  |  hits: 78  |  expires: Never
download  |  raw  |  embed  |  report abuse
This paste has a previous version, view the difference. Copied
  1. <?php
  2. include 'header.php';
  3. echo '<center>';
  4. if(isset($_GET['id'])){
  5. $lid = safe($_GET['id']);
  6. $result = mysql_query("SELECT * FROM lan WHERE lid='$lid'");
  7.  
  8. /*
  9.  Jag antar det kommer bara en rad ur ovanstående query? I vilket fall som helst så skriver du ju över
  10.  värdena i dina variabler varje varv, så bara den sista blir i kraft.
  11.  
  12.  Om query returnerade flere rader så har du ingen sorteringsordning satt, så de kommer då i godtycklig
  13.  ordning som kan variera mellan olika körningar...
  14.  
  15.  Så jag ändrade (tillbaks?) till en if-sats
  16. */
  17.  
  18. if ($row = mysql_fetch_array($result))
  19.   {
  20. $rader = $row['rader'];
  21. $langd = $row['langd'];
  22. $bredd = $row['bredd'];
  23. $namn = $row['namn'];
  24. $nr = $row['nr'];
  25.   }
  26.   echo '<br /><img src="images/scen1.jpg">';
  27. $j=1;
  28. echo '<table border="0"><tr>';
  29. while($j<=$rader)
  30.   {
  31.   $j++;
  32.   echo '<td>';
  33.   $i = 1;
  34. while($i<=$langd)
  35.   {
  36. /*
  37.  * Har du olika tabeller för de olika LANarna? Jag tycker det ser ut som om du hämtade data från en tabell som är namngiven i datan i en annan tabell?
  38.  * Så gör man inte. Det blir nog tillbaks till ritbordet och omstrukturering av tabellstrukturen då. Istället för en tabell per LAN kan du lägga in
  39.  * en kolumn som t.ex. har värdet av lanid.
  40.  *
  41.  * Sen skall du skriva databasqyeryn med en JOIN, så som drew påpekade.
  42.  *
  43.  * Jag förstår mig inte heller riktigt på ett hurdant bokningssystem du försöker göra. Du verkar ha någon sorts struktur var det är utmärkt om en plats
  44.  * är ledig eller upptagen? Men du har inget tidsbegrepp, behöver du inte det? T.ex. mellan vilka tidpunkter den är bokad? Skulle jag designa det där
  45.  * så skulle jag på något sätt i databasen beskriva hur LAN:en ser ut. Sedan skulle jag ha en skild struktur (en tabell) för bokningar, bokningen pekar
  46.  * sedan på en plats i en LAN. Finns det inte en bokning så är platsen ledig, dvs de lediga platserna finns inte alls i datbasen utan logiken i din kod
  47.  * vet att om platsen inte är bokad så är den ledig... Sen behöver du antagligen en struktur för under vilka tider man kan boka LAN-platser i de olika LANarna...
  48.  *
  49.  * Bokningssystem hör nog inte till de enklaste sakerna att implementera... Du kunde kanske fundera på att öva upp dig med något lite enklare först?
  50. */
  51.   $laninfo1 = mysql_query("SELECT * from $namn$nr WHERE rad=$j AND langd=$i AND bredd='1'") or die(mysql_error());
  52.   while($row1 = mysql_fetch_array($laninfo1))
  53.   {
  54.   $status1 = $row1['status'];
  55.   if($status1 == 0)
  56.         {
  57.    echo '<img src="images/ledig.jpg" alt="L" border="0" title="Ledig">';
  58.         }else{
  59.    echo '<img src="images/upptagen.jpg" alt="U" border="0" title="Upptagen"><br />';
  60.    }
  61.         }
  62.   $laninfo2 = mysql_query("SELECT * from $namn$nr WHERE rad=$j AND langd=$i AND bredd='2'") or die(mysql_error());;
  63.   while($row2 = mysql_fetch_array($laninfo2))
  64.   {
  65.   $status2 = $row2['status'];
  66. if($status2 == 0)
  67. {
  68.    echo '<img src="images/ledig.jpg" alt="L" border="0" title="Ledig"><br />';
  69.         }else{
  70.    echo '<img src="images/upptagen.jpg" alt="U" border="0" title="Upptagen"><br />';
  71.    }
  72.         }
  73.   $i++;
  74.   }
  75.  echo '</td>';
  76.   }
  77.   echo '</tr></table>';
  78. if(isset($_GET['rad']) && ($_GET['langd']) && ($_GET['plats'])){
  79.  
  80. ?>
  81. <form action ="&spara" method="post">
  82. Boka platsen? <input type="radio" name="boka" value="1">Ja <input type="radio" name="boka" value="0">
  83. <?php
  84. }
  85. }
  86. else
  87. {
  88. $result = mysql_query("SELECT * FROM lan");
  89. echo '<table border="0">';
  90. echo '<th>Namn på LAN</th>';
  91. echo '<th>Plats</th>';
  92. while($row = mysql_fetch_array($result))
  93.   {
  94.   if($row['active'] == 1)
  95.   {
  96.   echo '<tr><td><a href="lanplatser.php?id=' . $row['lid'] . '">' . $row['namn'] . ' [' . $row['nr'] . ']</a></td><td>' . $row['plats'] . '</td></tr>';
  97. }
  98.   }
  99.   echo "</table>";
  100.   }
  101.   echo '</center>';
  102. include 'footer.php';
  103. /*
  104. För att göra livet lättare för dig själv så rekommenderar jag numeriska (integer) fält där det bara är möjligt. Betydligt enklare att kolla inputten och enklare att skriva queryna också.
  105.  
  106. Och skall man vara riktigt noga (vilket man ju alltid bör vara :-) ) så borde du quota outputten också som en användare kommer åt att mata in. Annars kan de göra en HTML/JS-inject som gör att nån kan kapa en användares bläddrare eller bara trasa sönder sidan visuellt för användaren...
  107. */
  108. ?>