Wat doe ik fout?

Status
Niet open voor verdere reacties.

gast0663

Gebruiker
Lid geworden
13 okt 2011
Berichten
452
Hallo,

Ik ben redelijk nieuw met PHP, en heb dit script, maar er komt telkens een error: syntax error, unexpected T_STRING in ...

Code:

PHP:
<?php


while($bFetch = mysql_fetch_assoc($bQuery)){

if($bFetch['readed'] == 0){

$vriend = '<?php echo stripslashes($bFetch['title']); ?>';

}

$nQuery = mysql_query("SELECT * FROM users WHERE id = '" . mysql_real_escape_string($bFetch['author']) . "'") or die(mysql_error());
$nFetch = mysql_fetch_assoc($nQuery);

?>

<tr>
<?php echo $vriend; ?>
</tr>

<?php
}

echo '</table>';

}

}


}


?>
 
Hallo,

Ik ben redelijk nieuw met PHP, en heb dit script, maar er komt telkens een error: syntax error, unexpected T_STRING in ...
Is dat de volledige foutmelding? Zonder ingesprongen code is het wat lastig te zien of al je haakjes goed staan maar in regel 8 heb je dit staan
PHP:
$vriend = '<?php echo stripslashes($bFetch['title']); ?>';
Die PHP tags horen daar niet, je zit immers al tussen de PHP tags van regels 1 en 15. Je probeert dus binnen een PHP gebied een nieuw PHP gebied te openen, dat gaat niet. Bovendien zitten zowel het echo commando als wat je wilt schrijven tussen de ' (en in dit geval moet wat je wilt schrijven ook niet tussen 'staan omdat het geen string is maar een functie). Het resultaat van een echo aan een variabele toewijzen gaat trouwens ook niet werken Het moet dus gewoon dit zijn.
PHP:
$vriend = stripslashes($bFetch['title']);

NB: Ik zie dat je de mysql interface gebruikt om verbinding met de database te maken, dat is niet handig want die wordt in toekomstige versies van PHP niet meer ondersteund. Je kunt beter mysqli of PDO gebruiken.

PS: In plaats van <?php echo $vriend; ?> kun je ook schrijven <?= $vriend; ?> Da's iets korter.
 
Laatst bewerkt:
Bedankt voor je reactie, en het is deels opgelost.
Alleen ik heb de code aangepast, dit is hem nu:

PHP:
<?php


while($bFetch = mysql_fetch_assoc($bQuery)){

if($bFetch['readed'] == 1){

$vriend = stripslashes($bFetch['title']);

}else{

$vriend = 

}

$nQuery = mysql_query("SELECT * FROM users WHERE id = '" . mysql_real_escape_string($bFetch['author']) . "'") or die(mysql_error());
$nFetch = mysql_fetch_assoc($nQuery);

?>

<tr>
<?php echo $vriend; ?>
</tr>

<?php
}

echo '</table>';

}

}


}


?>

readed is nu 1, als dat zo is, komt $vriend = stripslashes($bFetch['title']);

maar bij die else, daar staat $vriend =
dat else moet eigenlijk zijn daat er niks komt te staan, dus eigenlijk gewoon $vriend = niets
hoe kan ik dat er neer zetten?
 
Oke, en nu heb ik nog een fout, ik heb een link, als je daarop klikt kun je een vriendenverzoek sturen,
de link is: www.mijnwebsite.nl/index.php?p=vrienden&make&response_title=<?php echo $uFetch['username']; ?>

<?php echo $uFetch['username']; ?> = gebruikersnaam van jezelf.

maar als je op die link klikt, komt er iets geks te staan:

Knipsel.JPG
 
Hoe ziet die URL er op de site uit dan? (dus nadat hij door PHP verwerkt is).
 
Laat maar, ik heb het al opgelost. Maar de problemen blijven komen, ik heb nu deze code:

PHP:
<?php


while($bFetch = mysql_fetch_assoc($bQuery)){

if($bFetch['readed'] == 1){

$vriend = stripslashes($nFetch['username']);

}else{

$vriend = ""; 

}

$nQuery = mysql_query("SELECT * FROM users WHERE id = '" . mysql_real_escape_string($bFetch['author']) . "'") or die(mysql_error());
$nFetch = mysql_fetch_assoc($nQuery);

?>

<tr>
<td style="border: 1px solid #CCCCCC; padding: 6px; background-color: <?php echo $vriend; ?>;"><a href="?p=vrienden&read=<?php echo $bFetch['id']; ?>"><?php echo stripslashes($nFetch['username']); ?></a></td>
<td style="border: 1px solid #CCCCCC; padding: 6px; background-color: <?php echo $color; ?>; text-align: center;"><a href="#" onclick="var c = confirm('Weet je zeker dat je <?php echo stripslashes($nFetch['username']); ?> als vriend wilt verwijderen?'); if(c == true) { location.href='?p=mijnvrienden&delete=<?php echo $bFetch['id']; ?>'; }"><img src="img/delete.gif" /></a></td>
</tr>

<?php
}

echo '</table>';

}

}


}


?>

Er staat, dat als readed 1 is, dat dan je naam zichtbaar wordt, maar hij is al zichtbaar als readed 0 is.
 
Hm, ik zie niet direct waarom dat fout zou gaan. Je kunt proberen === te gebruiken in plaats van == (en natuurlijk controleren of $bFetch['readed'] de juiste waarde heeft).

Overigens is het Engelse woorde voor "gelezen" "read", niet "readed".
 
Nee, dat heeft geholpen, daat geeft ie aan dat vriend een undefined variable is ofzo.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan