Avatar billede mahuni Nybegynder
27. juni 2004 - 22:29 Der er 8 kommentarer

2 mysql_queries i træk

Jeg har et script, med 2 mysq_queries i træk, mit spørgsmål er så om det er derfor jeg får en fejl, eller om det er noget andet... Her kommer det:

if ($sletid){
$slet = mysql_query("DELETE FROM `nyheder` WHERE `id` = '$sletid' LIMIT 1");
echo "Nyheden er slettet";
}
else
{
$foresp = mysql_query("SELECT * FROM nyheder ORDER BY id DESC LIMIT 0,80");
while ($data = mysql_fetch_array($foresp)){
$id = $data[0];
$overskrift = $data[1];
$nyhed = $data[2];
$forfatter = $data[3];
}
$nyhedvis = substr($nyhed,0,255);

echo "$id \t $overskrift \t $nyhedvis \t af $forfatter  <a href=nyhed.php?retid=$id>Ret</a> <a href=nyhed.php?sletid=$id>Slet</a><br><br>";
}
Avatar billede dadane Novice
27. juni 2004 - 22:32 #1
Nej du må gerne lave flere MySQL queries i samme script, - og også gerne lige efter hinanden.

Hvilken fejl får du?
Avatar billede jaw Nybegynder
27. juni 2004 - 22:32 #2
Det er der ikke noget galt i, men prøv:

$foresp = mysql_query("SELECT * FROM nyheder ORDER BY id DESC LIMIT 0,80") or die(mysql_error());
Avatar billede dadane Novice
27. juni 2004 - 22:33 #3
Iøvrigt - når du nu alligevel bruger mysql_fetch_array hvorfor så ikke bruge feltnavnene $data['id'], $data['navn'] etc. i stedet for det der $data[0], $data[1] halløj?
Avatar billede mahuni Nybegynder
27. juni 2004 - 22:33 #4
Den viser kun en nyhed i anden query... Derfor troede jeg at det kunne skyldes at jeg har LIMIT højere oppe...
Avatar billede dadane Novice
27. juni 2004 - 22:35 #5
Endeligt, - hvorfor bladre du hele dit datasæt igennem blot for at overskrive data med det næste?
Der sker jo intet udover at du sætter nogle variable (som snart bliver slettet af de næste) i din while.
Avatar billede dadane Novice
27. juni 2004 - 22:35 #6
Flyt de to sidste linjer op over den næstesidste }
Avatar billede erikjacobsen Ekspert
27. juni 2004 - 22:36 #7
if ($sletid){
$slet = mysql_query("DELETE FROM `nyheder` WHERE `id` = '$sletid' LIMIT 1");
echo "Nyheden er slettet";
}
else
{
$foresp = mysql_query("SELECT * FROM nyheder ORDER BY id DESC LIMIT 0,80");
while ($data = mysql_fetch_array($foresp)){
$id = $data[0];
$overskrift = $data[1];
$nyhed = $data[2];
$forfatter = $data[3];

$nyhedvis = substr($nyhed,0,255);

echo "$id \t $overskrift \t $nyhedvis \t af $forfatter  <a href=nyhed.php?retid=$id>Ret</a> <a href=nyhed.php?sletid=$id>Slet</a><br><br>";
}
}
Avatar billede dadane Novice
27. juni 2004 - 22:37 #8
altså som:

if ($sletid){
  $slet = mysql_query("DELETE FROM `nyheder` WHERE `id` = '$sletid' LIMIT 1");
  echo "Nyheden er slettet";
}
else
{
  $foresp = mysql_query("SELECT * FROM nyheder ORDER BY id DESC LIMIT 0,80");
  while ($data = mysql_fetch_array($foresp)){
    $id = $data[0];
    $overskrift = $data[1];
    $nyhed = $data[2];
    $forfatter = $data[3];

    $nyhedvis = substr($nyhed,0,255);

    echo "$id \t $overskrift \t $nyhedvis \t af $forfatter  <a href=nyhed.phpretid=$id>Ret</a> <a href=nyhed.php?sletid=$id>Slet</a><br><br>";
  }

}

Jeg har indrykket så det er lidt lettere at se hvad der sker
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