Er zit iets niet goed bij mij in deze PHP of SQL code, wat zou de code moeten doen?

Hij kijkt 2 textboxen na, old_ - new_artistname, daarna zou hij moeten kijken of de old_artistname uberhaubt in de database bestaat (in dit gedeelte gaat hij de fout in). Zodra de naam bestaat mag hij de nieuwe naam updaten.

<?php
if (isset($_POST['new_artistname'])) {
$old_artistname = trim($_POST['old_artistname']);
$new_artistname = trim($_POST['new_artistname']);
if( strlen ( $new_artistname ) < 2 ) {
echo '<div class="message error closeable">An artistname may not be less than 2 characters!</div>';
} else {
$get_artists_sql = "SELECT artistname FROM artist WHERE artistname = '".mysql_real_escape_string($old_artistname)."'";

$get_artists_result = mysql_query($get_artists_sql);
if(!$get_artists_result) {
echo '<div class="message error closeable"><b>'. $old_artistname .'</b> does not excist in the database</div>';
} else {
$update_artist_sql = " UPDATE artist
SET artistname = '".mysql_real_escape_string($new_artistname)."'
WHERE artistname = '".mysql_real_escape_string($old_artistname)."' ";

$update_artist_result = mysql_query($update_artist_sql);

if(!$update_artist_result) {
echo '<div class="message error closeable">Something has gone wrong, <b>'. $new_artistname .'</b> might already excist in the database.</div>';
} else {
echo '<div class="message success closeable"><b>' . $old_artistname . '</b> has been changed succesfully into <b>'. $new_artistname .'</b></div>';
}
}
}
}
?>

Wat doe ik fout? Waarom controleert hij niet goed of de naam uberhaubt al bestaat in de database?
heb je de query al eens ge-echo't?
Even een vraagje.
Heb jij dit zelf gescript..
De teksten zijn namelijk engels.. of jij vind het fijn ?
Jurrien schreef op 30.12.2009 00:05
Even een vraagje.
Heb jij dit zelf gescript..
De teksten zijn namelijk engels.. of jij vind het fijn ?


Ja zelf gescript, ik werk meestal in het engels :)
Wim schreef op 30.12.2009 00:04
heb je de query al eens ge-echo't?


Nee eigenlijk niet, zal ik morgen eens doen ;) Misschien inderdaad wel een handige tip om zulke dingen na te kunnen kijken :)
Jurrien schreef op 30.12.2009 00:05
Even een vraagje.
Heb jij dit zelf gescript..
De teksten zijn namelijk engels.. of jij vind het fijn ?

Is makkelijker om in het engels te scripten, meeste voorbeelden zijn in het engels, meeste classen, en je mensen uit heel de wereld kunnen jou script lezen.
Pepijn schreef op 30.12.2009 00:15
[quote='Jurrien schreef op 30.12.2009 00:05']Even een vraagje.
Heb jij dit zelf gescript..
De teksten zijn namelijk engels.. of jij vind het fijn ?

Is makkelijker om in het engels te scripten, meeste voorbeelden zijn in het engels, meeste classen, en je mensen uit heel de wereld kunnen jou script lezen.[/quote]

Daar heb je een punt.
Tog vind ik het fijner om bijv de errors in het nederlands te lezen:P
maarja dat is tog wel mijn mening
Allereerst is het handig om een foutafhandeling te doen:
- Controleer of de $_POST de juiste waarden heeft;
- Check bij welke statement er volgens jou iets mis gaat;
- Soms is het handig om een LIKE te gebruiken in je query i.p.v. exact te controleren.
Ik zie een fout..

Jij controleerd of een query gelukt is, en als hij niet gelukt is zeg jij dat hij niet in de database voorkomt, als de query wel gelukt is update jij gelijkt de artist weer.. Maar als de artist niet bestaat?
mysql_num_rows()
Bedankt voor de adviezen.
Ik heb nunet even de 1e MySQL geëcho'd, waar het fout zou moeten gaan.
Als antwoord krijg ik 'Resource id#8', dit kan toch nooit kloppen?

Ik zie niet wat ik fout heb gedaan.

<?php
else {
$get_artists_sql = "SELECT artistname FROM artist WHERE artistname = '".mysql_real_escape_string($old_artistname)."'";

$get_artists_result = mysql_query($get_artists_sql);
if(!$get_artists_result) {
?>

@Arjan, in dit geval moet ik wel een exacte vergelijking hebben.

Reageren