Avatar billede hadi2003 Nybegynder
16. juni 2004 - 21:50 Der er 14 kommentarer

php og mysql

Hvorfor virker den php kode ikke, jeg får kun den sætning at kunde oplysninger findes ikke, nåer kunden bliver identificeret ved at tast sit cpr og bliver tjekket i kinder databasen, så det film nr han indtaster bliver tilføjet hans navn, er der nogen der kan beskrive linie for linie hvad koden gør linie for linie fra starten af

<?

$CPR= ($_POST['CPR']);
$filmID = ($_POST['filmID']);



$cpr= addslashes($_POST['CPR']);
$filmid = addslashes($_POST['filmID']);
$kundeid = null;

// Slå brugeren op.
mysql_connect("localhost", "root", "") or die ("Could not Login ot sql");

//print ("Connected successfully<br><br>");

mysql_select_db ("videobutikken")or die ("Could not connect to DB");

$res=mysql_query("SELECT KundeID FROM kunder WHERE kunder.CPR = '$CPR'");
if( $res ) {
  $row = mysql_fetch_row($res);
  if( $row ) {
    $KundeID = $row[0];
  }
}
else {
  die("Databasefejl: " . mysql_error());
}

if( $kundeid === null ) {
  print "Kundeinformationer er ikke fundet.";
  exit;
}

// Tjek om filmen er udleget

$res = mysql_query("SELECT 1 FROM kunder WHERE filmID = '$filmid'") or die(mysql_query());

if( mysql_fetch_row($res) ) { // Hvis den er udlånt får vi een række, og kommer derfor ind i denne if-sætning
  echo "Filmen er desværre udlånt";
  exit;
}

// Her burde der måske være et tjek, om det er et rigtigt filmid der
// er givet til scriptet, således at man ikke kan leje ikke-eksisterende
// film.

// Opdatér udlaan

$res = mysql_query("UPDATE kunder SET filmID='filmID' WHERE KundeID='$KundeID'") or die("Databasefejl: " . mysql_error());

if( $res && mysql_affected_rows($res) )
  print "God fornøjelse";
else
  print "..";
?>

jeg ønsker en detaljeret forklaring af hver eneste linie i koden, jeg takker meget, det haster
Avatar billede erikjacobsen Ekspert
16. juni 2004 - 22:08 #1
res=mysql_query("SELECT KundeID FROM kunder WHERE kunder.CPR = '$cpr'");
Avatar billede hadi2003 Nybegynder
16. juni 2004 - 22:11 #2
kan du lige hvis det ik er besværligt forklarer mig eller oversætte til mig hele koden linie for linie. på forhånd tak
Avatar billede erikjacobsen Ekspert
16. juni 2004 - 22:13 #3
Nej.

Men bemærk at du roder rundt med store og små bogstaver i navne andre steder i koden. De skal også rettes.
Avatar billede hadi2003 Nybegynder
16. juni 2004 - 22:15 #4
tak skal du have
Avatar billede hadi2003 Nybegynder
16. juni 2004 - 22:17 #5
men det virker stadigvæk ik, fejl i linie 19, den linie du rettede.....
Parse error: parse error, unexpected '=' in C:\Apache Group\Apache2\htdocs\Videobutik\Kunder\udleej.php on line 19
Avatar billede erikjacobsen Ekspert
16. juni 2004 - 22:28 #6
Ja, du skal lige have $-tegnet med - det forsvandt ved et uheld ;)
Avatar billede hadi2003 Nybegynder
16. juni 2004 - 22:36 #7
fejl i linie 52,, jeg har rettet de små bogstaver
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in C:\Apache Group\Apache2\htdocs\Videobutik\Kunder\udleej.php on line 52
Avatar billede hadi2003 Nybegynder
16. juni 2004 - 22:45 #8
hvad er fejlen , jeg kan ik se nogen fejl i denne linie
Avatar billede erikjacobsen Ekspert
16. juni 2004 - 22:55 #9
Må jeg se hvad der står lige nu?
Avatar billede hadi2003 Nybegynder
16. juni 2004 - 22:58 #10
den er uden parentese og virker ik heller ik når jeg sætter prantese
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in C:\Apache Group\Apache2\htdocs\Videobutik\Kunder\udleej.php on line 52

linie 52
if( $res && mysql_affected_rows($res) ) {
  print "God fornøjelse";
}
else {
  print "..";
    }

?>
Avatar billede erikjacobsen Ekspert
16. juni 2004 - 23:13 #11
Det er nok mere vigtigt hvad der står i linierne lige før ;)

Du skal nok i hvert fald:

$res = mysql_query("UPDATE kunder SET filmID='$filmID' WHERE KundeID='$KundeID'") or die("Databasefejl: " . mysql_error());
Avatar billede hadi2003 Nybegynder
16. juni 2004 - 23:23 #12
jeg har slettet de sidste linier, og det virker nu tak for din hjælp, jeg har bar bru for en linie som skal virker som sidste linie som f.ek. du har lejet film og så filemns navn. kan du hjælpe med det ellers er det i orden, jeg siger 1000 tak
Avatar billede hadi2003 Nybegynder
16. juni 2004 - 23:38 #13
tak,
Avatar billede coderdk Praktikant
17. juni 2004 - 03:09 #14
mysql_affected_rows tager en link-resource, du gav den en query-resource ;) Du kunne bare have lavet mysql_affected_rows( $res ) om til mysql_affected_rows()

:)
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