You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' van) FROM `leden_berichten` WHERE id = '5'' at line 1
Ik heb tutorials gevolgd van hier op SiMa, en geprobeerd met en zonder accenten...
"En waarom zou je geen 'or die' mogen gebruiken?
'k zie niet in wat daar fout aan is?"
Zoek eens in de forums, ik heb al meerdere malen (tevergeefs, lijkt het) uitgelegd dat het niet goed is om or die te gebruiken.
@Webstab: Ook daarom ja (Sitemasters is hier helaas zelf een voorbeeld van ), maar niet alleen daarom. Zoekt en gij zult vinden!
Dat kan dan misschien zo wel zijn, maar als de foutieve query van groot belang is in een script, en je laat deze gewoon doorlopen naar de foutieve query kan dat grote gevolgen hebben.
Je krijgt dan een instelling van:
Ow maakt niet uit als er iets mis gaat.
Stel, je maakt een UPDATE-gebruikersprofielscript aan, maar de INSERT-query werkt niet goed. Dan heb je wel een boze gebruiker omdat zijn gegevens niet zijn gewijzigd terwijl hij helemaal niet doorhad dat er iets fout was gegaan, en dat alleen maar omdat je layout anders niet correct is.
Als dat je probleem is voer je je query pas uit naar de layout tags en het probleem is opgelost.
De 'or die' kan zeer belangrijk zijn:!:
En in meerdere post over meerdere topics hoor ik CelestialCelebi alleen maar horen zeggen "haal de 'or die' weg en het werkt". (Zie 1 van de voorgaande topics).
Sorry hoor, maar daar ligt het nooit aan als een script niet werkt.
Maargoed, misschien dat CelestialCelebi zelf een andere reden heeft om 'or die' niet te gebruiken...
Dat zou inderdaad gaan, maar dan zal nog de code erna worden uitgevoerd (waaronder het fetchen van die query, mysql_num_rows(), etc.), dus dat zou eigenlijk nog niet goed zijn. Of je zou een or die in error() moeten doen, maar dat is eigenlijk net zo fout.
Dat kan dan misschien zo wel zijn, maar als de foutieve query van groot belang is in een script, en je laat deze gewoon doorlopen naar de foutieve query kan dat grote gevolgen hebben.
> Dat is inderdaad ook zo. En hij loopt niet door naar de foutieve query.
Je krijgt dan een instelling van:
Ow maakt niet uit als er iets mis gaat.:!:
> Dat zeg ik niet en dat is ook helemaal niet mijn instelling.
Stel, je maakt een UPDATE-gebruikersprofielscript aan, maar de INSERT-query werkt niet goed. Dan heb je wel een boze gebruiker omdat zijn gegevens niet zijn gewijzigd terwijl hij helemaal niet doorhad dat er iets fout was gegaan, en dat alleen maar omdat je layout anders niet correct is.
> Een UPDATE, maar de INSERT werkt niet goed? Dan is je datamodel niet goed vrees ik....
Als dat je probleem is voer je je query pas uit naar de layout tags en het probleem is opgelost.
> Er is geen probleem als je het op mijn manier doet, want op mijn manier wordt de andere query pas uitgevoerd als de vorige is gelukt, anders niet. En ja, dat is anders dan or die.
De 'or die' kan zeer belangrijk zijn
> Ja, maar niet voor query's.
En in meerdere post over meerdere topics hoor ik CelestialCelebi alleen maar horen zeggen "haal de 'or die' weg en het werkt". (Zie 1 van de voorgaande topics).
> Dat klopt.
Sorry hoor, maar daar ligt het nooit aan als een script niet werkt.
> Ik heb niet gezegd dat het dan werkt (dat maak jij er van), ik zeg alleen dat het beter is om het niet te gebruiken (AKA: Je geeft Windows de opdracht een bestand te verwijderen, krijgt zo'n venstertje met "OK", verwijdert het bestand ondertussen via een andere weg en ziet een half uur later dat venstertje nog en denkt "Oja, die moest ik verwijderen", je klikt op OK en Windows kan het bestand niet meer vinden... OR DIE, BZZZZZZZ, PC gaat uit).
Maargoed, misschien dat CelestialCelebi zelf een andere reden heeft om 'or die' niet te gebruiken...
> Ik heb daar een reden voor ja.
maar iedere keer als je een bericht probeert op te roepen dat niet van jou is krijg je een vieze error.. Hoe kan ik die wegwerken?
//Edit: kan iemand me zeggen hoe dat met or echo werkt (ipv or die)
Misschien dat meneer Ranco hier wat van kan leren. Ik heb nu dus een voorbeeld gevonden waarbij de ene query afhankelijk is van de andere.
Eigenlijk zou dit beter met een subquery of JOIN werken, maar goed:
<?php
// stap 1, het ID valideren
if(!isset($_GET['origineel']))
{
// ga huilen, origineel bestaat niet (da's onorigineel)
}
else
{
$_GET['origineel'] = intval($_GET['origineel']);
$sSQLGetMessage = "SELECT id, van, bericht FROM leden_berichten WHERE id = " . $_GET['origineel'] . " AND naar = " . $_SESSION['gid'];
// stap 2, de query draaien om het bericht op te halen
if(!$rSQLGetMessage = mysql_query($sSQLGetMessage, $rDatabase)) // in $rDatabase zit het resultaat van mysql_connect()
{
// mislukt, foutmelding
echo 'Helaas.. De query om het bericht op te halen kon niet worden uitgevoerd.... MySQL gaf de volgende melding: ' . htmlspecialchars(mysql_error()); // hier zou je ook een functie van kunnen maken
}
else
{
// het is gelukt, HOERA
// stap 3, kijken of we iets terug kregen (of het bericht bestaat)
if(mysql_num_rows($rSQLGetMessage) == 0)
{
// bericht bestaat niet
echo 'Dit bericht bestaat niet, helaas..';
}
else
{
$aSQLGetMessage = mysql_fetch_assoc($rSQLGetMessage);
$sSQLGetMember = "SELECT id, gebruikersnaam FROM leden WHERE id = " . $aSQLGetMessage['id'];
// stap 4, het lid dat het bericht stuurde ophalen
if(!$rSQLGetMember = mysql_query($sSQLGetMember, $rDatabase)) // in $rDatabase zit het resultaat van mysql_connect()
{
// foutmelding, zie hierboven
}
else
{
// stap 5, kijken of het lid bestond
if(mysql_num_rows($rSQLGetMember) == 0)
{
// lid bestaat niet
}
else
{
// stap 6, het privebericht laten zien ofzo?
$aSQLGetMember = mysql_fetch_assoc($rSQLGetMember);
// zet hier het prive bericht neer
echo htmlspecialchars($aSQLGetMember['gebruikersnaam']) . ' stuurde je een bericht: ' . htmlspecialchars($aSQLGetMessage['bericht']);
}
}
}
}
}
?>
$sSQLGetMessage="SELECT id, van, bericht FROM leden_berichten WHERE id = ".$_GET['origineel']." AND naar = ".$_SESSION['gid'];
// stap 2, de query draaien om het bericht op te halen
if(!$rSQLGetMessage=mysql_query($sSQLGetMessage,$rDatabase))// in $rDatabase zit het resultaat van mysql_connect()
{
// mislukt, foutmelding
echo'Helaas.. De query om het bericht op te halen kon niet worden uitgevoerd.... MySQL gaf de volgende melding: '.htmlspecialchars(mysql_error());// hier zou je ook een functie van kunnen maken
}
else
{
// het is gelukt, HOERA
// stap 3, kijken of we iets terug kregen (of het bericht bestaat)