/ 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
optimering af mysql kode
Fra : Ronaldo


Dato : 21-11-05 15:44

Jeg har en film database som hvor det er muligt at oprette film. Det er en
simpel html form som sender data videre til min php side. Det er muligt at
skrive hvem der har instrueret en film under oprettelse, og programmet skal
derefter automatisk gå ind og tjekke om instruktøreren eksisterer og oprette
hvis denne ikke gør.

Jeg har en seperat tabel til instruktion, så når jeg inserter en film, så
skal jeg bruge instruktionID værdien. Jeg får $instruktion ind fra min form.

Jeg har det problem at hvis $instruktion ikke er lig forespørgsel og
derefter skal oprettes, så skal jeg bruge ID'et fra den nylig oprettede
instruktør. Hvordan får jeg fat i det uden at skulle bruge endnu en SELECT
sætning?

Tak for hjælpen. Mvh. Ronaldo

Kode:

$query = "SELECT instruktionID,instruktion FROM instruktion WHERE
instruktion = '$instruktion'";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result)) {
$value = $row["instruktionID"];
$name = $row["instruktion"];
}

if ($name == $instruktion) {
$instruktion = $value;
}
else {
$query = "INSERT INTO instruktion SET instruktion = '$instruktion'";
$result = mysql_query($query);
}



 
 
Jesper H (21-11-2005)
Kommentar
Fra : Jesper H


Dato : 21-11-05 16:02

Hvis jeg har forstået dit spørgsmål korrekt, så skal du vide
hvilken ID, den nyligt oprettede instruktion (instruktør?) har fået
automatisk tildelt?
Du kan lige efter dit insert-query er blevet kørt bruge kommandoen
mysql_insert_id() (følgende eksempel er taget fra dk2.php.net):
<?
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>
Den id kan du jo så læse ud i en variabel, og bruge den i din insert
af filmen.

--
Mvh
Jesper, webmaster for http://fdf.dk/landsdel1/


Ronaldo (21-11-2005)
Kommentar
Fra : Ronaldo


Dato : 21-11-05 16:34

Det var lige præcis det jeg ledte efter. Du er for sej Jesper. Tak skal du
have!



Henrik Brandt (25-11-2005)
Kommentar
Fra : Henrik Brandt


Dato : 25-11-05 18:49

Jesper H wrote:
> Hvis jeg har forstået dit spørgsmål korrekt, så skal du vide
> hvilken ID, den nyligt oprettede instruktion (instruktør?) har fået
> automatisk tildelt?
> Du kan lige efter dit insert-query er blevet kørt bruge kommandoen
> mysql_insert_id() (følgende eksempel er taget fra dk2.php.net):

Den er efter min opfattelse bare ikke så god, hvis der er mange
samtidige oprettelser...
Så vil der være en risiko for at den returnerer et andet ID end det man
forventer, da der så kan være blevet oprettet en ny i mellemtiden...

Det er et problem jeg er rendt ind i ved flere scripting- og
programmeringssprog, som jeg kun har fået løst ved at lave en SELECT
bagefter jeg har oprettet den.

- Henrik

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste