PHP - If Statement Syntax Is Wrong
Hi,
I am no PHP expert. I can poke about, do a little cut and paste. Dreamweaver is telling me I have a syntax issue with my if statement. I have tried a few things without success. Dreamweaver says the error is on the else line, that may not be true. please show me what I am doing wrong. Thanks Mark Code: [Select] <div class="entry-content tec-event-entry"> <?php /** Get the "cft_tinymce_1" custom field */ $block_1 = get_custom_field('cft_tinymce_1'); if( $block_1 ) { ?> <?php echo $block_1; ?> <?php } ?> <?php else { ?> <?php the_content(); ?> <?php } ?> </div> <!-- End tec-event-entry --> Similar TutorialsI don't know why but I echoed this and then got the echoed query and put it in the sql of my mysql database and it says that the syntax isn't right but I looked and I don't see a problem but I am probably over looking something. $query = "INSERT INTO `characters` (charactername, shortname, status_id, style_id, division_id, alignment_id, sortorder, creator_id, datecreated, enabled) VALUES (".$charactername.",".$shortname.",".$status.",".$style.",".$division.",".$alignment.",".$sortorder.", 1, NOW(), 0)"; Code: [Select] $height = trim(htmlentities(mysqli_real_escape_string($db,$_POST['height'],ENT_QUOTES))); Here's the error message I'm getting: Warning: mysqli_real_escape_string() expects exactly 2 parameters, 3 given I just added in the htmlentities and ENT_QUOTES to the line but not sure how to format it. Any ideas? Hi I have a username and password page and when the person enters the details they go to another page or if they are admin they have to go to a diffrent one. Here is my code: if($this->is_admin()){ ?> <ul id="menu"> <li><a href="/admins/home">Home</a></li> <li> <a href="/galleries/galleries">Galleries</a> </li> <li> <a href="/admin/users/logout">Log Out</a> </li> </ul> <?php } ?> <?php echo $this->page('view');?> What's wrong with this statement? Code: [Select] $mansql="SELECT mov.*, avg.* FROM sc_movies mov LEFT JOIN sc_movies_rate_avg avg ON mov.mov_id=avg.scm_mem_id WHERE (SELECT id_mov FROM sc_movies_comments)=mov.mov_id ORDER BY (SELECT add_date FROM sc_movies_comments) DESC"; hi phpfreaks I have been looking at this code below and it has got me . Can someone check it for me. The issue is it installs some tables into an application and then adds some data. The but the I keep getting the error below Code: [Select] Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. The code last line of code is the one it is complaining about Code: [Select] $db->exec("INSERT INTO Customer (Username,Passwd,Email,Phone) VALUES ('".$this->usernameadmin."', '".$this->passwordadmin."', '".$this->emailadmin."', '".$this->phoneadmin."')"); attached is complete method this is driving me nuts any help would be appreciated. I've made a blackmark system, and upon login I want to process all the blackmarks (limit of 10) for the user attempting to login. Like such: $expires[1] - is basically the time() value whenever the information was inserted into the database $expires[0] - the amount of seconds the blackmark shall last //let's retrieve and run an update on their blackmarks $query_blackmarks = mysql_query("SELECT expires FROM blackmarks WHERE username = '$username' AND status = 0 LIMIT 10"); $x = 0; //process their blackmarks while($row = mysql_fetch_assoc($query_blackmarks)) { //split the expired row ($row['expires'] == 0) ? $expires = 0 : $expires = explode(':', $row['expires']); if(time()-$expires[1] < $expires[0] || $expires == 0) { $x++; } } For some reason, $x only equals one. But it shouldn't as there are 3 blackmarks for that user which haven't expired: Why isn't $x == 3? Hi all, As always thanks in advance. My php skills are still at a beginner level but I'm trying to get there! What I'm trying to do: Send data to the Mailchimp api (specifically email, name, birthday) What it currently does do: Sends and stores email and name What I cant get it to do: Send and store the birthday from $birthday string. First I load the form data: //Load form data $day = $_POST['Day']; $month = $_POST['Month']; $year = $_POST['Year']; //Create Birthday in mm/dd format for mailchimp $birthday = $month."/".$day;() Then I pass it later on to mailchimp: $mergeVars = array('FNAME' => $parsedName['first'], 'LNAME' => $parsedName['last'], 'BDAY'=>"$birthday");() EVERYTHING in my script works perfectly except for the birthday bit. So I tried this instead which DOES work, but doesn't use the form data defeating the whole point! $mergeVars = array('FNAME' => $parsedName['first'], 'LNAME' => $parsedName['last'], 'BDAY'=>"04/04");() I thought it may be the $birthday string wasn't in the mm/dd setup. But after echo'ing it everything is fine. I get the feeling I'm doing something stupid here. And I think it's syntax based around the 'BDAY'=>"$birthday"() part. Any help will be greatly appreciated! This is driving me INSANE. Thanks, So, let me explain: Code: [Select] <?php class MySqlDatabase { private $connection; function __construct() { $this->database_connect(); } public function database_connect() { $this->connection = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME); if (!$this->connection) { die("Database connection failed: " . mysqli_error()); } } public function database_query($sql) { $query = mysqli_real_escape_string($sql, $this->connection); $result = mysqli_query($query, $this->connection); if(!$result) { die("Database query failed: " . mysqli_error()); } return $result; } public function database_close() { if (isset($this->connection)) { mysqli_close($this->connection); unset($this->connection); } } } ?> Take a look at the database_query() method. When I insert this into it from my index.php to test if it works: Code: [Select] <?php $database = new MySqlDatabase(); $sql = "INSERT INTO `website`.`users` (`id`, `username`, `first_name`, `last_name`, `password`, `email`, `secret_question`, `secret_answer`, `create_time`) VALUES (NULL, 'joe', 'joe', 'doe', 'password123', 'myemail@email.com', 'Who am I?', 'myself', '2010-10-16 13:37:59');"; $database->database_query($sql); ?>Obviously the date and the password needs some working on (hashing and entering current time), but I get this error: Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, string given in ...includes\classes.php on line 32 Warning: mysqli_query() expects parameter 1 to be mysqli, null given in ..includes\classes.php on line 33 Warning: mysqli_error() expects exactly 1 parameter, 0 given in ..includes\classes.php on line 35 Database query failed: I I'm giving it a mysql syntax, but it doesn't work, also I get no error message. Simple one, I think. I just want to know if this is how I would do this code. on page one a javascript toggles between two divs depending on the option made in a select box. Div one is a radio button valued "dc resident" and the other is a text box where they enter some text. Then on page two, whichever one is entered becomes the variable to insert to my database. Code: [Select] if (isset($_POST['how1']){$how1 = mysql_escape_string($_POST['how1']);} elseif (isset($_POST['resident']){$how1 = mysql_escape_string($_POST['resident']); }; I think it's right, but something in my gut tells me its not, or that maybe there's a simpler way to do this? I just had a curiosity that was bugging me and I'm unsure of how to google for the answer, so I thought I'd put it up to the test here. I learned that when writing if statements in php the syntax is as follows: if(condition){ //Execute Code... }else{ //Execute Other Code... } However, I also see it written like so: if(condition) { //Execute Code... } else { //Execute Other Code... } I thought that the later style was used for Javascript and the earlier for php. While they both work, I was wondering, which is more correct? Thanks Everybody! E It's been awhile since I coded php so I'm trying to check what I'm doing wrong... session_start(); $_SESSION['utilisateur']="Invite"; if($_SESSION['utilisateur'] == "Invite") { $dlogin = file_get_contents('display_login.html'); } else { $dlogin = file_get_contents('display_usermenu.php'); } echo($dlogin); Notice: Undefined variable: _SESSION in C:\Program Files (x86)\EasyPHP-5.3.4.0\www\index.php on line 21 line 21 being if($_SESSION ... hmmm, im confused i dont see any syntax errors, do you? I have a Select statement that relies on two session variables to complete the statement. One variable, $egroup, supplies a column name. I cannot make the SELECT work. It works fine if I substitute the real name of one of the columns such as "egroup1", or "egroup6", but that's what the variable $egroup is for. Can anyone tell me where I'm wrong? I guess the answer is in the syntax, but I'm not very good at this and I've been on it for too long. Any help gratefully taken. Code: [Select] <?php $query1 = mysql_query("SELECT * FROM topics WHERE managerId='".$managerId."' AND "$egroup"= 1 ORDER BY title ASC"); ?> I can't figure out how to write the a href part to make it blend in with the existing img syntax. How do I alter this? Code: [Select] <?php echo '<a href=\"{$r['feedusername']\"><img src="', getUserAvatar($r['feedusername']), "\" class=\"avatar mediumsmall newspadding f_left mrl\" title=\"${r['associate_name']}\" alt=\"${r['associate_name']}\" /></a>"; ?> What's the correct syntax for having a variable in a select statement? Here's an example of what I'm trying to do (after I'm already connected to the database). Code: [Select] $username = "thomas"; $query = mysql_query( "SELECT * from users WHERE username = $thomas" ); if( mysql_num_rows( $query ) > 0 ) { bla bla... It works if I don't put the WHERE part in, but I get an error if I use it, so I'm assuming I have the wrong syntax for using a variable in the select statement. Hi, Im just having some trouble with this...maybe a fresh pair of eyes can help? Im getting a "Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of elements in type definition string doesn't match number of bind variables" error when I try run this: Code: [Select] $date = date("Y-m-d"); $header = $_POST['header']; $summary = $_POST['summary']; $content = $_POST['content']; $query = "INSERT INTO articles (pubdate, title, summary, content) VALUES(?, ?, ?, ?)"; $stmt = $mysqli->stmt_init(); if ($stmt->prepare($query)){ $stmt->bind_param('i,s,s,s', $date, $header, $summary, $content); $stmt->execute(); $stmt->close(); } else { echo "ERROR: SQL statement failure!"; echo "<a href='addnews.php'> -> OK</a>"; } $mysqli->close(); It looks fine to me, just can't see whats wrong lol! (Please ignore HTML formatting) Code: [Select] if (is_null($RESULT['PBS_ACCOUNT_ID'])) { echo "<font size=2 color=#000000 face=arial> <</font>"; echo "<font size=2 color=#000000 face=arial>PBS_ACCOUNT_ID</font>"; echo "<font size=2 color=#000000 face=arial>></font>"; echo "<font size=2 color=#000000 face=arial>HELLO</font>"; echo "<font size=2 color=#000000 face=arial><</font>"; echo "<font size=2 color=#000000 face=arial>/PBS_ACCOUNT_ID</font>"; echo "<font size=2 color=#000000 face=arial>></font>"; } else { echo "<font size=2 color=#000000 face=arial> <</font>"; echo "<font size=2 color=#000000 face=arial>PBS_ACCOUNT_ID</font>"; echo "<font size=2 color=#000000 face=arial>></font>"; echo "<B>"; echo $RESULT['PBS_ACCOUNT_ID']; echo "</B>"; echo "<font size=2 color=#000000 face=arial><</font>"; echo "<font size=2 color=#000000 face=arial>/PBS_ACCOUNT_ID</font>"; echo "<font size=2 color=#000000 face=arial>></font>"; echo "<BR>"; } If the PBS_ACCOUNT_ID field is empty, it just shows blank. Why doesn't it echo "HELLO?" Or should I be using "IS_EMPTY?" I have been looking at this code most of the morning and do not have a clue what is wrong with the code. I am hoping its not a stupid mistake, can someone please help me out? thank you
<title>Inputing Travel Detials</title> <header> <h1 align="center"> Adding Travel Detials </h1> <body> <p> <center><img src="cyberwarfareimage1.png" alt="Squadron logo" style="width:200px;height:200px" style="middle"></center> <table border="1"> <tr> <td><a href="index.php"> Home Page </a></td> <td><a href="administratorhomepage.html">Administrator Home Page </a></td> <td><a href="viewhomepage.html">View Home Page </a></td> <td><a href="Inputhomepage.html">Input Home Page </a></td> <td><a href="traveldetials.html">Enter More Travel Detials </a></td> </table> </p> <?php include "connection.php"; $Applicant_ID = $_POST["Applicant_ID"]; $Method_Of_Travel = $_POST["Method_Of_Travel"]; $Cost = $_POST["Cost"]; $ETA = $_POST["ETA"]; $Main_Gate_Advised = $_POST["Main_Gate_Advised"]; $query = ("UPDATE `int_board_applicant` SET `Method_Of_Travel`=`$Method_Of_Travel', `Cost`=`$Cost', `ETA`='$ETA', `Main_Gate_Advised`='$Main_Gate_Advised' WHERE `Applicant_ID`='$Applicant_ID'"); $result = mysqli_query($dbhandle, $query) or die(mysqli_error($dbhandle)); if($result){ echo "Success!"; } else{ echo "Error."; } // successfully insert data into database, displays message "Successful". if($query){ echo "Successful"; } else { echo "Data not Submitted"; } //closing the connection mysqli_close($dbhandle) ?> Ok this is puzzleing. I am geting "Could not delete data: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1". but its is deleting the entry that needs to be removed. The "1" is the entry. Just not sure what is causing the error. I do have another delete php but I have put that on the back burning for the time being.
<?php $con = mysqli_connect("localhost","user","password","part_inventory"); // Check connection if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } else { $result = mysqli_query($con, "SELECT * FROM amp20 "); $amp20ptid = $_POST['amp20ptid']; // escape variables for security $amp20ptid = mysqli_real_escape_string($con, $_POST['amp20ptid']); mysqli_query($con, "DELETE FROM amp20 WHERE amp20ptid = '$amp20ptid'"); if (!mysqli_query($con, $amp20ptid)); { die('Could not delete data: ' . mysqli_error($con)); } echo "Part has been deleted to the database!!!\n"; mysqli_close($con); } ?> Hi guys
I have this code below and all works fine when submitting this online application apart from when someone types either ' # & into one of the comment fields in which it throws up the error. Have tried various fixes from across the internet but no joy. Can anyone offer suggestions?
<?php
$con = mysql_connect("localhost:3306","root","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('sfapp', $con);
$sql="INSERT INTO 'sfapp' ('surname_add','forename_add','dob_add','hometele_add','mobiletele_add','homeadd_add','siblings_add','schoolname_add','headname_add','schooladd_add','schooltele_add','schoolem_add','alevel_add','personstate_add','nameprovided_add','pe_add','se_add','PredGrade_Art','PredGrade_AScience','PredGrade_BusStudies','PredGrade_Electronics','PredGrade_EnglishLang','PredGrade_EnglishLit','PredGrade_French','PredGrade_German','PredGrade_Geog','PredGrade_Graphics','PredGrade_History','PredGrade_Maths','PredGrade_SepScience','PredGrade_ProductDesign','PredGrade_Spanish','PredGrade_Other','Gender_Male','Gender_Female','Sub_EnglishLit','Sub_Maths','Sub_FurtherMaths','Sub_Biology','Sub_Chemistry','Sub_Physics','Sub_French','Sub_German','Sub_Spanish','Sub_Geography','Sub_History','Sub_RE','Sub_FineArt','Sub_Business','Sub_Computing','Sub_GlobPersp','Sub_DramaAndTheatre','Sub_PE','Sub_Dance','Sub_Politics','Sub_Psychology','Sub_Sociology','readprospect_chk','Sib_Yes','Sib_No','Current_Student_Yes','Current_Student_No','I_Understand_chk','Current_Education_chk','Local_Care_chk','Staff_Cwhls_chk','Sub_Film')
VALUES
('$_POST[surname_add]','$_POST[forename_add]','$_POST[dob_add]','$_POST[hometele_add]','$_POST[mobiletele_add]','$_POST[homeadd_add]','$_POST[siblings_add]','$_POST[schoolname_add]','$_POST[headname_add]','$_POST[schooladd_add]','$_POST[schooltele_add]','$_POST[schoolem_add]','$_POST[alevel_add]','$_POST[personstate_add]','$_POST[nameprovided_add]','$_POST[pe_add]','$_POST[se_add]','$_POST[PredGrade_Art]','$_POST[PredGrade_AScience]','$_POST[PredGrade_BusStudies]','$_POST[PredGrade_Electronics]','$_POST[PredGrade_EnglishLang]','$_POST[PredGrade_EnglishLit]','$_POST[PredGrade_French]','$_POST[PredGrade_German]','$_POST[PredGrade_Geog]','$_POST[PredGrade_Graphics]','$_POST[PredGrade_History]','$_POST[PredGrade_Maths]','$_POST[PredGrade_SepScience]','$_POST[PredGrade_ProductDesign]','$_POST[PredGrade_Spanish]','$_POST[PredGrade_Other]','$_POST[Gender_Male]','$_POST[Gender_Female]','$_POST[Sub_EnglishLit]','$_POST[Sub_Maths]','$_POST[Sub_FurtherMaths]','$_POST[Sub_Biology]','$_POST[Sub_Chemistry]','$_POST[Sub_Physics]','$_POST[Sub_French]','$_POST[Sub_German]','$_POST[Sub_Spanish]','$_POST[Sub_Geography]','$_POST[Sub_History]','$_POST[Sub_RE]','$_POST[Sub_FineArt]','$_POST[Sub_Business]','$_POST[Sub_Computing]','$_POST[Sub_GlobPersp]','$_POST[Sub_DramaAndTheatre]','$_POST[Sub_PE]','$_POST[Sub_Dance]','$_POST[Sub_Politics]','$_POST[Sub_Psychology]','$_POST[Sub_Sociology]','$_POST[readprospect_chk]','$_POST[Sib_Yes]','$_POST[Sib_No]','$_POST[Current_Student_Yes]','$_POST[Current_Student_No]','$_POST[I_Understand_chk]','$_POST[Current_Education_chk]','$_POST[Local_Care_chk]','$_POST[Staff_Cwhls_chk]','$_POST[Sub_Film]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
?>
<?php
//if "email" variable is filled out, send email
if (isset($_REQUEST['pe_add'])) {
//Email information
$admin_email = $_REQUEST['pe_add'];
$forename = $_REQUEST['forename_add'];
$email = "autoreply@testing.com";
$subject = "Application";
$desc =
"Dear $forename
Thank you for submitting your online application, we will be in touch shortly.
"
;
//send email
mail($admin_email, "$subject", "$desc", "From:" . $email);
//Email response
echo "Thank you for contacting us!";
}
//if "email" variable is not filled out, display the form
else {
?>
If you are seeing this, you need to go back and fill out the Personal Email section!
<?php
}
header("location:complete.php");
mysql_close($con)
?>
Thanks in advance.
Hi.. I create mysql syntax for query testing before i input to my php code here is my mysql code: Code: [Select] set @t = 0; set @rqty=31968; SELECT LOT_CODE as code, DATE_ENTRY, CASE WHEN @t+OUTPUT_QTY > @rqty THEN @rqty -@t ELSE OUTPUT_QTY END as qty, @t := @t + d.OUTPUT_QTY as cumulative FROM dipping d WHERE SUBSTR(LOT_CODE, 9,4) = 'P28' AND (@t < @rqty); and i attach the sample output of the above query. Now that query test is work i will input that code to my php codes. $sql = "SELECT SKUCode, Materials, Comp, Qty FROM bom WHERE SKUCode = '$SKUCode'"; $res = mysql_query($sql, $con); ($row = mysql_fetch_assoc($res)); $Materials = $row['Materials']; $Qty = $row['Qty']; $Comp = $row['Comp']; //P28 //-----Compute Req Qty and Save to table---// $ReqQty = $Qty * $POReq; // 31968 $sql = "UPDATE bom SET ReqQty = '$ReqQty' WHERE SKUCode = '$SKUCode' AND Materials = '$Materials'"; $resReqQty = mysql_query($sql, $con); $t = 0; $sql = "SELECT LOT_CODE as code, DATE_ENTRY, CASE WHEN $t+OUTPUT_QTY > $ReqQty THEN $ReqQty -$t ELSE OUTPUT_QTY END as qty, $t := $t + d.OUTPUT_QTY as cumulative FROM dipping d WHERE SUBSTR(LOT_CODE, 9,4) = '$Comp' AND ($t < $ReqQty)"; when I echo the query: I got this: SELECT LOT_CODE as code, DATE_ENTRY, CASE WHEN 0+OUTPUT_QTY > 31968 THEN 31968 -0 ELSE OUTPUT_QTY END as qty, 0 := 0 + d.OUTPUT_QTY as cumulative FROM dipping d WHERE SUBSTR(LOT_CODE, 9,4) = 'P28' AND (0 < 31968) then I run it to the sql and I got an error: Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':= 0 + d.OUTPUT_QTY as cumulative FROM dipping d WHERE SUBSTR(LOT_CODE, 9,4) = '' at line 1 (0 ms taken) Any help is highly appreciated Thank you so much |