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?
Annonceindlæg fra Pax8
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
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
14. januar 2005 - 20:01
#3
altså at sql'en ikke giver nogle rækker, ikke at den som sådan er ugyldig.
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
14. januar 2005 - 20:12
#5
hvordan køre man det fra phpmyadmin?
14. januar 2005 - 20:15
#6
måske du mener SELECT * FROM farvebilleder WHERE kategori = 'tv' ?
14. januar 2005 - 22:24
#7
er prøvet
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
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.
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'
15. januar 2005 - 10:39
#11
Så er der intet felt, der hedder kategori i tabellen farvebilleder.
15. januar 2005 - 10:42
#12
kan du se kategori(varchar255) det kan jeg
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.
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)
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.
15. januar 2005 - 19:25
#16
hvad vil du forslå mig at gøre?
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.
15. januar 2005 - 20:02
#19
prøv at lave et dump af din struktur for tabellen/databasen, og vis den her
15. januar 2005 - 20:07
#20
sorry et dump af tabellen, mener du et billedet af hele tabellen
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.
15. januar 2005 - 20:13
#22
Du skal vist bare sige "Export" og så trykke på "Go"
15. januar 2005 - 20:13
#23
er det her Propose table structure
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;
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.
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
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.
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?
15. januar 2005 - 20:35
#29
Din sql skal ligne den fra 15/01-2005 10:09:11
15. januar 2005 - 20:46
#30
nu virker det giv mig lige et svar
15. januar 2005 - 20:47
#31
Ellers tak, jeg samler slet ikke på point.
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> <? } ?>
Vi tilbyder markedets bedste kurser inden for webudvikling