in heb paar extra invoers gemaakt in html
deze heb ik op willikeurige plek gedumpt

			<td><label for="leeftijd"><label>Leeftijd:</label></td><td><input type="text" name="leeftijd" value="<? if(isset($getuser[0]['leeftijd'])){echo $getuser[0]['leeftijd'];}?>" /></td>
		</tr>
        <tr>
			<td><label for="geslacht"><label>Geslacht:</label></td><td><input type="text" name="geslacht" value="<? if(isset($getuser[0]['geslacht'])){echo $getuser[0]['geslacht'];}?>" /></td>
		</tr>
        <tr>
			<td><label for="relatie"><label>Relatie:</label></td><td><input type="text" name="relatie" value="<? if(isset($getuser[0]['relatie'])){echo $getuser[0]['relatie'];}?>" /></td>
		</tr>
        <tr>
        <td><label for="hobby"><label>Hobby's :</label></td><td><textarea rows="5" name="hobbys" value="<? if(isset($getuser[0]['hobbys'])){echo $getuser[0]['hobbys'];}?>" /></textarea></td>
        </tr>
        <tr>
		<td><label for="facebook"><label>Facebook naam:</label></td><td><input type="text" name="facebook" value="<? if(isset($getuser[0]['facebook'])){echo $getuser[0]['facebook'];}?>" /></td>
		</tr>
                <tr>
        <td><label for="leg"><label>Omschrijf je zelf :</label></td><td><textarea rows="5" name="leg" value="<? if(isset($getuser[0]['leg'])){echo $getuser[0]['leg'];}?>" /></textarea></td>
        </tr>


als aan vullende informatsie wil toevoegen en druk op verzenden zegt hij suc6 te zijn geweest
nu stond de invoer wanner ik dat wil doen en wil gaan updaten dan blijft de pagina hangen

 
//----------Function for editing user's and admin's profile by admin----------
function editUser($id,$email,$firstname,$lastname,$dialing_code,$phone,$city,$country)
{
		    $id = secureInput($id);
		 $email = secureInput($email);
	$first_name = secureInput($firstname);
	 $last_name = secureInput($lastname);
  $dialing_code = secureInput($dialing_code);
		 $phone = secureInput($phone);
		  $city = secureInput($city);
	   $country = secureInput($country);
	      		
	 	   
	if (!empty($email)){
			$sql = "UPDATE users SET email = '" . $email . "', first_name = '" . $first_name . "', last_name = '" . $last_name . "', dialing_code = '" . $dialing_code . "', phone = '" . $phone . "', city = '" . $city . "', country = '" . $country . "' WHERE id = '" . $id . "'";		
			$res = mysql_query($sql) or die(mysql_error());
				if(!$res) return 4;
				return 99;
			} 
	if(empty($email)){
			$sql = "UPDATE users SET first_name = '" . $first_name . "', last_name = '" . $last_name . "', dialing_code = '" . $dialing_code . "', phone = '" . $phone . "', city = '" . $city . "', country = '" . $country . "' WHERE id = '" . $id . "'";		
			$res = mysql_query($sql) or die(mysql_error());
				if(!$res) return 4;
				return 99;
			}
}



//----------Function for getting user records----------
function getUserRecords($id)
{
	global $getuser;
	$sql = "SELECT * FROM users WHERE id = '". $id . "'"; 
	$res = mysql_query($sql);

	$c=0;
	while ($a_row = mysql_fetch_array($res)) {
		$getuser[$c]["id"] = $a_row["id"];
		$getuser[$c]["username"] = $a_row["username"];
		$getuser[$c]["first_name"] = $a_row["first_name"];
		$getuser[$c]["last_name"] = $a_row["last_name"];
		$getuser[$c]["email"] = $a_row["email"];
		$getuser[$c]["dialing_code"] = $a_row["dialing_code"];
		$getuser[$c]["phone"] = $a_row["phone"];
		$getuser[$c]["city"] = $a_row["city"];
		$getuser[$c]["country"] = $a_row["country"];
		$getuser[$c]["thumb_path"] = $a_row["thumb_path"];
		$getuser[$c]["img_path"] = $a_row["img_path"];
		$getuser[$c]["active"] = $a_row["active"];
		$getuser[$c]["reg_date"] = $a_row["reg_date"];
		$getuser[$c]["last_active"] = $a_row["last_active"];
		
	$c++;
    }
	return $getuser;
}
blijft hij hangen hetmaakt nou niet uit of dat eentje leeftijd toevoeg of alles in een keer
niks wordt op genomen in de data bas wat moet ik precies doen
De code ziet er al best aardig uit qua indeling en opdeling, deze is redelijk okay gestructureerd alleen denk ik dat dit op sommige plaatsen een beetje is doorgeschoten :).

Als ik je wat tips mag geven:
- pas als je een variabele gaat aanpassen en echt anders gaat gebruiken is het handig om hier een nieuwe variabele voor te introduceren;
- pas als je code meerdere keren gebruikt heeft het een zekere meerwaarde om deze in een functie te stoppen

een voorbeeld (vanuit edit_profile.php - we volgen het veld first_name):

de gebruikersgegevens worden opgehaald met getUserRecords($id), deze retourneert een meer-dimensionaal array, terwijl je altijd maar maximaal 1 resultaat hebt...

Deze code:
<?php
function getUserRecords($id)
{
    global $getuser;
    $sql = "SELECT * FROM users WHERE id = '". $id . "'";
    $res = mysql_query($sql);

    $c=0;
    while ($a_row = mysql_fetch_array($res)) {
        $getuser[$c]["id"] = $a_row["id"];
        $getuser[$c]["username"] = $a_row["username"];
        $getuser[$c]["first_name"] = $a_row["first_name"];
        $getuser[$c]["last_name"] = $a_row["last_name"];
        $getuser[$c]["email"] = $a_row["email"];
        $getuser[$c]["dialing_code"] = $a_row["dialing_code"];
        $getuser[$c]["phone"] = $a_row["phone"];
        $getuser[$c]["leeftijd"] = $a_row["leeftijd"];
        $getuser[$c]["city"] = $a_row["city"];
        $getuser[$c]["country"] = $a_row["country"];
        $getuser[$c]["thumb_path"] = $a_row["thumb_path"];
        $getuser[$c]["img_path"] = $a_row["img_path"];
        $getuser[$c]["active"] = $a_row["active"];
        $getuser[$c]["reg_date"] = $a_row["reg_date"];
        $getuser[$c]["last_active"] = $a_row["last_active"];
        
    $c++;
    }
    return $getuser;
}
?>

Zou je dus kunnen vervangen door (nog even afgezien van het feit dat je geen mysql_ functies meer zou moeten gebruiken):
<?php
function getUserRecords($id)
{
    $res = mysql_query("SELECT * FROM users WHERE id = '". $id . "'");
    if (mysql_num_rows($res) == 1) {
        return mysql_fetch_assoc($res);
    } else {
        // ik weet niet hoe ik dit hier verder moet afhandelen, maar het is in ieder geval niet goed
        return false;
    }
}
?>

EDIT: de naam is ook misleidend, je haalt altijd één user record op... En dan global $getuser, dit zou ik eruit gooien. Teveel verwarring.

vervolgens:
first_name in het formulier
--> submit -->
dit wordt gevoerd aan editUser()
de functieparameter heet $firstname, waar je secureInput() op uitvoert, en dan heet ie weer $first_name

Waarom gooi je deze functie er niet gewoon tussenuit en zet je in de query secureInput($_POST['first_name'])? Zo voorkom je het kopieren van tig variabelen met allerlei mogelijke fouten van dien?

Je oorspronkelijke probleem:
waneer ik de leefttijd 36 in vul komt er in de database te staan bij leefttijd city en bij city komt countery te zijn wat is hier het probleem

werd waarschijnlijk veroorzaakt doordat je ergens een volgorde van variabelen tijdens al deze kopieeracties hebt verwisseld.

Deze code kan (vele malen) korter worden gemaakt, wat de leesbaarheid enorm zal verbeteren.

Reageren