/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Update fejler
Fra : Lars Andersen


Dato : 27-01-08 00:42

Jeg har problemer med at UPDATE til min database. Hvis der er en, der vil være rar og give mig et
hint, vil jeg blive glad.
Det er formegentlig sql_update.php der er problemet, men jeg viser her alle tre filer som bruges.

sql_get_adr.php
sql_ret.php
sql_update.php

// Indholdet herunder er: sql_get_adr.php og virker fint. Ved tryk på "Tryk for opdatere denne
post" sendes data til sql_ret.php
<?php
include 'sql_config.php';
include 'sql_opendb.php';
$query="SELECT * FROM familie ORDER BY Efternavn";
$result=mysql_query($query);
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$id=mysql_result($result,$i,"id");
$Fornavn=mysql_result($result,$i,"Fornavn");
$Mellemnavn=mysql_result($result,$i,"Mellemnavn");
$Efternavn=mysql_result($result,$i,"Efternavn");
$Adresse=mysql_result($result,$i,"Adresse");
$Postnr=mysql_result($result,$i,"Postnr");
$Bynavn=mysql_result($result,$i,"Bynavn");
$Telefon=mysql_result($result,$i,"Telefon");
$Mobil=mysql_result($result,$i,"Mobil");
$Mail=mysql_result($result,$i,"Mail");
$Foedseldag=mysql_result($result,$i,"Foedseldag");

echo "<table><b>$Fornavn $Mellemnavn $Efternavn</b><br>";
echo "$Adresse, $Postnr $Bynavn<br>";
echo "Tlf.: $Telefon<br>";
echo "Mob.tlf.: $Mobil<br>";
echo "E-mail: <a href=mailto:$Mail> $Mail</a><br>";
echo "Fødselsdag: $Foedseldag"; {
echo "<form action=sql_ret.php?id[$id] method=POST>";
echo "<input type=\"hidden\" name=\"post_id\" value=\"$id\" />";
echo "<input type=submit name=Send value=\"Tryk for opdatere denne
post\"></td></tr></table></form>"; }
$i++;
}
include 'sql_closedb.php';
?>

// Indholdet herunder er sql_ret.php og virker fint. Her ændre jeg data og sender dem til
sql_update.php
<?php
include 'sql_config.php';
include 'sql_opendb.php';
$query="SELECT * FROM familie where id=".$_POST["post_id"];
$result=mysql_query($query);
while($num = mysql_fetch_array($result))
{
$id=$num["id"];
$Fornavn=$num["Fornavn"];
$Mellemnavn=$num["Mellemnavn"];
$Efternavn=$num["Efternavn"];
$Adresse=$num["Adresse"];
$Postnr=$num["Postnr"];
$Bynavn=$num["Bynavn"];
$Telefon=$num["Telefon"];
$Mobil=$num["Mobil"];
$Mail=$num["Mail"];
$Foedseldag=$num["Foedseldag"];
echo "<form method=\"POST\" action=\"sql_update.php\"><br>";
echo "<input type=\"hidden\" name=\"post_id\" value=\"$id\" /><br>";
echo "Fornavn:</td><td><input type=\"text\" name=\"Fornavn\" value=\"$Fornavn\" /><br>";
echo "Mellemnavn:</td><td><input type=\"text\" name=\"Mellemnavn\" value=\"$Mellemnavn\" /><br>";
echo "Efternavn:</td><td><input type=\"text\" name=\"Efternavn\" value=\"$Efternavn\" /><br>";
echo "Adresse:</td><td><input type=\"text\" name=\"Adresse\" value=\"$Adresse\" /><br>";
echo "Postnr:</td><td><input type=\"text\" name=\"Postnr\" value=\"$Postnr\" /><br>";
echo "Bynavn:</td><td><input type=\"text\" name=\"Bynavn\" value=\"$Bynavn\" /><br>";
echo "Telefon:</td><td><input type=\"text\" name=\"Telefon\" value=\"$Telefon\" /><br>";
echo "Mobil:</td><td><input type=\"text\" name=\"Mobil\" value=\"$Mobil\" /><br>";
echo "Mail:</td><td><input type=\"text\" name=\"Mail\" value=\"$Mail\" /><br>";
echo "Foedseldag:</td><td><input type=\"text\" name=\"Foedseldag\" value=\"$Foedseldag\" /><br>";
echo "<input type=submit name=Send value=Opdater></form>";
}
?>

// Indholdet herunder er sql_update.php og virker ikke. Den skulle ellers sende data til tabellen
familie i min database. Jeg får ingen fejlmeddelelser, blot: "Posten er opdateret" som følge af det
echo nederst i filen men tabellen bliver ikke opdateret.
<?php
include 'sql_config.php';
include 'sql_opendb.php';
$query = "mysql_fetch_array($id)";
$sql = ("UPDATE familie SET Fornavn='".$_POST["Fornavn"]."', Mellemnavn='".$_POST["Mellemnavn"]."',
Efternavn='".$_POST["Efternavn"]."', Postnr='".$_POST["Postnr"]."', Bynavn='".$_POST["Bynavn"]."',
Telefon='".$_POST["Telefon"]."', Mobil='".$_POST["Mobil"]."', Mail='".$_POST["Mail"]."',
Foedseldag='".$_POST["Foedseldag"]."' WHERE id='".$_post["id"]." ' ");
include 'sql_closedb.php';
echo "Posten er opdateret";
?>
Mvh. Lars.



 
 
Martin (27-01-2008)
Kommentar
Fra : Martin


Dato : 27-01-08 02:02

Lars Andersen wrote:
> Jeg har problemer med at UPDATE til min database. Hvis der er en, der vil være rar og give mig et
> hint, vil jeg blive glad.
> Det er formegentlig sql_update.php der er problemet, men jeg viser her alle tre filer som bruges.

[SNIP]

Brug altid mysql_query(....) OR DIE (mysql_error());

Så kan du måske få et hint...


> $sql = ("UPDATE familie SET Fornavn='".$_POST["Fornavn"]."', Mellemnavn='".$_POST["Mellemnavn"]."',
> Efternavn='".$_POST["Efternavn"]."', Postnr='".$_POST["Postnr"]."', Bynavn='".$_POST["Bynavn"]."',
> Telefon='".$_POST["Telefon"]."', Mobil='".$_POST["Mobil"]."', Mail='".$_POST["Mail"]."',
> Foedseldag='".$_POST["Foedseldag"]."' WHERE id='".$_post["id"]." ' ");
> include 'sql_closedb.php';
> echo "Posten er opdateret";

Hvis du da på noget tidspunkt udfører det der står i $sql

Lars Andersen (27-01-2008)
Kommentar
Fra : Lars Andersen


Dato : 27-01-08 09:43



"Martin" <martin@aarhof.eu.invalid> skrev i meddelelsen
news:479bd806$0$90268$14726298@news.sunsite.dk...
> Lars Andersen wrote:
>> Jeg har problemer med at UPDATE til min database. Hvis der er en, der vil være rar og give mig
>> et hint, vil jeg blive glad.
>> Det er formegentlig sql_update.php der er problemet, men jeg viser her alle tre filer som
>> bruges.
>
> [SNIP]
>
> Brug altid mysql_query(....) OR DIE (mysql_error());
>
> Så kan du måske få et hint...
>
>
>> $sql = ("UPDATE familie SET Fornavn='".$_POST["Fornavn"]."',
>> Mellemnavn='".$_POST["Mellemnavn"]."', Efternavn='".$_POST["Efternavn"]."',
>> Postnr='".$_POST["Postnr"]."', Bynavn='".$_POST["Bynavn"]."', Telefon='".$_POST["Telefon"]."',
>> Mobil='".$_POST["Mobil"]."', Mail='".$_POST["Mail"]."', Foedseldag='".$_POST["Foedseldag"]."'
>> WHERE id='".$_post["id"]." ' ");
>> include 'sql_closedb.php';
>> echo "Posten er opdateret";
>
> Hvis du da på noget tidspunkt udfører det der står i $sql

Det er det jeg er i tvivl om. Bliver data sendt rigtigt fra sql_ret.php og bliver data korrekt
modtaget og vidresendt til databasen i sql_update.php
Mvh. Lars



Birger (27-01-2008)
Kommentar
Fra : Birger


Dato : 27-01-08 10:45

"Lars Andersen" <lha@besked.com> skrev i en meddelelse
news:479c438e$0$2104$edfadb0f@dtext02.news.tele.dk...
>
>
> "Martin" <martin@aarhof.eu.invalid> skrev i meddelelsen
> news:479bd806$0$90268$14726298@news.sunsite.dk...
>> Lars Andersen wrote:
>>> Jeg har problemer med at UPDATE til min database. Hvis der er en, der
>>> vil være rar og give mig et hint, vil jeg blive glad.
>>> Det er formegentlig sql_update.php der er problemet, men jeg viser her
>>> alle tre filer som bruges.
>>
>> [SNIP]
>>
>> Brug altid mysql_query(....) OR DIE (mysql_error());
>>
>> Så kan du måske få et hint...
>>
>>
>>> $sql = ("UPDATE familie SET Fornavn='".$_POST["Fornavn"]."',
>>> Mellemnavn='".$_POST["Mellemnavn"]."',
>>> Efternavn='".$_POST["Efternavn"]."', Postnr='".$_POST["Postnr"]."',
>>> Bynavn='".$_POST["Bynavn"]."', Telefon='".$_POST["Telefon"]."',
>>> Mobil='".$_POST["Mobil"]."', Mail='".$_POST["Mail"]."',
>>> Foedseldag='".$_POST["Foedseldag"]."' WHERE id='".$_post["id"]." ' ");
>>> include 'sql_closedb.php';
>>> echo "Posten er opdateret";
>>
>> Hvis du da på noget tidspunkt udfører det der står i $sql
>
> Det er det jeg er i tvivl om. Bliver data sendt rigtigt fra sql_ret.php og
> bliver data korrekt modtaget og vidresendt til databasen i sql_update.php
> Mvh. Lars
>

Nej, data bliver ikke sendt - tror det var det Martin prøvede at antyde.
Der mangler noget i retning af

if ( mysql_query($query)) { echo "Posten er opdateret"; }
else { echo "Fejl ved opdatering : ".mysql_error(); }

før forbindelsen til databasen lukkes.


Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt hurtigt og billigt. Daglig
opdatering.



Lars Andersen (27-01-2008)
Kommentar
Fra : Lars Andersen


Dato : 27-01-08 16:50



"Birger" <sdc@bbsorensen.com> skrev i meddelelsen
> "Lars Andersen" <lha@besked.com> skrev i en meddelelse
>> "Martin" <martin@aarhof.eu.invalid> skrev i meddelelsen
>>> Lars Andersen wrote:
>>>> Jeg har problemer med at UPDATE til min database. Hvis der er en, der vil være rar og give mig
>>>> et hint, vil jeg blive glad.
>>>> Det er formegentlig sql_update.php der er problemet, men jeg viser her alle tre filer som
>>>> bruges.
>>>
>>> [SNIP]
>>>
>>>> $query = "mysql_fetch_array($id)";
>>>> $sql = ("UPDATE familie SET Fornavn='".$_POST["Fornavn"]."',
>>>> Mellemnavn='".$_POST["Mellemnavn"]."', Efternavn='".$_POST["Efternavn"]."',
>>>> Postnr='".$_POST["Postnr"]."', Bynavn='".$_POST["Bynavn"]."', Telefon='".$_POST["Telefon"]."',
>>>> Mobil='".$_POST["Mobil"]."', Mail='".$_POST["Mail"]."', Foedseldag='".$_POST["Foedseldag"]."'
>>>> WHERE id='".$_post["id"]." ' ");
>>>> include 'sql_closedb.php';
[snip]

if ( mysql_query($query)) { echo "Posten er opdateret"; }
else { echo "Fejl ved opdatering : ".mysql_error(); }

Oventående if sætning giver denne fejl:
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 'mysql_fetch_array()' at line 1
Men jeg kan ikke rigtig se syntax-fejlen. Server version er 5.2.0-8

Der er ingen problemer med insert
$query = "INSERT INTO familie VALUES ('','$Fornavn', ...etc.
mysql_query($query);

Men det er update der volder problemer:
$query = "mysql_fetch_array($id)";
$sql = ("UPDATE familie SET Fornavn='".$_POST["Fornavn"]."', ...etc.

Mvh. Lars.



Martin (27-01-2008)
Kommentar
Fra : Martin


Dato : 27-01-08 18:42

Lars Andersen wrote:
> Der er ingen problemer med insert
> $query = "INSERT INTO familie VALUES ('','$Fornavn', ...etc.
> mysql_query($query);
>
> Men det er update der volder problemer:
> $query = "mysql_fetch_array($id)";
> $sql = ("UPDATE familie SET Fornavn='".$_POST["Fornavn"]."', ...etc.

echo $sql;
- giver den PRÆCIS det forventet resultat?
- overholder den SQL standarden?

Mads Lie Jensen (27-01-2008)
Kommentar
Fra : Mads Lie Jensen


Dato : 27-01-08 20:42

On Sun, 27 Jan 2008 16:50:10 +0100, "Lars Andersen" <lha@besked.com>
wrote:

>>>>> $query = "mysql_fetch_array($id)";
>>>>> $sql = ("UPDATE familie SET Fornavn='".$_POST["Fornavn"]."',
>>>>> Mellemnavn='".$_POST["Mellemnavn"]."', Efternavn='".$_POST["Efternavn"]."',
>>>>> Postnr='".$_POST["Postnr"]."', Bynavn='".$_POST["Bynavn"]."', Telefon='".$_POST["Telefon"]."',
>>>>> Mobil='".$_POST["Mobil"]."', Mail='".$_POST["Mail"]."', Foedseldag='".$_POST["Foedseldag"]."'
>>>>> WHERE id='".$_post["id"]." ' ");
>>>>> include 'sql_closedb.php';
>[snip]
>
>if ( mysql_query($query)) { echo "Posten er opdateret"; }
>else { echo "Fejl ved opdatering : ".mysql_error(); }
>
>Oventående if sætning giver denne fejl:
>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 'mysql_fetch_array()' at line 1
>Men jeg kan ikke rigtig se syntax-fejlen. Server version er 5.2.0-8

$query har du i ovenstående sat til 'mysql_fetch_array($id)' - det er
ikke en gyldig SQL-forespørgsel.

Du vil i stedet køre den SQL-førespørgsel du har gemt i $sql.

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
Gartneriet - http://www.gartneriet.dk/

Lars Andersen (02-02-2008)
Kommentar
Fra : Lars Andersen


Dato : 02-02-08 22:43

>"Mads Lie Jensen" <mads@gartneriet.dk> skrev i meddelelsen
> On Sun, 27 Jan 2008 16:50:10 +0100, "Lars Andersen" <lha@besked.com>
> wrote:
>
>>>>>> $query = "mysql_fetch_array($id)";
>>>>>> $sql = ("UPDATE familie SET Fornavn='".$_POST["Fornavn"]."',
>>>>>> Mellemnavn='".$_POST["Mellemnavn"]."', Efternavn='".$_POST["Efternavn"]."',
>>[snip]
>>
>>if ( mysql_query($query)) { echo "Posten er opdateret"; }
>>else { echo "Fejl ved opdatering : ".mysql_error(); }
>>
>>Oventående if sætning giver denne fejl:
>>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 'mysql_fetch_array()' at line 1
>>Men jeg kan ikke rigtig se syntax-fejlen. Server version er 5.2.0-8
>
> $query har du i ovenstående sat til 'mysql_fetch_array($id)' - det er
> ikke en gyldig SQL-forespørgsel.
>
> Du vil i stedet køre den SQL-førespørgsel du har gemt i $sql.

Har fundet fejlen:

$id=$_POST['post_id'];
$Fornavn=$_POST['Fornavn'];
$Mellemnavn=$_POST['Mellemnavn'];
$Efternavn=$_POST['Efternavn'];
$Adresse=$_POST['Adresse'];
$Postnr=$_POST['Postnr'];
$Bynavn=$_POST['Bynavn'];
$Telefon=$_POST['Telefon'];
$Mobil=$_POST['Mobil'];
$Mail=$_POST['Mail'];
$Foedseldag=$_POST['Foedseldag'];

include 'sql_config.php';
include 'sql_opendb.php';

$sql = "update familie SET Fornavn='$Fornavn', Mellemnavn='$Mellemnavn', Efternavn='$Efternavn',
Adresse='$Adresse', Postnr='$Postnr', Bynavn='$Bynavn', Telefon='$Telefon', Mobil='$Mobil',
Mail='$Mail', Foedseldag='$Foedseldag' WHERE id=$id" OR DIE (mysql_error());
mysql_query($sql);

include 'sql_closedb.php';
echo "Posten er opdateret";

Mvh. Lars.



Leonard (27-01-2008)
Kommentar
Fra : Leonard


Dato : 27-01-08 11:45

On Sun, 27 Jan 2008 02:01:44 +0100, Martin wrote:

> Brug altid mysql_query(....) OR DIE (mysql_error());

Jeg bruger altid:

$select = "...";
$result = mysql_query($select) or exit("Errorline: ".__LINE__."<br
/>$select<br />".mysql_error());

Så får jeg både at vide hvor det er galt, hvad der er galt og hvad det
er jeg forsøger at gøre. Meget nemt at opdage og rette fejl.

--
Leonard
King Hauler sælges: http://leonard.dk/tilsalg/kh.php

Birger (27-01-2008)
Kommentar
Fra : Birger


Dato : 27-01-08 13:13

"Leonard" <piper28a@gmail.invalid> skrev i en meddelelse
news:1dyrnd7yq74iz.11jzh5kowv30f$.dlg@40tude.net...
> On Sun, 27 Jan 2008 02:01:44 +0100, Martin wrote:
>
>> Brug altid mysql_query(....) OR DIE (mysql_error());
>
> Jeg bruger altid:
>
> $select = "...";
> $result = mysql_query($select) or exit("Errorline: ".__LINE__."<br
> />$select<br />".mysql_error());
>
> Så får jeg både at vide hvor det er galt, hvad der er galt og hvad det
> er jeg forsøger at gøre. Meget nemt at opdage og rette fejl.
>


Det svarer sådan nogenlunde til PHP's egne meddelelser om fejl/advarsler..
Det kommer måske an på udbyder ?


Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt hurtigt og billigt. Daglig
opdatering.



Leonard (27-01-2008)
Kommentar
Fra : Leonard


Dato : 27-01-08 14:15

On Sun, 27 Jan 2008 13:12:50 +0100, Birger wrote:

> Det svarer sådan nogenlunde til PHP's egne meddelelser om fejl/advarsler..

PHP giver ikke nogen fejlmeddelelse om at et myqsl-kald fejler i
mysql-delen, så, nej det er ikke det samme.

> Det kommer måske an på udbyder ?

PHP kan indstilles til at vise mange forskellige grader af fejl, på min
egen server vises alle fejl, mens der på mit webhotel intet vises.

--
Leonard
King Hauler sælges: http://leonard.dk/tilsalg/kh.php

Birger (28-01-2008)
Kommentar
Fra : Birger


Dato : 28-01-08 08:11

"Leonard" <piper28a@gmail.invalid> skrev i en meddelelse
news:12wgsd71yic5u$.zzuxmrpma6i9.dlg@40tude.net...
> On Sun, 27 Jan 2008 13:12:50 +0100, Birger wrote:
>
>> Det svarer sådan nogenlunde til PHP's egne meddelelser om
>> fejl/advarsler..
>
> PHP giver ikke nogen fejlmeddelelse om at et myqsl-kald fejler i
> mysql-delen, så, nej det er ikke det samme.
>
>> Det kommer måske an på udbyder ?
>
> PHP kan indstilles til at vise mange forskellige grader af fejl, på min
> egen server vises alle fejl, mens der på mit webhotel intet vises.
>


Jeg kan slå PHP fejl/advarsler til eller fra hos udbyderen (one.com).
Slået fra, får jeg ingenting - slået til, får jeg alle - også mySQL.


Birger
-----
http://bbsorensen.dk
http://varmeretter.dk - hverdagsmad. Sundt, nemt hurtigt og billigt. Daglig
opdatering.



Peter Brodersen (28-01-2008)
Kommentar
Fra : Peter Brodersen


Dato : 28-01-08 15:47

On Mon, 28 Jan 2008 08:11:01 +0100, "Birger" <sdc@bbsorensen.com>
wrote:

>Jeg kan slå PHP fejl/advarsler til eller fra hos udbyderen (one.com).
>Slået fra, får jeg ingenting - slået til, får jeg alle - også mySQL.

mysql_query() giver dog i sig selv ingen fejl eller notice, hvis
forespørgslen er ugyldig, men returnerer blot FALSE.

Hvis der ikke findes nogen forbindelse til en database, vil man dog få
en warning.

--
- Peter Brodersen
Kendt fra Internet

Martin (27-01-2008)
Kommentar
Fra : Martin


Dato : 27-01-08 15:02

Leonard wrote:
> On Sun, 27 Jan 2008 02:01:44 +0100, Martin wrote:
>
>> Brug altid mysql_query(....) OR DIE (mysql_error());
>
> Jeg bruger altid:
>
> $select = "...";
> $result = mysql_query($select) or exit("Errorline: ".__LINE__."<br
> />$select<br />".mysql_error());

Nu bruger jeg heller ikke bare lige en die( mysql_error() ), men det er
ihvertfald bedre at bruge denne istedet for ingenting :)

Jeg bruger somreglen trigger_error, for så kan jeg bruge PHPs error
handling til alt. (Hvis ikke der bliver bruge PEARs error handling)

For i produktionsmæssig tilstand er det jo ikke så rart at kunderne får
en direkte fejlkode, men bedre med bare en "Der skete desværre en fejl,
supporten er allerede blevet kontaktet blablabla"

også sætter man så PHPs error handling til at smide en mail til
supporten eller hvad man nu har lyst til :)


>
> Så får jeg både at vide hvor det er galt, hvad der er galt og hvad det
> er jeg forsøger at gøre. Meget nemt at opdage og rette fejl.
>

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408191
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste