[sql + php] wil niet updaten?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • admiral866
  • Registratie: April 2000
  • Nu online

admiral866

The King Personality Disorder

Topicstarter
het zit zo.
ik heb een site gebakken ( http://www.flevolan.nl/qv ) voor een bedrijf.
Maar nu willen ze wel zelf hun tarieven aan kunnen passen.
no problemo dacht ik.
Heb wel meer sites met mysql en php gemaakt.

Maar ik snap niet waarom de update niet werkt bij het volgende stukje code
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
<?
$query = "SELECT * FROM quo_vadis";
$result = mysql_query($query);
$r = mysql_fetch_row($result);
$aantal_rijen = mysql_num_rows($result);

$tries++;

 if($r[1]==$pass)
 {
  $index = 2;        // om bij te houden in welke rij we zitten (begin bij rij 2 want in rij 1 zit pass)

      for($i=1; $i < $aantal_rijen; $i++)
      {
        $in_te_voeren_tarief = ${'tarief' . $i};        
   // de tekstvakjes in het vorige scherm heten dus tarief1, tarief2, tarief3 .... etc

        
        //test variabeles begin
        echo "<br>";
        echo "waarde van \$in_te_voeren_tarief : $in_te_voeren_tarief<br>";
        echo "waarde van \$index  : $index <br><br>";
        //test variabeles eind


        $query = "UPDATE quo_vadis SET tarief='$in_te_voeren_tarief' WHERE index='$index'";
        echo"De query met tarief: $in_te_voeren_tarief en index: $index<br>
        $query<br>";
        $result = mysql_query($query);
        echo"En hier is het bijhorende \$result van mysql_query(\$query) : $result<br><br>";
        $index++;
      }
}
 else
{
  echo"Er is een onjuist wachtwoord opgegeven<br>
  Ga <a href=javascript:history.back()>terug</a> om opnieuw in te voeren.";
}
?> 
?>




Er komt nog wat select code achteraan. Maar dat boeit niet zoveel. Je kan er mee kijken of het ook daadwerkelijk is veranderd. Misschien wel zo duidelijk.
Je ziet, ik heb hier en daar ook een paar checks ingevoerd om de waarden van sommige variabelen te zien na het invoeren.
Het kan zijn dat er een fout in zit door het gebruik van $in_te_voeren_tarief = ${'tarief' . $i};
Dit heb ik namelijk nog nooit eerder gebruikt. Maar aangezien de checks op de inhoud van de variabele wel steeds goed is, lijkt dit me goed gegaan.

De waarden staan in een tabel genaamd 'quo_vadis'. De tabel heeft 2 velden 'index' en 'tarief'. De eerste rij in de tabel staat het password waarmee mag worden veranderd. Beide velden zijn varchar
De visuele 'backend' staat op http://www.flevolan.nl/qv/admin
het password heb ik even ingesteld op 'asdf' als je wil proberen.

hopelijk hebben jullie hier genoeg informatie aan :)

Acties:
  • 0 Henk 'm!

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Titel veranderd, volgende keer zelf een duidelijke titel verzinnen..

Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 06-09 02:30

dusty

Celebrate Life!

echo query.
Voer handmatig de query uit via mysql.
Welke melding krijg je?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • klokop
  • Registratie: Juli 2001
  • Laatst online: 06-07 11:48

klokop

swiekie swoeng

Up te daten getalletjes niet tussen 'quotes'?

"Passing silhouettes of strange illuminated mannequins"


Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op dinsdag 27 november 2001 12:41 schreef klokop het volgende:
Up te daten getalletjes niet tussen 'quotes'?
In MySQL schijnt dat te mogen...

Acties:
  • 0 Henk 'm!

  • klokop
  • Registratie: Juli 2001
  • Laatst online: 06-07 11:48

klokop

swiekie swoeng

Op dinsdag 27 november 2001 12:43 schreef Onno het volgende:

[..]

In MySQL schijnt dat te mogen...
Ja, nou ja, maar probeer 't eens... freaky shit happens. Maar dat van die ge-echoode query ff in commandline mysql plakken lijkt me sowieso een goeie plan

"Passing silhouettes of strange illuminated mannequins"


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op dinsdag 27 november 2001 12:43 schreef Onno het volgende:

[..]

In MySQL schijnt dat te mogen...
Sterker nog. MySQL moedigt het zelfs aan.

http://www.mysql.com/doc/G/e/General_security.html

Misschien bestaat de index niet?
Geeft mysql een error?
verander er eens
PHP:
1
2
3
4
5
6
<?
...
echo"De query met tarief: $in_te_voeren_tarief en index: $index<br>        $query<br>";
$result = mysql_query($query) or die(mysql_error());
...
?>

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 06-09 02:30

dusty

Celebrate Life!

Op dinsdag 27 november 2001 12:50 schreef LuCarD het volgende:
Sterker nog. MySQL moedigt het zelfs aan.
Ze hebben wel vaker domme dingen gezegd/gedaan/gedacht.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
:)

(is 'codeo ergo sum' overigens niet heel wat correcter? </off-topic>)

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op dinsdag 27 november 2001 12:58 schreef dusty het volgende:

[..]

Ze hebben wel vaker domme dingen gezegd/gedaan/gedacht.
LOL >:)

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • klokop
  • Registratie: Juli 2001
  • Laatst online: 06-07 11:48

klokop

swiekie swoeng

IPV:

$query = "UPDATE quo_vadis SET tarief='$in_te_voeren_tarief' WHERE index='$index'";
echo"De query met tarief: $in_te_voeren_tarief en index: $index<br>
$query<br>";
$result = mysql_query($query);
echo"En hier is het bijhorende \$result van mysql_query(\$query) : $result<br><br>";

dit?
$query2 = "UPDATE quo_vadis SET tarief='$in_te_voeren_tarief' WHERE index='$index'";
echo"De query met tarief: $in_te_voeren_tarief en index: $index<br>
$query2<br>";
$result2 = mysql_query($query2);
echo"En hier is het bijhorende \$result2 van mysql_query(\$query2) : $result2<br><br>";

"Passing silhouettes of strange illuminated mannequins"


Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
Hoe zou dat uit moeten maken?

Acties:
  • 0 Henk 'm!

  • admiral866
  • Registratie: April 2000
  • Nu online

admiral866

The King Personality Disorder

Topicstarter
or die(mysql_error());
erbij gedaan

geeft nu een error
"You have an error in your SQL syntax near 'index='2'' at line 1"

k ff kijken naar de $index

btw ik dacht dat een query echo-en ging door $result te echo-en :P

Acties:
  • 0 Henk 'm!

  • Onno
  • Registratie: Juni 1999
  • Niet online
Hm, index is een reserved word misschien? Probeer eens 'where "index"=...'. Dus met dubbele quotes om index heen.

Acties:
  • 0 Henk 'm!

  • admiral866
  • Registratie: April 2000
  • Nu online

admiral866

The King Personality Disorder

Topicstarter
nu zonder puntjes geprobeerd.
en nog gecast
PHP:
1
2
3
4
5
6
7
8
9
10
<?
 $index = (string)$index;
        $query = "UPDATE quo_vadis SET tarief='$in_te_voeren_tarief' WHERE index='$index'";
        echo"De query met tarief: $in_te_voeren_tarief en index: $index<br>
        $query<br>";
        $result = mysql_query($query) or die(mysql_error());
        echo"En hier is het bijhorende \$result van mysql_query(\$query) : $result<br><br>";
        $index = (int)$index;
        $index++;
?>

werkt beide niet.

heb nu van index geen varchar meer, maar een char.
> werkt niet
nu van de char een int gemaakt.
> werkt niet
naam van veld index in index2 veranderd.
> jaaa het werkt.

hmz waarschijnlijk mag je geen tabel met naam 'index' hebben?

weird

Acties:
  • 0 Henk 'm!

  • admiral866
  • Registratie: April 2000
  • Nu online

admiral866

The King Personality Disorder

Topicstarter
Op dinsdag 27 november 2001 13:19 schreef Onno het volgende:
Hm, index is een reserved word misschien? Probeer eens 'where "index"=...'. Dus met dubbele quotes om index heen.
had ik zelf net ook bedacht :)

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Op dinsdag 27 november 2001 13:30 schreef admiral het volgende:

[..]

had ik zelf net ook bedacht :)
kies een andere naam. Reserved woorden gebruiken werkt alleen maar verwarrend.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • admiral866
  • Registratie: April 2000
  • Nu online

admiral866

The King Personality Disorder

Topicstarter
Op dinsdag 27 november 2001 13:43 schreef drm het volgende:

[..]

kies een andere naam. Reserved woorden gebruiken werkt alleen maar verwarrend.
heuh?
heb toch net veranderd?
of bedoel je dat met een 2 erachter er nog te veel op lijkt?

zit ook wel wat in,
verander em in tarief_index

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Op dinsdag 27 november 2001 13:47 schreef admiral het volgende:

[..]

heuh?
heb toch net veranderd?
of bedoel je dat met een 2 erachter er nog te veel op lijkt?

zit ook wel wat in,
verander em in tarief_index
Het is gebruikelijk(er) om er ID of _id achter te plakken. Dat behelst nl. beter de betekenis van het veld. De betekenis van het veld is dat het een sleutel is. En sleutel wordt ook ID genoemd. there you go

Net als de naam "quo_vadis" voor je tabel. Ook niet zo handig, voor de fictieve doch immer potentieel aanwezige figuur die later je code nog eens gaat lezen ;) (ik dus)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • admiral866
  • Registratie: April 2000
  • Nu online

admiral866

The King Personality Disorder

Topicstarter
:)
ja is waar.
als ik voor mezelf bezig ben ben ik nooit zo netjes in dat soort dingen.

eigenlijk wel slecht .

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Op dinsdag 27 november 2001 14:15 schreef admiral het volgende:
:)
ja is waar.
als ik voor mezelf bezig ben ben ik nooit zo netjes in dat soort dingen.

eigenlijk wel slecht .
Een gewoonte van maken, dan denk je er op een gegeven moment niet eens meer bij na, en doe je het vanzelf goed :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1