Toon posts:

[php/mysql] Update

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem met php/mysql updaten. Ik wil gewoon het tabel bot update dat doe ik op de volgende manier (zie script).
Maar op deze manier werkt het niet wat doe ik fout?
De variabele $edit = ?edit=id

// Edit het werkende script :)

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
46
47
48
49
50
51
52
53
54
55
56
57
<?
if ($HTTP_COOKIE_VARS["gebruikersnaam"] == "")
{
    echo "To see this page you must be Admin!";
    exit;
}
?><?php

include "config.php";

$query=mysql_query("SELECT * FROM bot ORDER BY id DESC");
while ($row =@ mysql_fetch_array($query)) {
 $table_body .="<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\">
  <tr>
    <td width=\"100%\"><font face=\"verdana\" size=\"2\">Bot Name: $row[name] | <a href=\"?edit=$row[id]\">EDIT</a></font></td>
  </tr>
</table><br>";}

echo "$table_body";


If ($save)
{
$sql = mysql_connect ("localhost","root","");
mysql_select_db ("msnshit_user", $sql);
$update = "UPDATE bot SET name='$name', url='$url', section='$section', text='$text' WHERE id=$edit";
$query = mysql_query($update);
$edit = addslashes($edit);
echo "$update";

exit;
}

$query=mysql_query("SELECT * FROM bot WHERE id=$edit");
while ($row =@ mysql_fetch_array($query)) {
 $table .="<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\">
  <tr>
    <td width=\"100%\"><form method=\"post\" action=\"$PHP_SELF?edit=$edit\">
        Name:<br><input type=\"text\" value=\"$row[name]\" name=\"name\"><br>
        URL:<br><input type=\"text\" value=\"$row[url]\" name=\"url\"><br>
        Section:<br><select size=\"1\" name=\"section\">
        <option value=\"NickName\">NickName</option>
        <option value=\"AddOns\">AddOns</option>
        <option value=\"Other\">Other</option>
        <option value=\"Hacker\">Hacker</option>
        </select><br>
        Extra:<br>
        </font><textarea rows=\"10\" name=\"text\" cols=\"28\">$row[text]</textarea></font><br>
        <br>
        <input type=\"submit\" value=\"submit\" name=\"save\"></td>
  </tr>
</table><br>";

}
echo "$table";
exit;
?>

  • LegacyCode
  • Registratie: Maart 2002
  • Laatst online: 23-08 14:55

LegacyCode

De crack van de division

$update = "UPDATE bots SET name=
Daar staat UPDATE bots SET ,
moet dat niet bot zijn ???

legacycode.net


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

vrij simpel:
  1. lees de quickstart
  2. gebruik
  3. [php] tags ipv [code] tags
  4. verwijder al je @-tekens (die zijn vies)
  5. zet error_reporting(E_ALL) bovenaan je script
  6. zet na iedere mysql_* functie: or die (mysql_error());
  7. succes!

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

Beetje onoverzichtelijk. Ken je aub [php] tags gebruiken?

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 30-08 17:07
$update = "UPDATE bots SET name='$name', url='$url', section='$section', text='$text' WHERE id=$edit";

Ben bang dat de tabel bot moet zijn ipv bots..

Verwijderd

Topicstarter
ja klopt ik heb dat veranderd en dan geeft ie de volgende error :
You have an error in your SQL syntax near '' at line 1

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 30-08 17:07
Weet je zeker of zie update query wel klopt. Zo te zien print je die niet, voor het debuggen.
Als je nou :
echo $update;
voor/boven de mysql_query plakt, kun je zien of die query wel deugt.

Verwijderd

Topicstarter
ja ik zie nu dat er iets misgaat hij krijgt die id=$edit niet door
$update = "UPDATE bots SET name='$name', url='$url', section='$section', text='$text' WHERE id=$edit";
ideeen?

  • smaij
  • Registratie: November 2000
  • Laatst online: 00:20
zet is quotes ' om $edit heen

  • smaij
  • Registratie: November 2000
  • Laatst online: 00:20
kijk ook eens naar de veiligheid van je script.

De variabele $edit = ?edit=id zeg jij.. is het niet slim om $edit te checken dan?

PHP:
1
$edit = addslashes($edit);
kom je al een heel end.

Verwijderd

Topicstarter
zet is quotes ' om $edit heen
nope dat heeft geen nut

  • smaij
  • Registratie: November 2000
  • Laatst online: 00:20
nog iets..

je hebt in je script alleen het volgende staan

<form method=\"post\" action=\"$PHP_SELF\">

maar daar is snel iets anders van dan. omdat je nu $edit niet doorgeeft aan je formulier.

dat kan op 2 manieren

1. hidden fields met naam edit en value = id
2. $PHP_SELF?edit=$edit te gebruiken.. ik neem aan dat $edit op dat moment de ID bevat..

Verwijderd

Topicstarter
hij werkt nu bedankt! :)
Pagina: 1