Toon posts:

php update query werkt niet

Pagina: 1
Acties:
  • 34 views sinds 30-01-2008

Verwijderd

Topicstarter
Hi tweakers,

Ik heb een update code, maar hij werkt niet, hij update niet naar de database, ziet iemand mayb de fout ?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$id = $_POST['id'];
$bedrijfsnaam = $_POST['bedrijfsnaam'];
$catogorie = $_POST['catogorie'];
$straat = $_POST['straat'];
$postcode = $_POST['postcode'];
$stad = $_POST['stad'];
$tel = $_POST['tel'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$web = $_POST['web'];
    
    $query = "UPDATE adreslijst SET bedrijfsnaam = '$bedrijfsnaam', catogorie = '$catogorie', straat = '$straat', postcode = '$postcode', stad = '$stad', tel = '$tel', fax = '$fax', email = '$email', web = '$web' WHERE id = '$id'";
    $info = mysql_query($query) or die ("Update gegevens mislukt");
    
    echo "Bedrijf geupdated !";


als je op de update button drukte gaf hij "Bedrijf geupdated !" niet zien :S

De input names kloppen met die van de database, en die in de update code staan

Ik heb precies dezelfde code gebruikt voor een andere systeem, en daar werkt het wel gewoon :S
dus vind het best vaag :P

[ Voor 4% gewijzigd door Verwijderd op 10-12-2006 00:14 ]


  • Herby
  • Registratie: Januari 2004
  • Laatst online: 17-01-2022

Herby

Stalknecht

En wat krijg je dan wel te zien ? Foutmelding toevallig ? Post die gelijk dan even hier :>

Compromis? Hoezo heb ik het mis dan?! | Geluk = gelul met een K | з=(•̪●)=ε


  • ID-College
  • Registratie: November 2003
  • Laatst online: 17:01
Zit zo te zien nix fout in.
Een ID is een INT en geen String. Daar zijn geen ' ' voor nodig.
Wat geeft een or die (mysql_error()) aan dan? En plaats de code in php tags ipv code tags :)
print je query ook eens rechtstreeks dmv print mysql_query($query) + or die (mysql_error());

En doe niet:
PHP:
1
2
3
$id = $_POST["id"];
//maar
$id = addslashes($_POST["id"]);

Als je de postwaarde toch naar een variabele omzet doe er dan iets mee. Voor de beveiliging.....

[ Voor 45% gewijzigd door ID-College op 10-12-2006 00:49 ]


  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 19:44

pietje63

RTFM

- wat krijg je wel te zien
- als debug kun je misschien je query echoen
- bestaar desbetreffende id wel

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

Vast niet het probleem, maar het is categorie.

Verwijderd

Wat is meestal doe als het niet werkt is de $query printen/echo'en en hem dan in de mysql console testen en editen todat de fout is gevonden.

Let ook op hoofdletters in namen.

offtopic:
Lekker, sql injections doen...

Lees eens een handleiding want ik kan zo je database om zeep helpen (mocht je dit op het web gaan gebruiken).

[ Voor 53% gewijzigd door Verwijderd op 10-12-2006 00:47 ]


Verwijderd

Topicstarter
hij geeft geen error aan :S .. dat is het juist ik weet niet waar de error zit,

want als je dan op update button klik, krijg je gewoon een lege layout :S

Verwijderd

Topicstarter
ID-College schreef op zondag 10 december 2006 @ 00:26:
Zit zo te zien nix fout in.
Een ID is een INT en geen String. Daar zijn geen ' ' voor nodig.
Wat geeft een or die (mysql_error()) aan dan? En plaats de code in php tags ipv code tags :)
print je query ook eens rechtstreeks dmv print mysql_query($query) + or die (mysql_error());

En doe niet:
PHP:
1
2
3
$id = $_POST["id"];
//maar
$id = addslashes($_POST["id"]);

Als je de postwaarde toch naar een variabele omzet doe er dan iets mee. Voor de beveiliging.....
ik had er ook neer gezet, bij een ander systeem werkt het gewoon wel ? dus waarom zou het dan daaraan liggen opeens ?

  • ID-College
  • Registratie: November 2003
  • Laatst online: 17:01
Nee daar ligt het zoiezo niet aan. Voor de veiligheid want zoals hierboven al staat ben je nu kwetsbaar voor SQL injecties.

Verder met deze informatie kan niemand iets. Wees eens duidelijk want zo zitten we hier volgende week nog.
Hoezo geeft een error aan? Welke error? En de code die je post is niet relevant want in dit stuk zit je fout niet. Welk formulier gebruik je, post die code en wat is je form action? Wijst die naar een andere pagina? zoja plaatst dan ook die relevante code. Want ik heb het gevoel dat je totaal naar het verkeerde stuk code zit te kijken :)

Verwijderd

Om te beginnen kun je error_reporting(E_ALL);
bovenaan in het script zetten.

Ik zou ook de query iets anders afhandelen.
Ik zag al een "echo de query" voorbij schieten.

Ik deed altijd het volgende:
PHP:
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
error_reporting(E_ALL);

$id = $_POST['id'];
$bedrijfsnaam = $_POST['bedrijfsnaam'];
$catogorie = $_POST['catogorie'];
$straat = $_POST['straat'];
$postcode = $_POST['postcode'];
$stad = $_POST['stad'];
$tel = $_POST['tel'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$web = $_POST['web'];

$q_updatebedrijf = "
UPDATE adreslijst SET
    bedrijfsnaam = '$bedrijfsnaam',
    catogorie = '$catogorie',
    straat = '$straat',
    postcode = '$postcode',
    stad = '$stad',
    tel = '$tel',
    fax = '$fax',
    email = '$email',
    web = '$web'
WHERE id = ".$id."
";

$r_updatebedrijf = mysql_query($q_updatebedrijf);

if(!$r_updatebedrijf)
{
    echo "MySQL Error bij updaten bedrijf<br><br>" . mysql_error () . "<br>in query:<br>
    <pre>
        ".
        $q_updatebedrijf
        ."
    </pre>
    ";
}
else
{
    echo "Bedrijf geupdated !";
}
?>

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:04
Dit is gewoon basic debug-werk, en dat moet je als programmeur zelf kunnen doen.
Zoals reeds gezegd werd: zorg ervoor dat eventuele fouten gerapporteerd worden, echo de query eens voordat je 'm naar de DB stuurt, zodanig dat je ziet wat er precies uitgevoerd zal worden.
Voer 'm desnoods zo eens uit in phpMyAdmin oid.


verder nog een tip: rond numerieke gegevens geen quotes zetten.

Zoals je kan zien is het niet zo moeilijk om eerst eens even zelf te debuggen, ipv het aan anderen over te laten. :)

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.