Avatar billede thomastegl Nybegynder
13. november 2005 - 16:26 Der er 22 kommentarer og
1 løsning

Hjælp med lidt php programmering 2

Bruger følgende til at hente oplysninger fra databasen:

<? $sidetal = $_GET['page_id']; $query = "SELECT image FROM nuke_paged_content WHERE page_id='$sidetal'";
$result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());
if ( $row = mysql_fetch_assoc( $result ) )
?>

Skal gerne have tilføjet lidt kode, så resultatet (f.eks. "lillebror.gif" bliver skrevet ud)
altså noget ala

echo "<img src='/enmappe/enandenmappe/*resultat af query*'"

Hvis der ikke kommer noget resultat skal der ikke udskrives noget!!!

Nogen begavede derude som kan hjælpe en stakkels php-mongol???
Avatar billede jaw Nybegynder
13. november 2005 - 16:27 #1
if ( $row = mysql_fetch_assoc( $result ) )
echo "<img src='/enmappe/enandenmappe/".$row['image']."'>";
Avatar billede thomastegl Nybegynder
13. november 2005 - 17:02 #2
Det gik stærkt. Virker halvt:

De ønskede billeder dukker op som de skal. Men på sider hvor der kommer tomt resultat af query, kommer der den klassiske ramme med et kryds i, for manglende billede.
Meget vigtigt at INTET printes i disse tilfælde.
Nogen idéer?
Avatar billede jaw Nybegynder
13. november 2005 - 17:17 #3
Nå ja, ok:

if ( $row = mysql_fetch_assoc( $result ) ) {
  if(!empty($row['imgage'])) {
    echo "<img src='/enmappe/enandenmappe/".$row['image']."'>";
  }
}
Avatar billede jaw Nybegynder
13. november 2005 - 17:19 #4
Håber du er bedre til at stave "image" end jeg åbenbart er :)
Avatar billede thomastegl Nybegynder
13. november 2005 - 17:41 #5
Det virker!
Kom lige på endnu et problem:

I nogle tilfælde vil der være flere end ét result af en query. Nogle sider er nemlig delt ind i sektioner med et billede til hver sektion. Som det er nu henter scriptet det første billede fra hver side som det skal, men ville det være muligt at "loope", så den søger efter flere mulige results og printer dem også???
Avatar billede jaw Nybegynder
13. november 2005 - 17:47 #6
Jep, skift:
  if ( $row = mysql_fetch_assoc( $result ) ) {
med:
  while($row = mysql_fetch_assoc($result)) {
Avatar billede thomastegl Nybegynder
13. november 2005 - 18:00 #7
Genialt. Så skal jeg bare lige have billederne separeret af et mellemrum på 5-10 pixel...? ;-)
Avatar billede jaw Nybegynder
13. november 2005 - 18:01 #8
Der skal du enten så have fat i et billede du måske har 1 px høj og 5-10 bred som du så sætter ind. Eller bruge &nbsp; x-antal gange.
Avatar billede thomastegl Nybegynder
13. november 2005 - 18:34 #9
Okay. Tusind tak for hjælpen. Smid lige et svar...
Avatar billede jaw Nybegynder
13. november 2005 - 18:37 #10
Selv tak :)
Avatar billede thomastegl Nybegynder
13. november 2005 - 19:30 #11
Ved ikke om du er der endnu, men:

Har et par enkelte sider som scriptet ikke skal gælde for. Altså noget med at hvis page_id er 49 skal der ikke ske noget...? Muligt?
Avatar billede jaw Nybegynder
13. november 2005 - 19:37 #12
Så skal der ikke ske noget overhovedet, eller hvordan?

Umiddelbart vil jeg sige:
if($_GET['page_id'] == 49) {
  exit; //stopper kørslen
}

...men det er muligvis lige simpelt nok til hvad du søger.
Avatar billede thomastegl Nybegynder
13. november 2005 - 19:46 #13
Ja den er nok lidt for simpel. Den stopper alt, så jeg ikke får kørt de forskellige andre ting på siden...
Avatar billede thomastegl Nybegynder
13. november 2005 - 19:47 #14
så noget med at stoppe printning af billeder hvis page_id er 49
Avatar billede jaw Nybegynder
13. november 2005 - 19:47 #15
Netop, men jeg ved jo ikke hvordan dit script er bygget op.

Men ellers er princippet:

if($_GET['page_id'] != 49) {
  //kør det der skal køres, hvis page_id ikke er = 49!
}
Avatar billede jaw Nybegynder
13. november 2005 - 19:48 #16
$sidetal = $_GET['page_id'];
if($sidetal != 49) {
  $query = "SELECT image FROM nuke_paged_content WHERE page_id='$sidetal'";
  while($row = mysql_fetch_assoc( $result )) {
    if(!empty($row['imgage'])) {
      echo "<img src='/enmappe/enandenmappe/".$row['image']."'>";
    }
  }
}
Avatar billede thomastegl Nybegynder
13. november 2005 - 19:51 #17
<? $sidetal = $_GET['page_id']; if($_GET['page_id'] != 33) {
  //kør det der skal køres, hvis page_id ikke er = 49!
$query = "SELECT image FROM nuke_paged_content WHERE page_id='$sidetal'";
$result = mysql_query($query) or die("Forespørgslen lykkedes ikke : " . mysql_error());
while($row = mysql_fetch_assoc($result)) {
  if(!empty($row['image'])) {
echo "<img src='modules/PagEd/medipics/".$row['image']."'><p>&nbsp;</p>"; 
  }
}


?>

giver parse-error
Avatar billede jaw Nybegynder
13. november 2005 - 19:55 #18
Du mangler vist en afsluttende }
Avatar billede thomastegl Nybegynder
13. november 2005 - 20:00 #19
jep det hjalp.
Har også side 34 og 37 der ikke skal vises billeder på, kan jeg bare skrive != 33,34,37)  eller hvordan gribes det an?
Avatar billede jaw Nybegynder
13. november 2005 - 20:02 #20
Så ville jeg gøre:

$forbudte = array(33, 34, 37);
if(!in_array($sidetal, $forbudte)) {
  ...
}
Avatar billede thomastegl Nybegynder
13. november 2005 - 20:03 #21
okay, tak endnu engang!! :-)
Avatar billede jaw Nybegynder
13. november 2005 - 20:07 #22
Det var så lidt :)
Avatar billede jaw Nybegynder
13. november 2005 - 20:08 #23
Men ellers kunne du have gjort:
if($sidetal != 33 && $sidetal != 34 && $sidetal != 37) {
  ...
}
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