|
| 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.
>
| |
|
|