PHP programmør søges.

Hyggehjørnet d.  05. marts. 2014, skrevet af Monberg75
Vist: 3288 gange.

Monberg75
 
Moderator
Tilføjet:
05-03-2014 13:20:16
Svar/Indlæg:
1194/156
Jeg fifler lidt med lidt hjemmeside, og kan ellers en del af det selv, men nogen gange sidder jeg fast og har brug for en hjælpende hånd.

Så jeg har brug for en sparringspartner, der kan række mig den hånd når jeg har brug for den en gang imellem :)

pt roder jeg med lidt database sjov, og har lidt knas med det, det er mysql base.

Nogen der rækker hånden op? kom frisk :D
1EaR
 
Elitebruger
Tilføjet:
05-03-2014 13:22:26
Svar/Indlæg:
5750/124
Du kan evt. skrive hvad dit nuværende problem er, så vi har en chance for at vurdere hvorvidt vores egne kompetencer kan række 🙂

Jeg har dog aldrig rigtigt leget med .php, men hvor slemt kan det være? Det er jo "bare" endnu et programmeringssprog 😛


Monberg75
 
Moderator
Tilføjet:
05-03-2014 13:24:36
Svar/Indlæg:
1194/156
Ja, altså jeg er jo kommet forbi det at jeg skal smide data ind i databasen, men jeg kan simpelthen ikke finde ud af at opdatere de data.

Jeg har en form, hvor jeg så POSTER til opdaterings scriptet. men den vil simpelthen ikke opdatere, og den kommer umiddelbart ikke med nogen fejl.
Virkeligt underligt, med mindre jeg har lavet en banal fejl.


Monberg75
 
Moderator
Tilføjet:
05-03-2014 13:25:49
Svar/Indlæg:
1194/156
//$sql="SELECT * FROM freezer";
//$result=mysqli_query($con,$sql) or die(mysql_error($con));
//mysqli_query($con,"UPDATE SET dato='$_POST[dato]', udloeb='$_POST[udloeb]', antal='$_POST[antal]', lokation='$_POST[lokation]' WHERE id='$_POST[id]' ");
//
//if (!mysqli_query($con,$sql))
// {
// die('Error: ' . mysqli_error($con));
// }
//echo "record updated";
//
//mysqli_close($con);
//}


Svaret blev redigeret 2 gange, sidst af Monberg75 d. 05-03-2014 13:28:49.


Monberg75
 
Moderator
Tilføjet:
05-03-2014 13:26:53
Svar/Indlæg:
1194/156
Jeg echoer alle variablerne ovenover, og værdierne er der, den ændrer dem bare ikke i databasen.

Jeg connecter til databasen i starten af scriptet, der kommer heller ikke nogen fejl der.

Resultatet af det her, er når jeg bare echoer værdierne, så vises værdierne, så snart jeg inkluderer ovenstående scriptdel, så får jeg blank skærm, uden error eller noget, heller ikke bekræftigelses beskeden om at det er ændret


Svaret blev redigeret 1 gang, sidst af Monberg75 d. 05-03-2014 13:28:12.


Monberg75
 
Moderator
Tilføjet:
05-03-2014 13:30:18
Svar/Indlæg:
1194/156
Det er ikke en PHP_self formular, da jeg har læst det er sårbart overfor injections.

Så den linker til et seperat script.


Chup
 
Overclocker
Tilføjet:
05-03-2014 13:38:02
Svar/Indlæg:
25/6
Prøv denne i første omgang, så du får outputtet hvis der sker fejl 🙂

Der er flere fejl i din query, bla. mangler du tabelnavn, og dine POST er forkert, da key er en string skal den altid være omgivet af '' eller ""

$sql = "
UPDATE _TABEL NAVN_

SET

dato= '" . $_POST['dato'] . "',
udloeb='" . $_POST['udloeb'] . "',
antal='". $_POST['antal'] . "',
lokation='" . $_POST['lokation'] . "'

WHERE id='".$_POST['id']."' ";

if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}

echo "record updated";

mysqli_close($con);


Og så vil jeg stærkt anbefale at du benytter parameterized queries istedet, da overstående er modtagelig over for SQL injections.

Læs evt mere her:
http://www.dreamincode.net/for...

EDIT: Rettet flere fejl i din query.


Svaret blev redigeret 3 gange, sidst af Chup d. 05-03-2014 13:44:09.


Monberg75
 
Moderator
Tilføjet:
05-03-2014 13:44:26
Svar/Indlæg:
1194/156
Jeg får ingen fejl :(

Kun blank skærm, fatter det ikke.


Svaret blev redigeret 1 gang, sidst af Monberg75 d. 05-03-2014 13:44:42.


Chup
 
Overclocker
Tilføjet:
05-03-2014 13:46:06
Svar/Indlæg:
25/6
Du har ikke udkommenteret alt koden, som i #3 vel 🙂 ? Med //
Isåfald sker der ikke rigtig noget.


Monberg75
 
Moderator
Tilføjet:
05-03-2014 13:50:08
Svar/Indlæg:
1194/156
Nejnej, det er kun til ære for jer, jeg var ikke sikker på om kode i tekstfeltet på hwt er tilladt, derfor jeg kommenterede det ud :)


Monberg75
 
Moderator
Tilføjet:
05-03-2014 13:52:16
Svar/Indlæg:
1194/156
Hvorledes skal jeg lave det med parametiserede queries? kan jo lige så godt lave det sikkert til at starte med, forstod ikke lige det i linket?


#11
Chup
 
Overclocker
Tilføjet:
05-03-2014 14:05:19
Svar/Indlæg:
25/6
Det skal sættes nogenlunde sådan op, med parametiserede queries.
(husk at ændre tabel navn, samt database connection mv)

//Opret forbindelse
$mysqli = new mysqli('host','username','password','default database');

//Tjek om der opstod fejl under forbindelse til database
if(mysqli_connect_errno()){
echo mysqli_connect_error();
}

//Lav din query
$query = "UPDATE _TABLE_ SET dato = ?, udloeb = ?, antal = ?, lokation = ? WHERE id = ?";

//Hent instance af statement
$stmt = $mysqli->stmt_init();

if($stmt->prepare($query)) {
//Her binder du værdier til parameterne fra din query (?'ene)
//Der tilføjes ét s (som står for string) for hvert ? i din query.
$stmt->bind_param("sssss",
$_POST['dato'],
$_POST['udloeb'],
$_POST['antal'],
$_POST['lokation'],
$_POST['id']);

//Udfør dit query
$stmt->execute();

//Afslut dit statement
$stmt->close();
}


Du kan læse mere her på linket, han giver en meget god forklaring 🙂

http://www.dreamincode.net/for...


Svaret blev redigeret 1 gang, sidst af Chup d. 05-03-2014 14:07:55.


Blach
 
Overclocker
Tilføjet:
05-03-2014 14:56:39
Svar/Indlæg:
39/1
For mig at se ser det ud som om du mangler at "execute" din query. Du opretter forbindelse til database, men derefter gør du ikke noget.


Monberg75
 
Moderator
Tilføjet:
05-03-2014 14:59:47
Svar/Indlæg:
1194/156
Jeg er vist faldet for meget bagud 😕

Findes der en god editor hvor man ik skal tænke så meget kode, eller er det stadig noget skidt?


unnamet
 
Passiv Hwt crew
Tilføjet:
05-03-2014 15:05:05
Svar/Indlæg:
5258/240
Mit raad til dig er at faa din side til at echo hele din sql query ud.

Kopir denne og proev at saet den ind i command linje vaerktoejet du har if fx mysql admin

Den vil fortaelle dig om din query er rigtig eller forkert. og hvad der evt er af fejl.

Det command linje vaerktoej er ogsaa ganske fortrineligt til at danne smaa simple querys som du kan sammenligne med hvis du skal lave mere advancerede querys


martinta
 
Senior Skribent
Tilføjet:
05-03-2014 15:14:19
Svar/Indlæg:
2826/100
#9

HWT er skrevet i .net, så det behøver du ikke være nervøs for ;)


Monberg75
 
Moderator
Tilføjet:
05-03-2014 16:08:58
Svar/Indlæg:
1194/156
Nu har jeg fået den til at opdatere med følgende kode:

$sql = mysqli_query($con,"UPDATE freezer SET dato='" . $_POST['dato'] . "',udloeb='" . $_POST['udloeb'] . "',antal='" . $_POST['antal'] . "',lokation='" . $_POST['lokation'] . "' WHERE id='" . $_POST['id'] . "' ");

if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "record updated";
mysqli_close($con);

Men får fejlen:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1

??