Php mysql update
Ik ben sinds kort weer een beetje begonnen met php en ik loopt een beetje vast bij het update van tekst naar de database.
Dit is het script:
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
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
<?php
error_reporting(0);
include('config/database.php');
$id = $_GET['id'];
$task = $_POST['task'];
mysql_select_db("todo",$conn);
if(isset($_POST['edit'])){
$edit = "UPDATE todo SET task='$task' WHERE id='$id'";
mysql_query($edit, $conn);
};
$sql = "SELECT * FROM todo WHERE id='$id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<b>ID:</b> ".$row['id']."<br /> <b>Taak:</b><br />
<form method=post>
<textarea name=task cols=73 rows=9>".$row[task]."</textarea><br />
<input type=submit name=edit value=edit style=float: left>
</form>
</p>";
}
} else {
echo "Verkeerde ID";
}
$conn->close();
?>
error_reporting(0);
include('config/database.php');
$id = $_GET['id'];
$task = $_POST['task'];
mysql_select_db("todo",$conn);
if(isset($_POST['edit'])){
$edit = "UPDATE todo SET task='$task' WHERE id='$id'";
mysql_query($edit, $conn);
};
$sql = "SELECT * FROM todo WHERE id='$id'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<b>ID:</b> ".$row['id']."<br /> <b>Taak:</b><br />
<form method=post>
<textarea name=task cols=73 rows=9>".$row[task]."</textarea><br />
<input type=submit name=edit value=edit style=float: left>
</form>
</p>";
}
} else {
echo "Verkeerde ID";
}
$conn->close();
?>
(het is misschien een beetje rommelig maar dat komt wel als ik wat meer van php ken)
En als ik dan tekst verander en op submit button klik gebeurt er niks. Wat doe ik fout? Ik heb al meerdere tutorials gevold maar het wilt niet lukken.
Alvast bedankt.
Toevoeging op 04/02/2017 20:09:46:
En waarom de mysql functies en niet die van mysqli?
- Rob - op 04/02/2017 20:09:13:
Als je even error_reporting() even zet op error_reporting(1) zie je een error, zet die error hier in een reactie en dan kunnen we kijken wat er fout is ;-)
Toevoeging op 04/02/2017 20:09:46:
En waarom de mysql functies en niet die van mysqli?
Toevoeging op 04/02/2017 20:09:46:
En waarom de mysql functies en niet die van mysqli?
Ik heb al van een vriend begrepen dat mysqli (wat jij zegt) beter is. Maar ik moet het op een host doen wat op xampp bugt alles
Ondersteunt je host dat dan niet??
En bij de SELECT dit :
Ook dnk ik dat bij die UPDATE een $result van de query ontbreekt.
Vervolgens gebruik je '' :
en dan weer zonder '' :
Het zal wel werken (of niet), maar probeer het eens consequent te doen.
Gewijzigd op 04/02/2017 21:04:19 door Adoptive Solution
- Ariën - op 04/02/2017 20:40:42:
Ondersteunt je host dat dan niet??
Xampp niet, die doet de laatste tijd al raar, dan maar even kijken voor een goedkope host.
Adoptive Solution op 04/02/2017 21:02:03:
Bij de UPDATE gebruik je dit :
En bij de SELECT dit :
Ook dnk ik dat bij die UPDATE een $result van de query ontbreekt.
Vervolgens gebruik je '' :
en dan weer zonder '' :
Het zal wel werken (of niet), maar probeer het eens consequent te doen.
En bij de SELECT dit :
Ook dnk ik dat bij die UPDATE een $result van de query ontbreekt.
Vervolgens gebruik je '' :
en dan weer zonder '' :
Het zal wel werken (of niet), maar probeer het eens consequent te doen.
Ik zal dit zeker gaan proberen
Heb je wel de laatste versie van XAMPP? Als je deze niet hebt zit PHP 5 er hoogst waarschijnlijk niet op en ondersteunt jouw host het dus niet.
We zitten al bij versie 7 (waarvan 6 is overgeslagen door de ontwikkelaars).
Trowens, als XAMPP raar doet, is het niet zinvoller om dat eens uit te zoeken?
Gewijzigd op 05/02/2017 16:10:13 door - Ariën -
Toevoeging op 05/02/2017 16:09:43:
- Ariën - op 05/02/2017 16:08:18:
Als je een XAMPP hebt zonder PHP 5, dan loop je zeker wel 13 jaar achter :P
We zitten al bij versie 7 (waarvan 6 is overgeslagen door de ontwikkelaars).
We zitten al bij versie 7 (waarvan 6 is overgeslagen door de ontwikkelaars).
;P ja, maar je kan oudere PHP versies erop zetten en wie weet heeft hij dit wel gedaan. Of hij kan een te oude xampp hebben gedownload..
Daarom loont het altijd om dit te dumpen naar een text-file (*.sql) en deze weer in te laden. Het makkelijkste is om dit via de command-line te doen met de mysql en mysqldump executables. Via phpMyAdmin kan ook, maar grote databases kunnen voor een time-out zorgen omdat de max-upload-size en/of max-execution-time wordt overschreden. Ikzelf kan ook de HeidiSQL client aanraden.
Ik verwacht overigens niet dat iemand nu nog een decennia oude versie zal hebben geinstalleerd.
En anders hoor ik graag wat voor uitkomst biedt, kijkend naar de versie van PHP in de titel.
time-out tijd kan je gemakkelijk veranderen naar hoelang jij wilt bijvoorbeeld: 2 uur ofziets (Misschien is dit te lang heb het zelf veranderd naar 10 minuten)
Volgens mij als phpmyadmin buiten jouw webroot wordt gedraaid, dan kan je hier geen invloed op uitoefenen. Ook heb ik vaak problemen gehad m.b.t. encoding-setting in phpMyAdmin die niet lekker herkend werden.
HeidiSQL als client (een programma) werkt direct met MySQL zonder dit via PHP te doen. Als je dit bij je hosting wilt gebruiken moet je wel poort 3306 op zetten in de firewall, en jouw IP in de access-list plaatsen.
Gewijzigd op 05/02/2017 16:25:11 door - Ariën -
Ja ... natuurlijk is 2 uur veel te lang! Ook 10 minuten lijkt me te lang. Je wil je server toch niet 10 minuten laten pruttelen op een of ander brak script? Daardoor kan je server compleet onbereikbaar worden.
De upload mag je zelf bepalen, maar maak het niet al te hoog, deze acties kosten ook weer geheugen. Ikzelf heb deze op 128MB staan.
Gewijzigd op 05/02/2017 16:26:51 door - Ariën -
O bedankt, even snel aanpassen om problemen te voorkomen. Bedankt!
Heb je echt 128MB nodig? Gaat in de praktijk iemand een bestand van 128MB naar jouw website uploaden?
Is het antwoord 'nee eigenlijk niet' dan zou ik dit getal aanzienlijk verlagen.
Waarom?
Omdat het nu mogelijk is voor kwaadwillenden om via een formulier bestanden van 128 MB te uploaden. Als dat geautomatiseerd gebeurt via een bot, ligt binnen no time je server urenlang plat omdat die al die zware bestanden niet kan verwerken.
Dat klinkt meer als een speciaal gerichte aanval dan iets wat standaard botjes doen. Bij nadere controle bleek het zelfs 64MB te zijn.
Toevoeging op 05/02/2017 18:25:31:
Btw had nog php 5 op xampp lol ;x
Verder sluiten we alleen maar topics als het nodig is.
Ik ben nu bezig met DELETE maar dat wilt ook niet echt werken..
De php code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
If(isset($_POST["delete"])){
$sql_delete = "DELETE * FROM todo WHERE id='$id'";
if ($conn->query($sql_delete) === TRUE) {
echo "<script type= 'text/javascript'>alert('Verwijderd!');</script><a onclick=window.open('index.php','name','width=600,height=400') class=edit >Ga terug!</a>";
} else {
echo "<script type= 'text/javascript'>alert('Error: " . $sql . "<br>" . $conn->error."');</script>";
}
}
?>
If(isset($_POST["delete"])){
$sql_delete = "DELETE * FROM todo WHERE id='$id'";
if ($conn->query($sql_delete) === TRUE) {
echo "<script type= 'text/javascript'>alert('Verwijderd!');</script><a onclick=window.open('index.php','name','width=600,height=400') class=edit >Ga terug!</a>";
} else {
echo "<script type= 'text/javascript'>alert('Error: " . $sql . "<br>" . $conn->error."');</script>";
}
}
?>
Dit is de button:
<form method=post><input type=submit name=delete id=delete value=Delete!></form>
Is toch niks mis mee?
Als ik op delete klik krijg ik niks te zien en hij delete niet.
Gewijzigd op 05/02/2017 18:38:38 door marco -
Marco - op 05/02/2017 18:35:31:
<form method=post><input type=submit name=delete id=delete value=Delete!></form>
Is toch niks mis mee?
Is toch niks mis mee?
Er is niks goed aan.
Je mist alle dubbele html quotes.
En eventueel ook de action mist.
Verder probeer je de value op "Delete!" te zetten.
Ik neem niet aan dat jij in de database een id hebt met die waarde.
Dus er wordt niks verwijderd.