Avatar billede farsinsen Nybegynder
10. april 2001 - 11:07 Der er 9 kommentarer og
1 løsning

Hjælp til forespørglser...

Har to problermer ... der første kommer her!

Jeg har en tabel med kunde opysninger og en andern tabel [jtpostnr] med hhv. postnr og bynavn!

Dataene fra tabellen [tjkunde] med kundeoplysninger henter jeg således:

$sql = \"SELECT * FROM jtkunde WHERE id=$id\";

aabn_forbindelse_og_vaelgdb();
$resultatet = mysql_query($sql);
while ($row = mysql_fetch_array($resultatet)) {
$org = $row[org];
$kpers = $row[kpers];
$adr = $row[adr];
$postnr = $row[postnr];
$tlf = $row[tlf];
$fax = $row[fax];
$email = $row[email];
$www = $row[www];
$opr = $row[opr];
}
luk_forbindelse();

Det virker fint, jeg kan printe alle variabler hvor på jeg vil ... ud fra postnr. skulle jeg gerne have det rigtige bynavn frem, derfor har jeg lavet følgende ... om det er helt hen i vejret ved jeg ikke ... men jeg kan i hvertfald ikke printe $by som jeg gerne ville!

$sql2 = \"SELECT * from jtpostnr WHERE postnr=$postnr\";

aabn_forbindelse_og_vaelgdb();
$res2 = mysql_query($sql2);
while ($row2 = mysql_fetch_array($res2)) {
$by = $row2[bynavn];
}
luk_forbindelse();

Forespørgslen må på en eller anden måde virke, for et postnr i [tjkunde] specificeret til noget der ikke findes i postnr [jtpostnr] får jeg en fejlmelding på siden!

******* PROBLEM II **************************

Jeg har en side til at opdatere oplysningerne i [jtkunde] ... Den henter oplysningerne på samme måde som ovenstående ... disse sættes som value i en form, min problem er bare hvordan jeg får skrevet den nye variabel op i DB\'en der hvor den gamle står ... nogen der kan give et hint???


Avatar billede spiri Nybegynder
10. april 2001 - 11:16 #1
Hvis du har de 2 ovenstående tabeller, hvorfor laver du ikke forespørgslen i én sætning. F.eks:

$sql = \"SELECT * FROM jtkunde k left join jtpostnr p on k.postnr=p.postnr WHERE k.id=$id\";
Avatar billede farsinsen Nybegynder
10. april 2001 - 11:31 #2
Det har jeg så prøvet, og jeg får det samme resultat som før, altså ingen bynavn ... her er scriptet ...

<?php

require(\"mysql.php\");

echo \"<html><head><title></title><link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"stil.css\\\"></head><body>\";

$id = $HTTP_GET_VARS[\"id\"];

$sql = \"SELECT * FROM jtkunde k left join jtpostnr p on k.postnr=p.postnr WHERE k.id=$id\"; 

aabn_forbindelse_og_vaelgdb();
$resultatet = mysql_query($sql);
while ($row = mysql_fetch_array($resultatet)) {
$org = $row[org];
$kpers = $row[kpers];
$adr = $row[adr];
$postnr = $row[postnr];
$tlf = $row[tlf];
$fax = $row[fax];
$email = $row[email];
$www = $row[www];
$opr = $row[opr];
$bynavn = $row[bynavn];
}
luk_forbindelse();

$menu = \"<p />
        <table width=\\\"200\\\" border=\\\"0\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\">
              <tr>
                <td width=\\\"95\\\"><a href=\\\"retkunde.php?id=$id\\\">RET DATA</a></td>
                <td width=\\\"10\\\">&nbsp;</td>
                <td width=\\\"95\\\"><a href=\\\"godkendsletkunde.php?id=$id\\\">SLET KUNDE</a></td>
              </tr>
        </table>\";

?>

<table width=\"360\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"left\">
<tr>
    <td width=\"150\">Organisation:</td>
    <td width=\"10\">&nbsp;</td>
    <td width=\"200\"><?php echo $org; ?></td>
</tr>
<tr>
    <td width=\"150\">Kontaktperson:</td>
    <td width=\"10\">&nbsp;</td>
    <td width=\"200\"><?php echo $kpers; ?></td>
</tr>
<tr>
    <td width=\"150\">Adresse:</td>
    <td width=\"10\">&nbsp;</td>
    <td width=\"200\"><?php echo $adr; ?></td>
</tr>
<tr>
    <td width=\"150\">Post nr.:</td>
    <td width=\"10\">&nbsp;</td>
    <td width=\"200\"><?php echo $postnr; ?></td>
</tr>
<tr>
    <td width=\"150\">By:</td>
    <td width=\"10\">&nbsp;</td>
    <td width=\"200\"><?php echo $bynavn; ?></td>
</tr>
<tr>
    <td width=\"150\">Tlf. nr.:</td>
    <td width=\"10\">&nbsp;</td>
    <td width=\"200\"><?php echo $tlf; ?></td>
</tr>
<tr>
    <td width=\"150\">Fax. nr.:</td>
    <td width=\"10\">&nbsp;</td>
    <td width=\"200\"><?php echo $fax; ?></td>
</tr>
<tr>
    <td width=\"150\">E-mail:</td>
    <td width=\"10\"></td>
    <td width=\"200\"><a href=\"mailto:<?php echo $email; ?>\"><?php echo $email; ?></a></td>
</tr>
<tr>
    <td width=\"150\">Url.:</td>
    <td width=\"10\">&nbsp;</td>
    <td width=\"200\"><a href=\"http://<?php echo $www; ?>\" target=\"_blank\"><?php echo $www; ?></a></td>
</tr>
<tr>
    <td width=\"150\">&nbsp;</td>
    <td width=\"10\">&nbsp;</td>
    <td width=\"200\">&nbsp;</td>
</tr>
<tr>
    <td width=\"150\">Oprettet:</td>
    <td width=\"10\">&nbsp;</td>
    <td width=\"200\"><?php echo $opr; ?></td>
</tr>
</table>

<?php

echo \"<p /> $menu\";

echo \"</body></html>\";

?>

Hvad der er galt fatter jeg ikke!
Avatar billede spiri Nybegynder
10. april 2001 - 11:34 #3
Forresten vil dine variabler se sådan her ud:

aabn_forbindelse_og_vaelgdb();
$resultatet = mysql_query($sql);
while ($row = mysql_fetch_array($resultatet)) {
$org = $row[org];
$kpers = $row[kpers];
$adr = $row[adr];
$postnr = $row[postnr];
$tlf = $row[tlf];
$fax = $row[fax];
$email = $row[email];
$www = $row[www];
$opr = $row[opr];
$bynavn = $row[bynavn];
}
luk_forbindelse();


Til Problem II skal du bruge en UPDATE:

mysql_query(\"UPDATE jtkunde SET org=\'$org\', pers=\'$pers\', adr=\'$adr\' WHERE id=\'$id\'\");

Fyld selv resten på.
Avatar billede spiri Nybegynder
10. april 2001 - 11:37 #4
Hvis du skal kun hente en person af gangen er det så ikke nemmere IKKE at bruge en whileløkke:

aabn_forbindelse_og_vaelgdb();
$resultatet = mysql_query($sql);
$row = mysql_fetch_array($resultatet);
$org = $row[org];
$kpers = $row[kpers];
$adr = $row[adr];
$postnr = $row[postnr];
$tlf = $row[tlf];
$fax = $row[fax];
$email = $row[email];
$www = $row[www];
$opr = $row[opr];
$bynavn = $row[bynavn];

luk_forbindelse();



Avatar billede farsinsen Nybegynder
10. april 2001 - 13:22 #5
Siden hvorpå jeg retter kundedata ser sån her ud:

<?php

require(\"mysql.php\");

echo \"<html><head><title></title><link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"stil.css\\\"></head><body>\";

$id = $HTTP_GET_VARS[\"id\"];

$sql = \"SELECT * FROM jtkunde WHERE id=$id\";

aabn_forbindelse_og_vaelgdb();
$resultatet = mysql_query($sql);
while ($row = mysql_fetch_array($resultatet)) {
$glorg = $row[org];
$glkpers = $row[kpers];
$gladr = $row[adr];
$glpostnr = $row[postnr];
$gltlf = $row[tlf];
$glfax = $row[fax];
$glemail = $row[email];
$glwww = $row[www];
}
luk_forbindelse();

?>

<form action=\"opdaterkunde.php\" method=\"post\">
 
  <table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"357\">
  <tr>
      <td align=\"right\">
    Organisation:
    </td>
    <td>
    <input type=\"text\" name=\"org\" size=\"50\" maxsize=\"100\" value=\"<?php echo $glorg; ?>\">
    </td>
  </tr>
 
  <tr>
    <td align=\"right\">
    Kontaktperson:
    </td>
    <td>
    <input type=\"text\" name=\"kpers\" size=\"50\" maxsize=\"100\" value=\"<?php echo $glkpers; ?>\">*
    </td>
  </tr>
 
  <tr>
    <td align=\"right\">
    Adresse:
    </td>
    <td>
    <input type=\"text\" name=\"adr\" size=\"50\" maxsize=\"50\" value=\"<?php echo $gladr; ?>\">*
    </td>
  </tr>
 
  <tr>
    <td align=\"right\">
    Post nr.:
    </td>
    <td>
    <input type=\"text\" name=\"postnr\" size=\"4\" maxsize=\"4\" value=\"<?php echo $glpostnr; ?>\">*
    </td>
  </tr>
 
  <tr>
    <td align=\"right\">
    TLF nr.:
    </td>
    <td>
    <input type=\"text\" name=\"tlf\" size=\"8\" maxsize=\"8\" value=\"<?php echo $gltlf; ?>\">*
    </td>
  </tr>
 
  <tr>
    <td align=\"right\">
    Evt. FAX nr.:
    </td>
    <td>
    <input type=\"text\" name=\"fax\" size=\"8\" maxsize=\"8\" value=\"<?php echo $glfax; ?>\">
    </td>
  </tr>
 
  <tr>
    <td align=\"right\">
    Evt. Email:
    </td>
    <td>
    <input type=\"text\" name=\"email\" size=\"50\" maxsize=\"100\" value=\"<?php echo $glemail; ?>\">
    </td>
  </tr>
 
  <tr>
    <td align=\"right\">
    Evt. URL:
    </td>
    <td>
    <input type=\"text\" name=\"www\" size=\"50\" maxsize=\"100\" value=\"<?php echo $glwww; ?>\">
    </td>
  </tr>
 
  <tr>
    <td>   
    </td>
    <td>
    Felter markeret med * skal udfyldes
    </td>
  </tr>
 
  <tr>
      <td>
    </td>
    <td>
    <input type=\"submit\" value=\"Post\">
    </td>
  </tr>
  </table>
 
</form>


<?php

echo \"</body></html>\";

?>

Er det ikke rigtig nok at value skal være <?php echo $gammelvariabel; ?> eller bliver indholdet af $gammelvariabel så bare sendt videre som $nyvariabel?

Anyway opdater siden ser sån her ud:

<?php

require(\"mysql.php\");

function fejl($fejl) {

    $fejlmelding = \"<ul>\";

    for($i=0;$i<count($fejl);$i++) {
        $fejlmelding .= \"<li>\". $fejl[$i];
    }

    $fejlmelding .= \"</ul>\";

    echo \"<html><head><title></title></head><body>Der er flg. fejl i det indtastede<br>\";
       
    echo $fejlmelding;
   
    echo \"</body></html>\";
    exit;

}

function opret($org, $kpers, $adr, $postnr, $tlf, $fax, $email, $www) {
    $sql = \"UPDATE jtkunde SET org=\'$org\', kpers=\'$kpers\', adr=\'$adr\', postnr=\'$postnr\', tlf=\'$tlf\', fax=\'$fax\', email=\'$email\', www=\'$www\' WHERE id=\'$id\'\";

    aabn_forbindelse_og_vaelgdb();
    sql_spoerg($sql);
    luk_forbindelse();

}

if(!ereg(\"[A-z0-9]+\", $kpers)) {

    $fejl[] = \"Du har ikke indtastet nogen kontaktperson.\";

}

if(!ereg(\"[A-z0-9]+\", $adr)) {

    $fejl[] = \"Du har ikke indtastet nogen adresse.\";

}

if(!ereg(\"[0-9]+\", $postnr)) {

    $fejl[] = \"Du har ikke indtastet noget post nr., eller det indtastede indeholder bogstaver.\";
   
}

if(!ereg(\"[0-9]+\", $tlf)) {

    $fejl[] = \"Du har ikke indtastet noget tlf nr., eller det indtastede indeholder bogstaver.\";

}

if(count($fejl) > 0) {
    fejl($fejl);
}

opret(addslashes($org),addslashes($kpers),addslashes($adr),addslashes($postnr),addslashes($tlf),addslashes($fax),addslashes($email),addslashes($www));

header(\"Location: oversigt.php\");

?>


Hvad gør jeg galt?

Peter
Avatar billede spiri Nybegynder
10. april 2001 - 13:33 #6
Jeg skal nok svare, men der går lige 20 min.
Avatar billede spiri Nybegynder
10. april 2001 - 14:37 #7
For det første skal du have $id med i din form. F.eks:
<input type=\"hidden\" name=\"id\" value=\"<? echo $id ?>\">

dernæst skal du også huske at smide $id ind i din funktion:

function opret($org, $kpers, $adr, $postnr, $tlf, $fax, $email, $www, $id)


Og når du kalder funktionen:

opret(addslashes($org),addslashes($kpers),addslashes($adr),addslashes($postnr),addslashes($tlf),addslashes($fax),addslashes($email),addslashes($www),$id);

Prøv det.


Avatar billede spiri Nybegynder
10. april 2001 - 14:39 #8
En anden lille ting:

if(count($fejl) > 0) {
    fejl($fejl);
}

opret(addslashes($org),addslashes($kpers),addslashes($adr),addslashes($postnr),addslashes($tlf),addslashes($fax),addslashes($email),addslashes($www));



...skal vel se såden her ud:

if(count($fejl) > 0) {
    fejl($fejl);
} else {

opret(addslashes($org),addslashes($kpers),addslashes($adr),addslashes($postnr),addslashes($tlf),addslashes($fax),addslashes($email),addslashes($www),$id);

}

Den skal vel ikke køre opdateringen hvis der er fejl i indtastningen!

Avatar billede farsinsen Nybegynder
10. april 2001 - 14:48 #9
Tak det virker ... mail mig på peter@farsinsen.dk hvis du gerne vil ha\' de femtem ekstrapoint ... jeg blev nød til at lukke det andet spm idet det var ULOVLIGT !!!!!
Avatar billede spiri Nybegynder
10. april 2001 - 14:56 #10
Det skal du ikke tænke på.

Du har betalt...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester