Controle werkt niet goed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ernst Jacobs

Ernst Jacobs

29/12/2009 23:51:00
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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?
Gewijzigd op 01/01/1970 01:00:00 door Ernst Jacobs
 
PHP hulp

PHP hulp

08/11/2024 12:32:47
 
Wim E

Wim E

30/12/2009 00:04:00
Quote Anchor link
heb je de query al eens ge-echo't?
 
---- ----

---- ----

30/12/2009 00:05:00
Quote Anchor link
Even een vraagje.
Heb jij dit zelf gescript..
De teksten zijn namelijk engels.. of jij vind het fijn ?
 
Ernst Jacobs

Ernst Jacobs

30/12/2009 00:12:00
Quote Anchor link
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 :)
 
Ernst Jacobs

Ernst Jacobs

30/12/2009 00:13:00
Quote Anchor link
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 :)
 
Pepijn

Pepijn

30/12/2009 00:15:00
Quote Anchor link
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.
 
---- ----

---- ----

30/12/2009 00:18:00
Quote Anchor link
Pepijn schreef op 30.12.2009 00:15:
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.


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
 
Arjan Schuurman

Arjan Schuurman

30/12/2009 00:22:00
Quote Anchor link
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.
 
Niels K

Niels K

30/12/2009 10:46:00
Quote Anchor link
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?
 
Pepijn

Pepijn

30/12/2009 11:14:00
Quote Anchor link
mysql_num_rows()
 
Ernst Jacobs

Ernst Jacobs

30/12/2009 11:54:00
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?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.
 
- SanThe -

- SanThe -

30/12/2009 12:00:00
Quote Anchor link
Serellyn schreef op 30.12.2009 11:54:
Als antwoord krijg ik 'Resource id#8', dit kan toch nooit kloppen?

Ik zie niet wat ik fout heb gedaan.

Ik ook ziet.
Dat resource id geeft aan dat er een record is gevonden.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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) {
    {

          // SQL ERROR
    }
    else
    {
          // FETCHEN van de gevonden records
    }
?>
 
Ernst Jacobs

Ernst Jacobs

30/12/2009 12:03:00
Quote Anchor link
Nou ik heb hem toch, het korte antwoord van Pepijn heeft mij toch het antwoord opgeleverd. :) Bedankt allemaal!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.