Avatar billede ping_pong Praktikant
14. januar 2005 - 19:40 Der er 31 kommentarer og
1 løsning

problemer med select.

Jeg har et script der ser sådan her ud:

<center><TABLE WIDTH="370" BORDER="0" CELLSPACING="0" bgcolor="white">
<TR VALIGN=\"center\">
<?php
$i = 0;
$antal = 5;
if(isset($_GET['id'])) {
  mysql_query("UPDATE farvebilleder SET hits = hits + 1 WHERE id = $id");
} else {
$sql = mysql_query("SELECT * FROM farvebilleder ORDER BY 'kategori'");
while ($row = mysql_fetch_array($sql))
{
  $i++;
  echo "<td><a href=\"".$_SERVER['PHP_SELF']."?id=$row[id]&link=$row[link]\" onFocus=\"blur()\"><IMG SRC=\"$row[pic]\" width=\"96\" height=\"65\" BORDER=\"0\" ALT=\"$row[navn]\"></a></td>";
  if ($i % $antal == 0)
  {
    echo "</tr><tr>";
  }
}
?>


</TR>
</TABLE></center>
<?
}
?>

Det jeg gerne ville ha den til er at, den skal ta alt fra tabelnavn og så skal den ta alt der har noget at gøre med tv inde fra kategori.

Hvordan gør man det?
Avatar billede ping_pong Praktikant
14. januar 2005 - 19:48 #1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in bla bla bla on line 44
Avatar billede riversen Nybegynder
14. januar 2005 - 19:58 #2
som du gør det, men der er åbenbart noget galt med din sql, så phpen giver en warning. Prøv at køre sql'en fra PHPmyadmin
Avatar billede riversen Nybegynder
14. januar 2005 - 20:01 #3
altså at sql'en ikke giver nogle rækker, ikke at den som sådan er ugyldig.
Avatar billede ping_pong Praktikant
14. januar 2005 - 20:10 #4
når man skriver
$sql = mysql_query("SELECT * FROM farvebilleder");
så virker det, men så viser den jo det hele

jeg ved ikke hvad der gå galt
Avatar billede ping_pong Praktikant
14. januar 2005 - 20:12 #5
hvordan køre man det fra phpmyadmin?
Avatar billede riversen Nybegynder
14. januar 2005 - 20:15 #6
måske du mener SELECT * FROM farvebilleder WHERE kategori = 'tv' ?
Avatar billede ping_pong Praktikant
14. januar 2005 - 22:24 #7
er prøvet
Avatar billede riversen Nybegynder
15. januar 2005 - 07:26 #8
så må du fortælle hvordan tabellen ser ud, hvad der er i den og hvad du helt nøjagtigt vil have
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 08:15 #9
Du skal altid, altid, altid gøre noget i retning af

$sql = mysql_query("SELECT * FROM farvebilleder ORDER BY 'kategori'") or die(mysql_error());

Fortæl os hvad den siger, hvis du ikke selv kan se det ud fra fejlbeskeden.
Avatar billede ping_pong Praktikant
15. januar 2005 - 10:09 #10
database

id(int11)
navn(varchar255)
pic(varchar255)
hits(int11)
kategori(varchar255)
link(varchar255)

inde i kolonnen kategori stå der tv i nogle af rækkerne og nogle står der babs o.s.v.
den skal så kun udtræke den der står tv i

hvis man skrive $sql = mysql_query("SELECT * FROM farvebilleder WHERE kategori = 'tv'") or die(mysql_error());

få man denne besked Unknown column 'kategori' in 'where clause'
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 10:39 #11
Så er der intet felt, der hedder kategori i tabellen farvebilleder.
Avatar billede ping_pong Praktikant
15. januar 2005 - 10:42 #12
kan du se kategori(varchar255) det kan jeg
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 13:12 #13
Ja, det kan jeg, men der er stadig intet felt, der hedder kategori i tabellen farvebilleder.
Det er en anden tabel, du viser definitionen for.
Avatar billede ping_pong Praktikant
15. januar 2005 - 14:01 #14
det er mig der forklare mig forkert det er er jo en tabel istedet for en database

tabel
id(int11)
navn(varchar255)
pic(varchar255)
hits(int11)
kategori(varchar255)
link(varchar255)
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 14:15 #15
Det er selvfølgelig rigtig nok, men den tabel du har, farvebilleder, har
ikke det felt: kategori. Længere er den såmænd ikke.
Avatar billede ping_pong Praktikant
15. januar 2005 - 19:25 #16
hvad vil du forslå mig at gøre?
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 19:48 #17
Ja, du skal vel bare finde ud hvad du gør. Er det en forkert tabel? Mangler
der noget i tabellen?

Det er kun dig der kan vide hvad der er galt. Du skal bare opdage det.
Avatar billede ping_pong Praktikant
15. januar 2005 - 20:00 #18
jeg har lavet 2 billedet på adr. http://www.kik-dart.dk/db.jpg & http://www.kik-dart.dk/db1.jpg som viser min tabel
inde i pic er der en stil til de mapper jeg nu har.

kan du se nogle fejl?
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 20:02 #19
prøv at lave et dump af din struktur for tabellen/databasen, og vis den her
Avatar billede ping_pong Praktikant
15. januar 2005 - 20:07 #20
sorry et dump af tabellen, mener du et billedet af hele tabellen
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 20:08 #21
Nej et dump af de sql-sætninger, som skal til for at oprette/gendanne tabellen.
Det kan phpmyadmin godt lave - jeg kan ikke lige huske hvor.
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 20:13 #22
Du skal vist bare sige "Export" og så trykke på "Go"
Avatar billede ping_pong Praktikant
15. januar 2005 - 20:13 #23
er det her Propose table structure
Avatar billede ping_pong Praktikant
15. januar 2005 - 20:15 #24
ok her er den så  lol

# phpMyAdmin MySQL-Dump
# version 2.4.0
# http://www.phpmyadmin.net/ (download page)
#
# Vært: localhost
# Genereringstidspunkt: 15/01 2005 kl. 20:14:58
# Server version: 3.23.47
# PHP version: 4.3.2
# Database: : `sms`
# --------------------------------------------------------

#
# Struktur dump for tabellen `alt`
#

CREATE TABLE alt (
  id int(11) NOT NULL auto_increment,
  navn varchar(255) NOT NULL default '',
  pic varchar(254) NOT NULL default '',
  hits int(11) NOT NULL default '0',
  kategori  varchar(255) NOT NULL default '',
  link varchar(255) NOT NULL default '',
  PRIMARY KEY  (id)
) TYPE=MyISAM;
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 20:16 #25
Ja, det er det jeg har sagt hele tiden. Din tabel, farvebilleder, har ikke et
felt med navnet: kategori. Det har din tabel: alt.
Avatar billede ping_pong Praktikant
15. januar 2005 - 20:21 #26
jeg har prøvet med et andet script som jeg ved virker og så brugt det sammen med tabellen (alt) men det virker ikke
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 20:24 #27
Ok, du har lavet en klassisk fejl, som bestemt ikke er nem at opdage.
Jeg vil først gerne understrege, at jeg har haft ret hele tiden: du har *ikke*
haft et felt der hedder kategori, for du har haft et felt, der hedder
kategori<mellemrum>, og det er jo en ganske anden sag. Det kan man se af dumpet,
hvis man kigger godt efter - man kan ikke se det i phpmyadmin.

Prøv at erstatte

  kategori

med

  `kategori `

i en select på en tabel, hvor du ved feltet er der. Bemærk de sjove stroffer, som
hverken er ' eller ", og bemærk mellemrummet.

Senere, når det virker, kan vi jo døbe feltet om.
Avatar billede ping_pong Praktikant
15. januar 2005 - 20:34 #28
ok det er godt, men du har ret

jeg har prøvet igen med det her script

<center><TABLE WIDTH="370" BORDER="0" CELLSPACING="0" bgcolor="white">
<TR VALIGN=\"center\">
<?php
$i = 0;
$antal = 5;
if(isset($_GET['id'])) {
  mysql_query("UPDATE alt SET hits = hits + 1 WHERE id = $id");
} else {
$sql = mysql_query("SELECT * FROM alt WHERE 'kategori '") or die(mysql_error());
while ($row = mysql_fetch_array($sql))
{
  $i++;
  echo "<td><a href=\"".$_SERVER['PHP_SELF']."?id=$row[id]&link=$row[link]\" onFocus=\"blur()\"><IMG SRC=\"$row[pic]\" width=\"96\" height=\"65\" BORDER=\"0\" ALT=\"$row[navn]\"></a></td>";
  if ($i % $antal == 0)
  {
    echo "</tr><tr>";
  }
}
?>


</TR>
</TABLE></center>
<?
}
?>

men nu kommer der ikke noget frem?
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 20:35 #29
Din sql skal ligne den fra 15/01-2005 10:09:11
Avatar billede ping_pong Praktikant
15. januar 2005 - 20:46 #30
nu virker det

giv mig lige et svar
Avatar billede erikjacobsen Ekspert
15. januar 2005 - 20:47 #31
Ellers tak, jeg samler slet ikke på point.
Avatar billede ping_pong Praktikant
15. januar 2005 - 20:50 #32
nå ok men du skal have mange mange tak for hjælpen.
jeg slettet det mellemrum du fandt.

<center><TABLE WIDTH="370" BORDER="0" CELLSPACING="0" bgcolor="white">
<TR VALIGN=\"center\">
<?php
$i = 0;
$antal = 5;
if(isset($_GET['id'])) {
  mysql_query("UPDATE farvebilleder SET hits = hits + 1 WHERE id = $id");
} else {
$sql = mysql_query("SELECT * FROM farvebilleder ORDER BY navn") or die(mysql_error());
while ($row = mysql_fetch_array($sql))
{
  $i++;
  echo "<td><a href=\"".$_SERVER['PHP_SELF']."?id=$row[id]&link=$row[link]\" onFocus=\"blur()\"><IMG SRC=\"$row[pic]\" width=\"96\" height=\"65\" BORDER=\"0\" ALT=\"$row[navn]\"></a></td>";
  if ($i % $antal == 0)
  {
    echo "</tr><tr>";
  }
}
?>


</TR>
</TABLE></center>
<?
}
?>
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