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
https://forums.phpfreaks.com/topic/229783-odd-echoed-query/
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
https://forums.phpfreaks.com/topic/229783-odd-echoed-query/#findComment-1183614
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
https://forums.phpfreaks.com/topic/229783-odd-echoed-query/#findComment-1183618
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
https://forums.phpfreaks.com/topic/229783-odd-echoed-query/#findComment-1183619
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
https://forums.phpfreaks.com/topic/229783-odd-echoed-query/#findComment-1183620
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.