Avatar billede t-rex Nybegynder
15. april 2005 - 08:58 Der er 42 kommentarer og
1 løsning

hjælp til mysql

har disse 2 sql kan man ligge dem sammen så det kun er en i stedet for 2 ?

$query = mysql_query("SELECT * FROM small_fotoarkiv") or die ("Fejl X: ".mysql_error());
$pic = mysql_query("SELECT * FROM small_fotoarkiv_pic WHERE small_fotoarkiv = '$row[id]'") or die ("Fejl X: ".mysql_error());
Avatar billede michael_stim Ekspert
15. april 2005 - 09:03 #1
Nej det kanman ikke. Det er 2 forskellige resultater du får jo. Den ene tager alle poster fra tabellen og den anden tager kun bestemte.
Avatar billede michael_stim Ekspert
15. april 2005 - 09:04 #2
Hvad er det du vil have vist, fra tabellen?
Avatar billede t-rex Nybegynder
15. april 2005 - 09:08 #3
jeg skal havde idét og navn ud fra small_fotoarkiv og så skal jeg bruge idét over i small_fotoarkiv_pic til at finde de billeder der hører til det id som kommer fra small_fotoarkiv.
Avatar billede busschou Praktikant
15. april 2005 - 09:08 #4
du kan da bruge UNION
Avatar billede t-rex Nybegynder
15. april 2005 - 09:09 #5
small_fotoarkiv = id, navn

small_fotoarkiv_pic = id(small_fotoarkiv), pic
Avatar billede busschou Praktikant
15. april 2005 - 09:09 #6
$query = "SELECT * FROM small_fotoarkiv";
$pic = "SELECT * FROM small_fotoarkiv_pic WHERE small_fotoarkiv = '$row[id]'";
mysql_query($query" UNION "$pic);
Avatar billede michael_stim Ekspert
15. april 2005 - 09:10 #7
OK, det var mig der så forkert. Troede det var samme tabel du sögte i.
Avatar billede t-rex Nybegynder
15. april 2005 - 09:11 #8
busschou

det har jeg aldrig prøvet at bruge før er det sådan at jeg kan få dig til at skrive hvordan det skal se du ?
Avatar billede busschou Praktikant
15. april 2005 - 09:11 #9
hov nej hovhov
Den første vælger fra en tabel small_fotoarkiv
Den næste sammenligner hele tabellen med et id??
Avatar billede busschou Praktikant
15. april 2005 - 09:12 #10
hvad er det præcist du vil have fra tabellerne?
Avatar billede t-rex Nybegynder
15. april 2005 - 09:16 #11
fra small_fotoarkiv skal jeg bruge idét og navn. som så skal kunne udskrives med et while()

og så skal jeg bruge thumbnail fra small_fotoarkiv_pic hvor tabellen small_fotoarkiv = idét fra small_fotoarkiv.
Avatar billede busschou Praktikant
15. april 2005 - 09:19 #12
ok så i tabellen "small_fotoarkiv_pic" har du et felt "small_fotoarkiv" ?
Bare misvisende når den anden tabel også hedder det samme som feltet
Avatar billede michael_stim Ekspert
15. april 2005 - 09:19 #13
$pic = mysql_query("SELECT * FROM small_fotoarkiv_pic pic, small_fotoarkiv arkiv WHERE arkiv.id = pic.id") or die ("Fejl X: ".mysql_error());
Noget á la dette?
Avatar billede t-rex Nybegynder
15. april 2005 - 09:21 #14
ja lige netop busschou.
Avatar billede busschou Praktikant
15. april 2005 - 09:28 #15
Select small_fotoarkiv.id,small_fotoarkiv.name,small_fotoarkiv_pic.thumb From small_fotoarkiv,small_fotoarkiv_pic Where small_fotoarkiv.id = small_fotoarkiv_pic.id
Avatar billede t-rex Nybegynder
15. april 2005 - 09:43 #16
har lige tilrette den lidt. men hvis jeg skrive den sådan her virker det næsten :
$pic = mysql_query("Select small_fotoarkiv.id,small_fotoarkiv.navn,small_fotoarkiv_pic.thumbnail From small_fotoarkiv,small_fotoarkiv_pic Where small_fotoarkiv.id = small_fotoarkiv_pic.small_fotoarkiv_id") or die ("Fejl X: ".mysql_error());

men nu skal jeg så havde den til kun at tage 1 billed for eller går det galt. når man kører en while().
Avatar billede busschou Praktikant
15. april 2005 - 09:46 #17
Jamen skal du ikke bruge alle sammen?
Når du kører en while så får du jo et billede ad gangen ved at tage $row['pic'] hvor pic er det felt du ønsker
Avatar billede t-rex Nybegynder
15. april 2005 - 09:49 #18
ja det har du jo ret i. så må der ligge en fejl et andet sted.
Avatar billede t-rex Nybegynder
15. april 2005 - 09:54 #19
nej det virker ikke som det skal jeg prøver lige at smide koden :

<table width="530" border="0" cellspacing="0" cellpadding="0"><tr>
<?php
$cells = 4; // Antal celler ved siden af hinanden
$cellcount = 1;

$pic = mysql_query("Select small_fotoarkiv.id,small_fotoarkiv.navn,small_fotoarkiv_pic.thumbnail From small_fotoarkiv,small_fotoarkiv_pic Where small_fotoarkiv.id = small_fotoarkiv_pic.small_fotoarkiv_id") or die ("Fejl X: ".mysql_error());
while($row = mysql_fetch_array($pic)) {
echo "
   
<td width=132>
   
<table width=100% border=0 cellpadding=0 cellspacing=0 class=text>
  <tr>
    <td><input type=checkbox name=checkbox".$row['id']." value=".$row['id'].">
      V&aelig;lg</td>
  </tr>
  <tr>
    <td><table width=94 height=94 border=0 cellpadding=0 cellspacing=0 background=images/picmappe.gif>
      <tr>
        <td align=center valign=middle><table width=80 height=64 border=0 cellpadding=0 cellspacing=0>
          <tr>
            <td><a href=fotoarkiv_oben.php?id=".$row['id']."><img src=images/thumbnail/".$row['thumbnail']." width=80 height=64 border=0></a></td>
          </tr>
        </table></td>
      </tr>
    </table>
    </td>
  </tr>
  <tr>
    <td>
    <table width=94 border=0 cellspacing=0 cellpadding=0 class=text>
        <tr>
          <td><center>&quot;".$row['navn']."&quot;</center></td>
        </tr>
    </table>
    </td>
  </tr>
</table>
   
</td>";
   
   
   
    if ($cellcount == $cells) {
        $cellcount = 0;
        echo "</tr><tr>";
    }
    $cellcount++;
}
while ($cellcount <= $cells) {
    echo "<td width=94></td>";
    $cellcount++;
}
?>
</tr></table>
<?php };?>
Avatar billede busschou Praktikant
15. april 2005 - 09:56 #20
i din query bruger du jo small_fotoarkiv.id
Så du kan ikke bruge $row[id] men derimod $row[small_fotoarkiv.id]...osv
Avatar billede busschou Praktikant
15. april 2005 - 09:57 #21
ellers skal du lave sql om
$pic = mysql_query("Select small_fotoarkiv.id As id,small_fotoarkiv.navn As navn,small_fotoarkiv_pic.thumbnail As thumb From small_fotoarkiv,small_fotoarkiv_pic Where small_fotoarkiv.id = small_fotoarkiv_pic.small_fotoarkiv_id") or die ("Fejl X: ".mysql_error());
---
Så kan benytte felterne id,navn og thumb
Avatar billede Slettet bruger
15. april 2005 - 09:57 #22
Prøv at bruge den sådan her:
Jeg har lige lavet det med a og b, så det er lidt nemmere at gennemskue.

$query = mysql_query("SELECT a.id, a.navn, b.thumbnail FROM small_fotoarkiv a, small_fotoarkiv_pic b WHERE a.id = b.small_fotoarkiv_id") or die(mysql_error());
Avatar billede busschou Praktikant
15. april 2005 - 10:02 #23
Sådan er det jo allerede ;o)
Avatar billede t-rex Nybegynder
15. april 2005 - 10:15 #24
nej den er stadig forkert. der er oprette 5 idér som hedder test1, test2, test3, osv. men den udskrive kun test1 og test2. men hvis man kigger på hvor manger billeder der er eks under test1 er der 5 og det er lige så mange gange som den bliver udskrevet til siden.

http://www.concept4.dk/ronni/test/fotoarkiv.php
Avatar billede busschou Praktikant
15. april 2005 - 10:19 #25
ok så er jeg lost
Avatar billede t-rex Nybegynder
15. april 2005 - 10:29 #26
hehe okay... prøver lige igen. i tabellen small_fotoarkiv er der id=1 - navn=test1, id=2 - navn=test2 osv. i small_fotoarkiv_pic er der 5 billeder som er = med idét 1 og 2 billede der er = med idét 2. det vil sige at hvis vi tager udgang punkt i id 1 og 2 så skulle der kun være 2 biller at se og ikke 7.
Avatar billede busschou Praktikant
15. april 2005 - 10:30 #27
ok så skal du have en Destinct eller Group By på din sql
Avatar billede busschou Praktikant
15. april 2005 - 10:31 #28
send lige din sql som den er pt
Avatar billede t-rex Nybegynder
15. april 2005 - 10:32 #29
okay.
Avatar billede busschou Praktikant
15. april 2005 - 10:32 #30
Skal lige være sikker. Du vil altså kun vise eet af de fem billeder som har id=1 ?
Skal det bare være det første det bedste?..eller
Avatar billede t-rex Nybegynder
15. april 2005 - 10:35 #31
CREATE TABLE `small_fotoarkiv` (
  `id` int(11) NOT NULL auto_increment,
  `navn` varchar(200) default NULL,
  `dato` varchar(200) default NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=17 ;

--
-- Data dump for tabellen `small_fotoarkiv`
--

INSERT INTO `small_fotoarkiv` VALUES (1, 'test1', NULL);
INSERT INTO `small_fotoarkiv` VALUES (2, 'test2', NULL);
INSERT INTO `small_fotoarkiv` VALUES (3, 'test3', NULL);
INSERT INTO `small_fotoarkiv` VALUES (4, 'test4', NULL);
INSERT INTO `small_fotoarkiv` VALUES (5, 'test5', NULL);



CREATE TABLE `small_fotoarkiv_pic` (
  `id` int(11) NOT NULL auto_increment,
  `pic` varchar(255) default NULL,
  `thumbnail` varchar(255) default NULL,
  `kommentar` varchar(200) default NULL,
  `size` varchar(200) default NULL,
  `small_fotoarkiv_id` varchar(200) default NULL,
  `dato` varchar(200) default NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=12 ;

--
-- Data dump for tabellen `small_fotoarkiv_pic`
--

INSERT INTO `small_fotoarkiv_pic` VALUES (1, 'test', 'test2', NULL, NULL, '1', NULL);
INSERT INTO `small_fotoarkiv_pic` VALUES (2, 'test', 'test', NULL, NULL, '1', NULL);
INSERT INTO `small_fotoarkiv_pic` VALUES (3, 'test', 'test', NULL, NULL, '1', NULL);
INSERT INTO `small_fotoarkiv_pic` VALUES (4, 'test', 'test', NULL, NULL, '1', NULL);
INSERT INTO `small_fotoarkiv_pic` VALUES (5, 'test', 'test', NULL, NULL, '1', NULL);
INSERT INTO `small_fotoarkiv_pic` VALUES (10, 'Ali_Landry_1113200282120PM217.jpg', 'Ali_Landry_1113200282120PM217.jpg', NULL, NULL, '2', '27-03-2005');
INSERT INTO `small_fotoarkiv_pic` VALUES (11, 'alicia_witt_001.jpg', 'alicia_witt_001.jpg', NULL, NULL, '2', '11-04-2005');
Avatar billede t-rex Nybegynder
15. april 2005 - 10:40 #32
ja det skal bare være det første billede
Avatar billede busschou Praktikant
15. april 2005 - 10:41 #33
ok send lige din sql først... altså den med select ov
Avatar billede t-rex Nybegynder
15. april 2005 - 10:42 #34
$pic = mysql_query("Select small_fotoarkiv.id As id,small_fotoarkiv.navn As navn,small_fotoarkiv_pic.thumbnail As thumb From small_fotoarkiv,small_fotoarkiv_pic Where small_fotoarkiv.id = small_fotoarkiv_pic.small_fotoarkiv_id") or die ("Fejl X: ".mysql_error());
Avatar billede busschou Praktikant
15. april 2005 - 10:44 #35
$pic = mysql_query("Select Distinct small_fotoarkiv_pic.small_fotoarkiv_id As id,small_fotoarkiv.navn As navn,small_fotoarkiv_pic.thumbnail As thumb From small_fotoarkiv,small_fotoarkiv_pic Where small_fotoarkiv.id = small_fotoarkiv_pic.small_fotoarkiv_id") or die ("Fejl X: ".mysql_error());
Avatar billede t-rex Nybegynder
15. april 2005 - 10:47 #36
den er stadig ikke helt god : http://www.concept4.dk/ronni/test/fotoarkiv.php
Avatar billede busschou Praktikant
15. april 2005 - 10:50 #37
øhh bøhh det kan jo godt være at der går ged i sammenligningen på ID når ID i den ene tabel er INT og i den anden CHAR
Avatar billede t-rex Nybegynder
15. april 2005 - 10:51 #38
okay prøver lige at ændre det.
Avatar billede busschou Praktikant
15. april 2005 - 10:51 #39
uanset om det er det eller ej vil jeg da foreslå dig rette det inden der er for meget i databasen. For det er nu engang smartest at felter som skal være ens rent faktisk er ens ;o)
Avatar billede t-rex Nybegynder
15. april 2005 - 10:53 #40
har ændret det nu men der sker intet ved det.
Avatar billede t-rex Nybegynder
17. april 2005 - 22:28 #41
har fundet en anden måde at lave det på. men smider du ikke et svar som tak for alt din hjælp busschou.
Avatar billede t-rex Nybegynder
17. april 2005 - 22:29 #42
her var hvordan jeg lavet det:

<table width="530" border="0" cellspacing="0" cellpadding="0"><tr>
<?php
$cells = 4; // Antal celler ved siden af hinanden
$cellcount = 1;

$foto = mysql_query("Select * From small_fotoarkiv") or die ("Fejl X: ".mysql_error());
while($row_foto = mysql_fetch_array($foto)) {
echo "
   
<td width=132>
   
<table width=100% border=0 cellpadding=0 cellspacing=0 class=text>
  <tr>
    <td><input type=checkbox name=checkbox".$row_foto['id']." value=".$row_foto['id'].">
      V&aelig;lg</td>
  </tr>
  <tr>
    <td><table width=94 height=94 border=0 cellpadding=0 cellspacing=0 background=images/picmappe.gif>
      <tr>
        <td align=center valign=middle>";
       
$pic = mysql_query("Select * From small_fotoarkiv_pic WHERE small_fotoarkiv_id = '$row_foto[id]' ORDER BY id LIMIT 0,1") or die ("Fejl X: ".mysql_error());
$count = mysql_num_rows($pic);
if ($count == 0)
    {
    echo"
    <table width=80 height=64 border=0 cellpadding=0 cellspacing=0>
      <tr>
        <td><a href=fotoarkiv_oben.php?id=".$row_foto['id']."><img src=images/tommappe.gif width=80 height=64 border=0></a></td>
      </tr>
    </table>";
    }
    else
    {
    while($row_pic = mysql_fetch_array($pic))
        {       
        echo"
        <table width=80 height=64 border=0 cellpadding=0 cellspacing=0>
          <tr>
            <td><a href=fotoarkiv_oben.php?id=".$row_foto['id']."><img src=pic/thumbnail/".$row_pic['thumbnail']." width=80 height=64 border=0></a></td>
          </tr>
        </table>";
        };
    };
   
        echo"   
        </td>
      </tr>
    </table>
    </td>
  </tr>
  <tr>
    <td>
    <table width=94 border=0 cellspacing=0 cellpadding=0 class=text>
        <tr>
          <td><center>&quot;".$row_foto['navn']."&quot;</center></td>
        </tr>
    </table>
    </td>
  </tr>
</table>
   
</td>";
   
   
   
    if ($cellcount == $cells) {
        $cellcount = 0;
        echo "</tr><tr>";
    }
    $cellcount++;
}
while ($cellcount <= $cells) {
    echo "<td width=94></td>";
    $cellcount++;
}
?>
</tr></table>
<?php };?>
Avatar billede busschou Praktikant
17. april 2005 - 22:33 #43
jo da :o) godt det lykkedes alligevel
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