Jump to content
php.lv forumi

Update mysql


ziedinjsh

Recommended Posts

Sveiki!

Man ir maz kods kas updeito registracijas statusu Ieslegts/Izslegts

Lieta tada, ka uzspiezot uz pogu neievadas ieks mysql

 

<?php
include("../header.php");

if(isset($_POST['update_reg_status'])){
$reg_status = $_POST['reg_status'];

$status = ("UPDATE admin SET reg_status='$reg_status'");
$result = mysql_query($status);

if($result){
echo "Statuds mainits!";
}else{
echo "Kads errors";
}

}

echo "<form method='post' action='".$_SERVER['PHP_SELF']."'>";
echo "<select name='reg_status'>";
	echo "<option value='on' >Ieslegts</option>";
	echo "<option value='off'>Izslegs</option>";
		echo "<input type='submit' name='update_reg_status' value='Mainit satussu'>";
echo "</form>";

?>

 

Kas tur nav pareizi?

 

Paldies jau ieprieks?

Edited by ziedinjsh
Link to comment
Share on other sites

Pirmkārt, es nesaprotu, tu es šeit diezgan ilgi un joprojām spēj uzrakstīt kodu, kur $_POST mainīgie pa tiešo tiek bāzti kvērijā?

Otrkārt, kur ir mysql_error()?

Treškārt, vai esi vismaz izlasījis manuālī, ko atgriež mysql_query? (pačukstēšu priekšā - viņš NEatgriež to, vai UPDATE kvērijs ir kaut ko vispār mainījis, priekš tā ir cita mysql_ funkcija)

Link to comment
Share on other sites

Sāksim ar to, ka almighty ziedinjsh ir atgriezies pēc neilga pārtraukuma. Vētrainus applausus lūdzu.

Kā jau briedis pieminēja par mainīgo bāšanu.

$mainigais = mysql_real_escape_string($_POST['nameofmy']); //Šite mēs eskeipojam stringu. ( security of SQL inj ).

Normāli tu to formu pat vispār tur vari nebāzt tais n`tajos echo, bet kā cilvēks lietot HTML pēc PHP daļas līdz ar TO izņemt vispār no php koda ārā to HTML`u.

Turpinot iesākto, piekasīšos pat pie drukas kļūdām -> Stabili var just, ka tu uzdrukā, 5 sekundes ieblenz error vai ja tāds nav un nestrādā kā pienākas, štikts uz forumu prom. Kad tu domā iemācīsies kaut ko ?

Šitais ir pareizs.

echo 'Statuds mainīts';

Bet gan STATUSS.

echo 'Statuss mainīts';

 

Piedavājams variants vēl ir

$variable = "THIS IS MY QUERY";
$dovariable = mysql_query($variable) or die('Query error - '. mysql_error());

 

Tādā gadījumā izmetīs visticamāk error par kaut ko.

Pārliecinies vai datubāzes lauki sakrīt utml. nianses.

 

Vēl - Tu nodefinē mainīgo result, un vaicā tagad:

Ja ir mainīgais result, tad viss okey, citādi - kļūda.

 

Kur loģika? Tu iedod mainīgo, protams, ka izpildīsies tev viņš, ja tā arī vaicāsi.

Piedomā ko raksti.

Briedis arī pieminēja TO,

(pačukstēšu priekšā - viņš NEatgriež to, vai UPDATE kvērijs ir kaut ko vispār mainījis, priekš tā ir cita mysql_ funkcija)

 

btw, kapēc tu "Paldies jau iepriekš" lieto kā jautājuma teikumu?

Edited by Kemito
Link to comment
Share on other sites

Paldies jau iepriekš jautājumu formā sanāca netīšām.

 

Tātad.. vairāk vai mazāk izlaboju un pārbaudiju ceļus un tml, bet neiet vienalga!

<?php
include("../fcs/dbase.php");

if(isset($_POST['update_reg_statuss'])){
$reg_statuss = mysql_real_escape_string($_POST['reg_statuss']);

$statuss = ("UPDATE admin SET reg_statuss='$reg_statuss'");
$info = mysql_query($statuss) or die('Query error - '. mysql_error());

}

echo "<form method='post' action='".$_SERVER['PHP_SELF']."'>";
echo "<select name='reg_statuss'>";
	echo "<option value='on'>Ieslēgts</option>";
	echo "<option value='off'>Izslēgts</option>";
		echo "<input type='submit' name='update_reg_statuss' value='Mainīt satussu'>";
echo "</form>";
?>		

Link to comment
Share on other sites

Problēma ir tur, ka Tu šeit...

 

if( isSet( $_POST['foo'] ) ) {

 

...saki apmēram: "Ja eksistē tāds, tad daram tā". Tāds neeksistē, tāpēc tas netiek darīts, protams.

 

Un pēc tam...

 

$bar = $_POST['bar'];

 

Tāds eksistē, bet tas neizpildās, kā jau minēju.

Link to comment
Share on other sites

Viņš nolasītu visu kā vajag, ja Viņš tiktu pāri if konstrukcijai.

 

Tu pārbaudi vai pastāv mainīgais, ka nepastāv. Nekad. Viņš nepastāv, jo nosaukums ir nepareizs. Visticamāk, jo pats esi pārrakstījies.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...