Avatar billede hadi2003 Nybegynder
17. juni 2004 - 19:49 Der er 11 kommentarer

forkllaring af en php og mysql kode

Jeg ved ikke om der er nogen der kan hjælpe mig, jeg forstår ikke hvordan  følgnede php mysql kode virker, jeg ønsker en detaljeret beskrivelse linie for linie. jeg har ikke så meget forstand på php programmering , hvad betyde query og res og res 1 og res2 feks...kan i oversætte koden til mig..tak.. det haster

<?

$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());



?>
Avatar billede muddi Praktikant
17. juni 2004 - 20:20 #1
Så er der kommet kommentarer til. Jeg har rettet en fejl. I dit oprindelige script, er disse to variable nemlig ikke de samme:
$kundeid og $KundeID!!!


<?
// Variablen $CPR modtages fra en formular på foregående side
// $_POST indeholder et array med alle variabler der er "Postet" til siden.
// Der findes også "Get", og hvornår du skal bruge Post eller Get afhænger af
// om formularen der sender data har method="post" eller method="get".
// Navnet på variablen afhænger af navnet på feltet. Her er det name="CPR"
$CPR= ($_POST['CPR']);

// Det samme som ovenstående, her er det bare et felt der har name="filmID"
$filmID = ($_POST['filmID']);

// Der tilføjes slashes for at uskadeliggøre alle "'" (apostroffer),
// da de har en særlig betydning i SQL!!
// Læs mere her http://dk.php.net/addslashes
$cpr= addslashes($_POST['CPR']);
$filmid = addslashes($_POST['filmID']);

// variablen $KundeID sætte til NULL, som betyder - "ingenting"!
// Null er ikke det samme som en tom streng "" eller 0!
$KundeID = null;

// Slå brugeren op.
// Der oprettes en forbindelse til MySQL-serveren der kører
// på adressen "localhost", med brugernavnet "root" og password ""
// Hvis du er på et webhotel skal dette måske ændres!
// root-kontoen er som oftest ikke tilgængelig!
// or die() giver en fejl, hvis der ikke kan forbindes til serveren!
mysql_connect("localhost", "root", "") or die ("Could not Login ot sql");

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

// Her vælger vi databasen videobutikken eller også skriver vi en fejlmeddelelse
// se http://dk.php.net/mysql_select_db
mysql_select_db ("videobutikken")or die ("Could not connect to DB");

// Her sender vi en forespørgsel til databasen, hvor vi ønsker at få
// alle KundeID fra tabellen kunder hvor kundens CPRnr = variablen $cpr
// se http://dk.php.net/mysql_query
$res=mysql_query("SELECT KundeID FROM kunder WHERE kunder.CPR = '$cpr'");

// Hvis vi har fået nogen resultater (skulle kun give ét),
// så bliver $kundeid = resultatet ($row[0])
if( $res ) {
  $row = mysql_fetch_row($res); // se http://dk.php.net/mysql_fetch_row
  if( $row ) {
    $KundeID = $row[0];
  }
}

// Ellers udskrives en fejl!
// se http://dk.php.net/mysql_error
else {
  die("Databasefejl: " . mysql_error());
}

// Vi ser om vi fandt nogen kundeoplysninger
if( $KundeID === null ) {

  // Hvis ikke udskrives nedenstående i browseren
  print "Kundeinformationer er ikke fundet.";

  // Og vi stopper afviklingen af scriptet
  // se http://dk.php.net/exit
  exit;
}

// Tjek om filmen er udleget
// Her henter vi feltet 1 fra tabellen kunder hvor feltet filmID er lig
// variablen $filmID, hvis det går galt udskrives forespørgslen
// se http://dk.php.net/die
$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
//---------------------
// Her opdateres feltet filmID i tabellen kunder hvor feltet KundeID er lig
// variablen $KundeID - hvis noget går galt udskrives en fejl med or die()
$res = mysql_query("UPDATE kunder SET filmID='$filmID' WHERE KundeID='$KundeID'") or die("Databasefejl: " . mysql_error());
?>
Avatar billede muddi Praktikant
17. juni 2004 - 20:20 #2
Tag i øvrigt et kig på www.webcafe.dk som har en god php-tutorial!
Avatar billede Syska Mester
17. juni 2004 - 20:53 #3
hvordan kan det haste så meget?
Avatar billede hadi2003 Nybegynder
17. juni 2004 - 21:58 #4
tak for hjælpen.. hvad med den kode,,den sidste jeg har problemer med,,mangler bare en forklaring på samme måde

<?

$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());



?>

hvad med e k$CPR= ($_POST['CPR']);
$filmID = ($_POST['filmID']);



$cpr= addslashes($_POST['CPR']);
$filmid = addslashes($_POST['filmID']);
$kundeid = null;
oder der mangler forklaring...1000 tak
Avatar billede hadi2003 Nybegynder
17. juni 2004 - 22:08 #5
og hvilke funktioner har res $res og $res =mysql_querry
Avatar billede hadi2003 Nybegynder
17. juni 2004 - 22:53 #6
er du der
Avatar billede Slettet bruger
18. juni 2004 - 00:44 #7
Alle steder, hvor der står et $ med nogle bogstaver og tal efter, er der tale om variabler.

$res=mysql_query(...);
betyder at den spørger databasen om noget og lægger en reference til svaret i variablen $res. Den variable skal så bruges, når man senere skal hente de enkelte rækker fra databasen.

$row = mysql_fetch_row($res);
Her hentes en række fra databasen fra den forespørgsel, man har gemt i $res.

For både mysql_query() og mysql_fetch_row() gælder det, at de returnere værdien falsk, hvis der sker fejl.
Avatar billede hadi2003 Nybegynder
18. juni 2004 - 07:40 #8
sorry jeg kom til at skrive den samme kode igen, det var meningen at jeg skulle indsætte en anden kode, tak for din hjælp ven.
Avatar billede muddi Praktikant
18. juni 2004 - 10:21 #9
Sorry, jeg var ikke online så lang tid i går... Jeg håber du kunne bruge det. Du er forresten kommet til at lægge et svar selv ;)
Avatar billede muddi Praktikant
21. juni 2004 - 09:14 #10
Er du tilfreds med svaret?
Avatar billede hadi2003 Nybegynder
21. juni 2004 - 11:11 #11
ja.. 1000 tak for dit svar, ved du noget om ssl, jeg mangler en besrivlese om hvordan kommunikation forgår mellem klient maskine over nettet  til en server ved ssl og certifikat. altså hvad det sker fra det øjeblik clienten kalder op på serveren.... gerne hvis du kender nogle links der beskriver kommunikation... endnu en gang tak
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