if if if else else else statement PHP

Status
Niet open voor verdere reacties.

Kligham

Gebruiker
Lid geworden
7 jan 2009
Berichten
389
Hallo,

Ik vroeg mij af waarom dit niet werkt? Is het niet mogelijk dat je een if if (){ if(){}} statement maakt? Hieronder staat mijn statement. Wat is er verkeerd aan, en als een if if if else else else statement niet werkt, welke alternatieven zijn er dan?

PHP:
function valid_registratie($userid, $actcode){
	
	//Connectie maken met de database
	$connection = db_connect_fetch();
	
	//De juiste database selecteren
	mysql_select_db(Database, $connection); 
	
	//Zoeken naar de juiste gegevens in de database
	$result = mysql_query("SELECT * FROM temp_gebruiker WHERE gebruikersid = $userid and activatiecode = $actcode");
	
	if ($result){
				
		//Data uit de database halen
		$fetch = mysql_fetch_array($result);
		
		//Data klaarzetten om in de database te kunnen stockeren
		$gebruikersnaam = $fetch['gebruikersnaam'];
		$wachtwoord = $fetch['wachtwoord'];
		$emailadres = $fetch['emailadres'];
		$voornaam = $fetch['voornaam'];
		$achternaam = $fetch['achternaam'];
		$straat = $fetch['straat'];
		$huisnummer = $fetch['huisnummer'];
		$bus = $fetch['bus'];
		$gemeente = $fetch['gemeente'];
		$postcode = $fetch['postcode'];
		$land = $fetch['land'];
		$telefoon_gsm_nummer = $fetch['telefoon_gsm_nummer'];
		
		//De gegevens naar de table gebruiker sturen en opslaan
		$insert = mysql_query("INSERT INTO gebruiker(gebruikersnaam, wachtwoord, emailadres, voornaam, achternaam, straat, huisnummer, bus, gemeente, postcode, land, telefoon_gsm_nummer) VALUES ('$gebruikersnaam', '$wachtwoord', '$emailadres', '$voornaam', '$achternaam', '$straat', '$huisnummer', '$bus', '$gemeente', '$postcode', '$land', '$telefoon_gsm_nummer')");
	
		if ($insert){
			
			//De tijdelijke gegevens mogen gewist worden na een succesvolle registratie
			$delete = mysql_query("DELETE * FROM temp_gebruiker");
			
			if ($delete){
			
				echo 'Uw registratie is succesvol voltooid';
			
			} else {
				
				echo 'De gegevens konden niet verwijderd worden.'

		} else {
				
			echo 'Er is iets fout gelopen bij het opslaan in de database';
	
	}else {
		
		echo 'userid en/of actcode kon niet gevonden worden in de database';
		
	}
}

Misschien even nog een korte toelichting:

Er moet iets gezocht worden in de database als dit lukt, moet hij de gegevens gaan opslaan in de database. Als dit niet lukt moet hij melden dat userid en actcode niet kunnen gevonden worden. Als het opslaan in de database lukte dan moet hij de gegevens in de ene tabel deleten. Als hij niet kan deleten moet hij zeggen dat de gegevens niet konden verwijderd worden. En als hij de gegevens niet kno opslaan, moest hij vermelden dat er iets verkeerd gelopen is bij het opslaan.
 
Ziet er goed uit hoor, en je kunt IFs gewoon zonder problemen nesten. Welke fout krijg je?
 
Ziet er goed uit hoor, en je kunt IFs gewoon zonder problemen nesten. Welke fout krijg je?

Ik krijg een 3-tal fout vermeldingen in mijn IDE, zoals te zien op bijgevoegde foto:

1) syntax error
2) syntax error
3) syntax error: unexpected end of file
 

Bijlagen

  • if if if else else else.jpg
    if if if else else else.jpg
    88,6 KB · Weergaven: 42
Altijd je brackets controleren, er mist er namelijk een bij die ELSE van
PHP:
echo 'Er is iets fout gelopen bij het opslaan in de database';
 
Daar staan ze toch alle twee? of zie ik mis

PHP:
} else{
				
			echo 'Er is iets fout gelopen bij het opslaan in de database';
	
	} else{

1 { om de else te openen en de } om hem te sluiten
 
Laatst bewerkt:
Wel goed controleren, er missen er namelijk 2!
Na 'De gegevens konden niet verwijderd worden'
en Na 'Er is iets fout gelopen bij het opslaan in de database'
 
Dan klopt je tabbing niet + dat je niet 2x een else kunt gebruiken.
 
Dan klopt je tabbing niet + dat je niet 2x een else kunt gebruiken.

Dus ik kan zoiezo maar 1 else maken voor die 3 if?

Wel goed controleren, er missen er namelijk 2!
Na 'De gegevens konden niet verwijderd worden'
en Na 'Er is iets fout gelopen bij het opslaan in de database'

Ik snap het niet, kun je ze misschien eens aanbrengen op deze in mijn eerste post? Of bedoel je dat ik er nog 2 mis van mijn eerste 2 if statements?
 
Laatst bewerkt:
Simpele structuur:
PHP:
if($a) {
  echo 'A';
} else {
  if($b) {
    echo 'B';
  } else {
    echo 'C';
  }
}
Tel de brackets :)
 
Ik heb dit aangepast aan hoe je het hebt uitgelegd, en ook de brackets geteld :D (ze kloppen normaal gezien nu). Nu krijg ik toch nog een foutmelding van mijn IDE:

syntax error: unexpected end of file

PHP:
//Validate feitelijke registratie
function valid_registratie($userid, $actcode){
	
	//Connectie maken met de database
	$connection = db_connect_fetch();
	
	//De juiste database selecteren
	mysql_select_db(Database, $connection); 
	
	//Zoeken naar de juiste gegevens in de database
	$result = mysql_query("SELECT * FROM temp_gebruiker WHERE gebruikersid = $userid and activatiecode = $actcode");
	
	if (!$result){
		
		echo 'userid en/of actcode kon niet gevonden worden in de database';
		
	} else {
		
		//Data uit de database halen
		$fetch = mysql_fetch_array($result);
		
		//Data klaarzetten om in de database te kunnen stockeren
		$gebruikersnaam = $fetch['gebruikersnaam'];
		$wachtwoord = $fetch['wachtwoord'];
		$emailadres = $fetch['emailadres'];
		$voornaam = $fetch['voornaam'];
		$achternaam = $fetch['achternaam'];
		$straat = $fetch['straat'];
		$huisnummer = $fetch['huisnummer'];
		$bus = $fetch['bus'];
		$gemeente = $fetch['gemeente'];
		$postcode = $fetch['postcode'];
		$land = $fetch['land'];
		$telefoon_gsm_nummer = $fetch['telefoon_gsm_nummer'];
		
		//De gegevens naar de table gebruiker sturen en opslaan
		$insert = mysql_query("INSERT INTO gebruiker(gebruikersnaam, wachtwoord, emailadres, voornaam, achternaam, straat, huisnummer, bus, gemeente, postcode, land, telefoon_gsm_nummer) VALUES ('$gebruikersnaam', '$wachtwoord', '$emailadres', '$voornaam', '$achternaam', '$straat', '$huisnummer', '$bus', '$gemeente', '$postcode', '$land', '$telefoon_gsm_nummer')");
		
		if (!$insert){
			
			echo 'Er is iets fout gelopen bij het opslaan in de database';
			
		} else {
			
			//De tijdelijke gegevens mogen gewist worden na een succesvolle registratie
			$delete = mysql_query("DELETE FROM temp_gebruiker WHERE activatiecode = 'actcode'");
			
			if (!$delete){
				
				echo 'De gegevens konden niet verwijderd worden.';
				
			} else {
				
				echo 'Uw registratie is succesvol voltooid';
				
			}	
		}
	}
}

Er zit nog een foto bij waar de fout gegeven wordt.
 

Bijlagen

  • if if if else else else.jpg
    if if if else else else.jpg
    84,2 KB · Weergaven: 33
Unexpected end… is nog steeds een bracket-probleem.

Gezien de 303 regels denk ik dat je je andere functies ook maar eens na moet gaan lopen.
 
Unexpected end… is nog steeds een bracket-probleem.

Gezien de 303 regels denk ik dat je je andere functies ook maar eens na moet gaan lopen.

Ik heb ze eens allemaal nagekeken en ook eens geteld, en ik kom zowel voor { 58 hits uit en voor } ook 58.

Is er nog een andere reden waarom je een unexpected end of file kunt krijgen?
 
Ik heb al de tekst eens in een andere php file gestoken, en daar gaf hij die foutmelding niet. Heb die andere dan gedelete en deze gerenamed, en nu heb ik geen probleem meer.

Bedankt voor de hulp!:thumb:
 
DELETE * FROM temp_gebruiker

Die query is fout. DELETE * bestaat niet. Daarnaast is een tabel temp_gebruiker sowieso vrij curieus.
 
unexspected $end of file...

dit betekent dat je een if of else bent vergeten af te sluiten.

maar waarom een if if if else else else statement?
waarom niet:

if, elseif, elseif else?
 
DELETE * FROM temp_gebruiker

Die query is fout. DELETE * bestaat niet. Daarnaast is een tabel temp_gebruiker sowieso vrij curieus.

Dat weet ik dat dat fout is :)

PHP:
$delete = mysql_query("DELETE FROM temp_gebruiker WHERE activatiecode = 'actcode'");

Wat bedoel je precies met temp_gebruiker is curieus?
 
Laatst bewerkt:
unexspected $end of file...

dit betekent dat je een if of else bent vergeten af te sluiten.

maar waarom een if if if else else else statement?
waarom niet:

if, elseif, elseif else?

Het probleem is al opgelost. En om te antwoorden op je vraag, het volgende mag pas uitgevoerd worden als het aan de vorige delen voldaan heeft.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan