Jump to content

Odd echoed query


Xtremer360

Recommended Posts

I echoed the query once and it came up as UPDATE `fields` SET `enabled` = 'True' WHERE `ID` = ''good Not sure why.

 

<?php

// Include the database page
include ('../inc/dbconfig.php');

$styleID = $_GET['id'];
$query = "SELECT
    fields.ID,  
    fields.fullName,
    fields.enabled
FROM 
    fields
    INNER JOIN styles
        ON styles.ID = fields.styleID  
WHERE 
    styles.ID = '" . $styleID . "'";
$result = mysqli_query ( $dbc, $query ); // Run The Query

?>

<script>
$(document).ready(function() {
    $('div.message-error').hide();
    $('div.message-success').hide();
    $("#bioConfigForm").submit(function() {
        $('div.message-error').hide();
        var data = $(this).serialize() + "&submitBioFields=True";
        $.ajax({
            type: "POST",
            url: "processes/bioconfig.php",
            data: data,
            success: function() {
                $('div.message-error').hide();
                $("div.message-success").html("<h6>Operation successful</h6><p>Bio fields saved successfully.</p>");
                $("div.message-success").show().delay(10000).hide("slow", function() {
                    $('#content').load('mods/bioconfiguration.php');  
                });
            }
        });
        return false;    
    });                                                          		
});
</script>

<!-- Title -->
<div id="title" class="b2">
<h2>Bio Configuration</h2>
<!-- TitleActions -->
<div id="titleActions">
	<!-- ListSearch -->
	<div class="listSearch actionBlock">
		<div class="search">
			<label for="search">Recherche</label>
			<input type="text" name="search" id="search" class="text" />
		</div>
		<div class="submit">
			<button type="submit" id="search-button" class="button"><strong><img src="img/icons/search_48.png" alt="comments" class="icon "/></strong></button>
		</div>
	</div>
	<!-- /ListSearch -->
</div>
<!-- /TitleActions -->
</div>
<!-- Title -->
<!-- Inner Content -->
<div id="innerContent">
    <!-- Form -->
    <form action="#" id="bioConfigForm" >
         <fieldset>
    		<legend>Bio Config</legend>
         <?php 
            while ( $row = mysqli_fetch_array ( $result, MYSQL_ASSOC ) ) {
         ?>
            <div class="field">
                <label for="<?php '' . $row['ID'] . '' ?>"><?php echo '' . $row['fullName'] . ''?></label>
                <input type="radio" value="0" name="<?php echo $row['ID']; ?>" class="status" 
                  <?php if($row['enabled'] == 0)
                  echo ' checked="checked"';
                  ?>
                  />Enabled
                  <input type="radio" value="1" name="<?php echo $row['ID']; ?>" class="status"
                  <?php if($row['enabled'] == 1)
                  echo ' checked="checked"';
                  ?>
                  />Disabled
            </div>
    
        <?php
        }
        ?>
            <input type="submit" class="submit" name="submitBioFields" id="SubmitBioFields" title="Submit Bio Fields" value="Submit Bio Fields"/>
        </fieldset>
    </form>
    <!-- /Form -->
    

 

<?php

// Include the database page
require ('../inc/dbconfig.php');

if (isset($_POST['submitBioFields'])) {
    
    foreach($_POST as $bioFieldID => $value) {
        $query = "UPDATE `fields` SET `enabled` = '".$value."' WHERE `ID` = '".$biofieldID."'";  
    }
    
    mysqli_query($dbc,$query);
    $result = "good";
} else {
    $result = "bad";
}

//Output the result
echo $result;
        
?>

Link to comment
Share on other sites

So I have this now and its putting UPDATE `fields` SET `enabled` = 'True' WHERE `ID` = 'submitBioFields' good for the echoed query.

 

foreach($_POST as $bioFieldID => $value) {
        $query = "UPDATE `fields` SET `enabled` = '".$value."' WHERE `ID` = '".$bioFieldID."'";  
    }

Link to comment
Share on other sites

Well, if you look at your form, the data being posted will be something like this:

 

Array (
    '64' => '1',
    'submitBioFields' => 'Submit Bio Fields'
)

 

And then in your code you loop through the array, overwriting your $query each time. This means that the query will use "submitBioFields" as the ID. Personally, I would do this:

 

    foreach($_POST as $bioFieldID => $value) {
        if($bioFieldID != "submitBioFields") {
            $query = "UPDATE `fields` SET `enabled` = '".$value."' WHERE `ID` = '".$biofieldID."'";
            mysqli_query($dbc,$query);
        }
    }

This would update multiple IDs if necessary, running the query each iteration of the array.

Link to comment
Share on other sites

Close I can tell but something isn't right still because this:

 

if (isset($_POST['submitBioFields'])) {
    
   foreach($_POST as $bioFieldID => $value) {
        if($bioFieldID != "submitBioFields") {
            $query = "UPDATE `fields` SET `enabled` = '".$value."' WHERE `ID` = '".$biofieldID."'";
            mysqli_query($dbc,$query);
            echo $query;
            $result = "good";
        }
    }
    
} else {
    $result = "bad";
}

 

PRODUCES:

 

UPDATE `fields` SET `enabled` = '1' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '1' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '1' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''UPDATE `fields` SET `enabled` = '0' WHERE `ID` = ''good

Link to comment
Share on other sites

Oops, I didn't fix the capital error that I noticed earlier. Fixed code is:

 

if (isset($_POST['submitBioFields'])) {
    
   foreach($_POST as $bioFieldID => $value) {
        if($bioFieldID != "submitBioFields") {
            $query = "UPDATE `fields` SET `enabled` = '".$value."' WHERE `ID` = '".$bioFieldID."'";
            mysqli_query($dbc,$query);
            echo $query;
            $result = "good";
        }
    }
} else {
    $result = "bad";
}

Nobody is perfect :P

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.