07. april 2010 - 13:32
Der er
11 kommentarer og 1 løsning
flere if
jeg har følgene check if($level2==4 && $man2==1 && $tirs2==1 && $ons2==1 && $tors2==1 && $fre2==1) { mysql_query("UPDATE `bord` SET `level`=5 WHERE `bord_id`='$tableid'")or die(mysql_error()); } echo"$level2<br>$man2<br>$tirs2<br>$ons2<br>$tors2<br>$fre2<br>$tableid"; men selv om den viser alle har de if tal updater den ikke, hvad gør jeg forkert, er lidt rusten i php/mysql
Annonceindlæg fra Thales
07. april 2010 - 13:38
#1
$table_id er sat?
07. april 2010 - 13:45
#2
jeps echo siger 4 1 1 1 1 1 461
07. april 2010 - 13:48
#3
<ole> Det ser ud til at være et andet sted, du laver fejl /mvh </bole>
07. april 2010 - 13:52
#4
her er hele hele koden $db = mysql_connect("localhost", "xx", "xx") or die (mysql_error()); mysql_select_db("gaming4life", $db) or die (mysql_error()); $tableid = mysql_real_escape_string($_POST['tableid']); $result1=mysql_query("SELECT * FROM `bord` WHERE `bord_id`='$tableid'"); while($row=mysql_fetch_row($result1)) { $bord_id=$row[0]; $level2=$row[1]; $man2=$row[2]; $tirs2=$row[3]; $ons2=$row[4]; $tors2=$row[5]; $fre2=$row[6]; if($level2==4 && $man2==1 && $tirs2==1 && $ons2==1 && $tors2==1 && $fre2==1) { mysql_query("UPDATE `bord` SET `level`=5 WHERE `bord_id`='$tableid'")or die(mysql_error()); } echo"$level2<br>$man2<br>$tirs2<br>$ons2<br>$tors2<br>$fre2<br>$tableid";
07. april 2010 - 13:58
#5
Det kan ikke være hele koden. Prøv at udskrive noget inde i din if, og se om den overhoved taget kommer ind i den.
07. april 2010 - 14:07
#6
if data bliver jo korrekt echo i echo"$level2<br>$man2<br>$tirs2<br>$ons2<br>$tors2<br>$fre2<br>$tableid"; men den updater ikke, jeg bruger en post for til når alle hverdage er optaget så poster fullbooket.php?tableid=461 og den viser i echo som tidliger posted fra db 4 1 1 1 1 1 fra min posted $tableid 461
07. april 2010 - 14:20
#7
der sker jo ikke noget ved at smide en echo ind i if-sætningen, for at se om den overhovedet kommer derind - hvilket noget tyder på den ikke gør...
07. april 2010 - 14:27
#8
} $tableid = mysql_real_escape_string($_POST['tableid']); $result1=mysql_query("SELECT * FROM `bord` WHERE `bord_id`='$tableid'"); while($row=mysql_fetch_row($result1)) { $bord_id=$row[0]; $level2=$row[1]; $man2=$row[2]; $tirs2=$row[3]; $ons2=$row[4]; $tors2=$row[5]; $fre2=$row[6]; if($level2=='4'&&$man2=='1'&&$tirs2=='1'&&$ons2=='1'&&$tors2=='1'&&$fre2=='1') { mysql_query("UPDATE `bord` SET `level`=5 WHERE `bord_id`='$tableid'")or die(mysql_error()); echo"$level2<br>$man2<br>$tirs2<br>$ons2<br>$tors2<br>$fre2<br>$tableid"; } og den viser også 4 1 1 1 1 1 461
07. april 2010 - 14:54
#9
fandt løsninge ved at snuppe koder fra phpmyadmin mysql_query("UPDATE `gaming4life`.`bord` SET `level` = '5' WHERE `bord`.`bord_id` ='$bord_id'")or die(mysql_error());
07. april 2010 - 15:12
#10
er det ikke lidt en voldsom løsning hvis du bare skal tjekke om man-fre er 1 og derefter opdatere level? du kan jo bare køre en update where man=1, tirs=1... og id='$tableid' :)
07. april 2010 - 15:26
#11
- og så er der i øvrigt absolut ingen, der nogensinde har sagt, at phpMyAdmin består af god kode (det vil jeg i hvertfald ikke håbe, nogen har gjort!) ;o) Noget kunne tyde på, du kun skal opdatere én række. I så fald bør du bruge LIMIT 1 . Hvis det f.eks. er den første række, der skal opdateres, leder MySQL ganske unødigt resten af tabellen igennem efter evt. andre rækker, som skal opdateres. Det undgår du, hvis du bruger LIMIT
07. april 2010 - 23:52
#12
Noget kunne da også tyde på at dine felter i tabel er sat forkert på. Kan det passe at alle felterne er varchar, men kun indeholder tal?
Vi tilbyder markedets bedste kurser inden for webudvikling