Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Checkboxien läpikäynti

Sivun loppuun

jarspa [16.01.2006 17:44:43]

#

Olen tehnyt tämmöisen sivun joka tulostaa SQL-kannasta tietoa ja sitten tietoja sais muokattua. Ongelmana on vaan se ettei tämä koodi toimi. Poistamista olen yrittänyt mutta ei tee mitään.

<?php
if($kohde=="tuote")
		{


			echo "<font color=red><b>Tuotteen $tuotteet varastopaikat</b></font>";

			echo "<table border=1>";
			echo "<tr><td>Varastopaikka</td><td>Uusi paikka</td><td></td><td>Poista</td></tr>";

			for ($i = 0; $i < mysql_num_rows($haku); $i++)
			{

				$color = ($color == '#C0C0C0') ? '#ffffff' : '#C0C0C0';
				$paikka = mysql_result($haku, $i, "varastopaikka");
				echo "<tr bgcolor=$color>
						<td align=center>$paikka</td>
						<td align=center><input type=\"text\" name=\"uusipaikka\" size=10></td>
						<td align=center><input name=\"siirto\" type=\"submit\" id=\"siirto\" value=\"Siirrä\"></td>
						<td align=center><input type=\"checkbox\" name=\"poisto[]\" value=\"$paikka\"></td>
						</tr>";
			}
			echo "</table><br>";
			echo "<input name=\"poista\" type=\"submit\" id=\"poista\" value=\"Poista valitut paikat\">";

			print "<input name=\"tuote\" type=\"hidden\" value=\"$tuotteet\">";



		}
		if(isset($_POST['poista']))
			{

				$poisto = $_POST['poisto'];

				foreach($poisto as $poistaminen)
				{
				mysql_query("DELETE FROM varastopaikat WHERE varastopaikka='$poistaminen'");
				echo "Tuote $tuote poistettu varastopaikalta $poistaminen";
				}

			}
?>

Niko [16.01.2006 18:33:19]

#

sulla ei oo formia ollenkaan?

Lebe80 [16.01.2006 18:51:45]

#

string-muotoinen varastopaikka?

varastopaikka='$poistaminen' ?!

Eikös sql:ssä numereettiset solut ilmoiteta ilman hipsuja ja lainausmerkkejä?

sooda [16.01.2006 19:21:15]

#

jarspa kirjoitti:

$poisto = $_POST['poisto'];
foreach($poisto as $poistaminen)

Ö? Foreach haluaa taulukon, toi ei ole taulukko vaan merkkijono. Siinä ongelma.

Lebe80 [16.01.2006 20:34:40]

#

sooda kirjoitti:

Ö? Foreach haluaa taulukon, toi ei ole taulukko vaan merkkijono. Siinä ongelma.

...
<td align=center><input type=\"checkbox\" name=\"poisto[]\" value=\"$paikka\"></td>
...

Eikös se juuri olekin taulukko. :) huom:

name="poisto[]"

jarspa [17.01.2006 17:24:15]

#

Lebe80 kirjoitti:

string-muotoinen varastopaikka?

varastopaikka='$poistaminen' ?!

Eikös sql:ssä numereettiset solut ilmoiteta ilman hipsuja ja lainausmerkkejä?

paikka on VARCHAR koska varastopaikka on esim. muotoa A01A, en vaan ymmärrä mikä hel... mättää. Formit on kunnossa ja sun muuta en vaan halunnut esitellä koko koodia olisi tullut aika pitkä... :)

ajv [17.01.2006 17:30:58]

#

No miten olisi debuggaaminen? SQL-lauseen tulostaminen ja/tai mahdollisten tietokannan virheiden tulostaminen?

sooda [17.01.2006 17:40:10]

#

Ai juu, en näköjään lukenut koodia tarpeeks tarkkaan. Mutta tommoinen arvojen tarkistusdebugaus on tosiaan kätevää, kannattaa tulostella (php:ssä mielestäni paras debugtyyli) ajv:n mainitsemien lisäksi nuo mysql_resultit ja kaikki muukin mistä ei voi olla varma, varmuuden vuoksi.

jarspa [17.01.2006 18:38:22]

#

Joo selvis ongelma... Toi "mysql_error()" on sit hyvä juttu :)

kayttaja-2791 [18.01.2006 12:49:03]

#

sooda kirjoitti:

Ai juu, en näköjään lukenut koodia tarpeeks tarkkaan. Mutta tommoinen arvojen tarkistusdebugaus on tosiaan kätevää, kannattaa tulostella (php:ssä mielestäni paras debugtyyli) ajv:n mainitsemien lisäksi nuo mysql_resultit ja kaikki muukin mistä ei voi olla varma, varmuuden vuoksi.

Toinen hyvä tapa debugata on tehdä se trigger_error()-funktiolla, ja julkaisun jälkeen vain poistaa virheiden raportointi pois käytöstä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta