Oldal: 1 / 2 12 UtolsóUtolsó
Eredmény: 1 - 10 (20) összesen

Téma: PHP - MySQL

  1. #1
    Új tag
    Csatlakozott
    08-10-28
    Hozzászólás
    30
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás PHP - MySQL

    Sziasztok!

    Lenne egy php kérdésem...
    Képgalériát csinálok, ami mysql adatbázisból veszi ki a képeket, és a képek számától függően bontja sorokra. Egy sorba, 4 kép kerül, és a hozzátartozó komment.
    A kérdés, hogy hogy lehetne kinyerni az adatbázisból a képeket hivatkozását?
    A tábla fejlécei: id, nev, comment.
    Eddig így néz ki a kiírás mysql nélkül (a $kep, $t_kep, és a $comment írná ki, a kép nevét, illetve commentet):

    <?
    $keres ="SELECT * FROM $sql_tabl";
    $eredmeny = mysql_query($keres) or die('<p align="center"><font color="RED">Nem sikerült kiválasztanom az adattáblát</font></p>');

    //while ($sor = mysql_fetch_object($mutat)) {
    $kep_db = mysql_num_rows($eredmeny);
    $oszlop_szam = 4;

    if($kep_db > $oszlop_szam){
    $sorok = ceil($kep_db/4);
    } else {
    $sorok = 1;
    }

    $darab = 1;

    echo "<DIV align='center'>\n";
    echo "<table border='1' width='400'>
    <tbody>\n";

    // a képek és commentek kiírása az adatbázisból a képernyőre
    $dir = "../../../pics/uvegfestes/";
    $dir_t="../../../pics/uvegfestes/thumb/";

    if($kep_db >= 1){
    for($sor = 1; $sor <= $sorok; $sor++){
    echo " <tr>\n";
    for($oszlop = 1; $oszlop <= $oszlop_szam; $oszlop++){
    if($darab <= $kep_db){
    echo " <td align='center' width='100'><a href='".$dir.$kep."' width=128 height=128</a>\n";
    echo " <img border='0' src='".$dir2.$t_kep."'>";
    echo " <table>\n";
    echo " <tbody>\n";
    echo " <tr>\n";
    echo " <td align='center' width='100'>"."Comment"."</td>\n";
    echo " <tr>\n";
    echo " </tbody>\n";
    echo " </table>\n";
    echo " </td>\n";
    } else {
    echo " <td align='center' width='100'> - \n";
    echo " <table>\n";
    echo " <tbody>\n";
    echo " <tr>\n";
    echo " <td align='center' width='100'> - </td>\n";
    echo " <tr>\n";
    echo " </tbody>\n";
    echo " </table>\n";
    echo " </td>\n";
    }
    $darab++;
    }
    echo " </tr>\n";
    }
    }

    előre is köszi!



  2. #2
    Törzsvendég MKarcsi logója
    Csatlakozott
    08-04-04
    Hely
    Budakeszi || Szolnok
    Hozzászólás
    103
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Kérdés re: PHP - MySQL

    Jól bekezdtél 1. hozzászólással Először is a kérdést se értem:
    A kérdés, hogy hogy lehetne kinyerni az adatbázisból a képeket hivatkozását?
    1. azt hittem képeket, hogy lehet kinyerni, de az megvan
    2. meg, hogy a képek hivatkozását, de az is megvan.

    Ha meg a hivatkozással van a baj, azt tuti ez okozza:
    PHP kód:
    echo " <td align='center' width='100'><a href='".$dir.$kep."' width=128 height=128</a>\n";
    echo 
    " <img border='0' src='".$dir2.$t_kep."'>"
    Amúgy ha már van PHP bbcode, akkor használd legközelebb, mert borzasztóan átláthatatlan az amúgyis ronda kód
    Így talán kicsit szebb, itt-ott módosítva rajta. Talán a következő ember aki érti a kérdést jobban átlátja ebből mit is akarna csinálni a progi.


    PHP kód:
    <?
    $keres 
    ="SELECT * FROM $sql_tabl";
    $eredmeny mysql_query($keres) or die('<p align="center"><font color="red">Nem sikerült kiválasztanom az adattáblát</font></p>');

    //while ($sor = mysql_fetch_object($mutat)) {
    $kep_db mysql_num_rows($eredmeny);
    $oszlop_szam 4;

    if (
    $kep_db $oszlop_szam$sorok ceil($kep_db/4);
    else 
    $sorok 1;

    $darab 1;

    echo 
    '
    <div align="center">
        <table border="1" width="400">
        <tbody>'
    ;

    // a képek és commentek kiírása az adatbázisból a képernyőre
    $dir "../../../pics/uvegfestes/";
    $dir_t="../../../pics/uvegfestes/thumb/";

    if (
    $kep_db >= 1) {
        for (
    $sor 1$sor <= $sorok$sor++) {
            echo 
    '<tr>';
            for (
    $oszlop 1$oszlop <= $oszlop_szam$oszlop++) {
                if (
    $darab <= $kep_db) {
                    echo 
    '<td align="center" width="100">
                                <a href="'
    .$dir.$kep.'" width="128" height="128">
                                <img border="0" src="'
    .$dir2.$t_kep.'"></a><br/>
                                '
    .$comment.'
                          </td>'
    ;
                } 
                else {
                    echo 
    '<td align="center" width="100"> - </td>';
                }
                
    $darab++;
            }
            echo 
    '</tr>';
        }
    }
    K



  3. #3
    Új tag
    Csatlakozott
    08-10-28
    Hozzászólás
    30
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: PHP - MySQL

    Köszi szépen!

    a kódban elhelyezett $dir.$kep, illetve $dir2.$t_kep, annak kellene majd tartalmaznia a kép elérését, csak nem tudom hogy lehetne átadni.
    pl a tábla tartalma:

    id | nev | comment
    ----------------------------------------------
    1 | kep1.jpg | Kép 1
    2 | kep2.jpg | Kép 2
    3 | kep3.jpg | Kép 3
    4 | kep4.jpg | Kép 4
    5 | kep5.jpg | Kép 5

    akkor a kimenet úgy nézzen ki, hogy 2 sorban, soronként 2 kép. A képek alatt a komment. Ezért próbálkoztam táblázattal. És ha új kép kerül az adatbázisba, akkor az hozzákapcsolódjon. A kép nevének módosítását, pedig a progi csinálja meg. Pl.: a célkép: ../../../pics/uvegfestes/kep1.jpg,
    a thumb pedig: ../../../pics/uvegfestes/thumb_kep1.jpg

    Ez lenne ennek a proginak feladata.



  4. #4
    Tag tom.pannon logója
    Csatlakozott
    08-10-27
    Hely
    Budapest
    Hozzászólás
    91
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: PHP - MySQL

    Én még mindig nem értem teljesen hogy hol akadtál meg, de megpróbálom.

    Indulásnak itt egy kód ami "megnyit" egy mappát, és a benne levő file-okat kilistázza:

    PHP kód:
    $k_azon opendir('../../../pics/uvegfestes/) 
           while (false !== ($fajl = readdir($k_azon))) {
            echo "<br>$fajl\n"; 
        } 
    Ha itt az echo-t kiegészíted azzal hogy <img src=".$fajl.".jpg> akkor már a jpg-ket ki is tetted az adott mappából, sql nélkül.
    mySQL-ben sem sokkal másabb a helyzet, ha megvan a tábla, ami tartalmazza a file-ok elhelyezkedését, és nevét, akkor csak egy olyan lekérdezést kell csinálnod, ami kiírja ezeket. Ezek után a ciklusba beépítheted az előbb említett <img> tagot, akkor már meglesznek a képek, aztán jöhet a formázás.

    Nem tudom a bemásolt forrás ebben a formában mit produkál, de vannak benne hibák, pl:

    <a href='".$dir.$kep."' width=128 height=128</a>

    helyesebben:

    <a href='".$dir.$kep."'><img src="kephivat.jpg"></a>

    Egyébként az elképzelés rendben van, bár ha még nem megy az sql, akkor előbb próbálj meg csak simán sorokat kiszedni, onnan már nem lehet elrontani ha az megvan.


    Egy lekérdezés:

    PHP kód:
    $query "SELECT * FROM kepek ";
        
    $result mysql_query($query);
        
        while(
    $r=mysql_fetch_array($result))    
        { 
        
    $id $r[id];
        echo 
    $id;


    Ezzel most az $id változóba tetted a lekérdezés id értékét, majd kiirattad. Ha több is volt a táblán, akkor egy egész sort kell kapnod. Na innen már meg kell tudni csinálni Sokadszorra olvasva a commented, talán ez az utolsó rész ami nem volt tiszta neked. Sorry, ha a többi nem volt számodra érdekes.

    Írd le meddig jutottál, mi a hiba, akkor könnyebb lesz!

    ui.: az sql-hez először is csatlakozni kell: include(conn.php); ezt sem látom sehol.



  5. #5
    Új tag
    Csatlakozott
    08-10-28
    Hozzászólás
    30
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: PHP - MySQL

    Köszi! Neki is fekszek.
    Megvan a kapcsolat, is, csak azt nem másoltam be. Azzal nincs is semmi hiba.
    egyedül a kiíratásnál akadtam el. De remélem,hogy az most rendben lesz.



  6. #6
    Tag tom.pannon logója
    Csatlakozott
    08-10-27
    Hely
    Budapest
    Hozzászólás
    91
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: PHP - MySQL

    Oké, ha gáz van, még itt leszek ma egy darabig+ egyébként most már szinte minden nap



  7. #7
    Új tag
    Csatlakozott
    08-10-28
    Hozzászólás
    30
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: PHP - MySQL

    Ok. Köszi

    Egyébként most működik. Átírtam a kódot. Most így néz ki, és működik is.

    PHP kód:
    if ($kep_db >= 1) {
        for (
    $sor 1$sor <= $sorok$sor++) {
            echo 
    '<tr>';
            for (
    $oszlop 1$oszlop <= $oszlop_szam$oszlop++) {
                if (
    $darab <= $kep_db) {
                    
    $nev mysql_fetch_array($eredmeny);
                    
    $kep $nev[nev];
                    
    $comment $nev[comment];
                    echo 
    '<td align="center" width="128">
                                <a href="'
    .$dir.$kep.'">
                                <img border="0" src="'
    .$dir_t.$kep.'" width="128" height="128"></a><br/>
                                '
    .$comment.'
                          </td>'
    ;
                } 
                else {
                    echo 
    '<td align="center" width="128"> - </td>';
                }
                
    $darab++;
            }
            echo 
    '</tr>';
        }

    Már csak egy dolgot kell megoldani, hogy mikor feltöltöm a képet (ennek a kódja már kész van, és működik is) a feltöltendő képet egyszer mentse el simán (bár jó lenne ha át lehetne neveztetni... ezt még nem sikerült megcsinálnom), majd ugyanebből a képet egy lépésben kicsinyítse le, majd másnéven mentse le egy másik könyvtárba... A kép méretezését most vadászom, hogy hogy kell... a problémásbb rész, hogy hogy nevezzem át a feltöltendő képet. Pl.: a kép neve: pics1.jpg és ezt kep1.jpg--ként mentse el.



  8. #8
    Törzsvendég MKarcsi logója
    Csatlakozott
    08-04-04
    Hely
    Budakeszi || Szolnok
    Hozzászólás
    103
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Üzenet re: PHP - MySQL

    Mivel mindig hangoztatom, hogy a table nem elhelyezésre való, arra ott a div+css, ezért itt egy ehhez igazított eléggé leegyszerűsített változata te kódodnak. Itt-ott lehet benne hiba, mert nem sql-lel próbáltam ki, csak konstans tömbbel, de azzal jól ment IE 5.5-7.0, FF, Opera alatt is.

    A CSS:
    HTML kód:
    <style type="text/css">
    div.kep {
        width: 100px;
        float: left;
        text-align: center;
    }
    
    div.kep img {
        width: 100px; height: 100px;
    }
    </style>
    és a hozzátartozó PHP:
    PHP kód:
    //  Ugye már megvolt a kapcsolódás az adatbázishoz

    $keres mysql_query("SELECT nev, comment FROM $sql_tabl");

    while (
    $kep mysql_fetch_assoc($keres)) {
        echo 
    '
        <div class="kep">
            <a href="/pics/uvegfestes/'
    .$kep['nev'].'"> 
            <img src="/pics/uvegfestes/thumb/'
    .$kep['nev'].'" alt=""/> </a>
            '
    .$kep['comment'].'
        </div>'
    ;

    Így talán kicsit letisztultabb mind a PHP kódod, mind a belőle lefordított HTML is. Persze ettől függetlenül úgy csinálod ahogy akarod

    ui.: látom közben sikerült megoldani, hogy működjön is

    K


    Utoljára módosítva: MKarcsi által : 2008-10-28 23:51 Oka: lassú voltam :( többé nem fordul elő

  9. #9
    Tag tom.pannon logója
    Csatlakozott
    08-10-27
    Hely
    Budapest
    Hozzászólás
    91
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: PHP - MySQL

    Átnevezés:

    PHP kód:
    <?php
        $fileHand 
    fopen('tempFile.txt''r');
        
    fclose($fileHand);
        
    rename'tempFile.txt''tempFile2.txt' );
    ?>
    Ezen felül ajánlom figyelmedbe a PHP manualt: hxxp://hu.php.net/rename



  10. #10
    Új tag
    Csatlakozott
    08-10-28
    Hozzászólás
    30
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: PHP - MySQL

    Köszi!

    Közben felmerült még egy probléma... De ez inkább beállítás lehet...
    Otthon kiakartam próbálni a teljes honlapot, amin van egy szöveg beviteli rész is. Az azt kezelő program nem hajlandó kezelni az átadott értékeket...
    Az esemény kezelést, illetve a beviteli részt, ugyan az a program végzi.
    Ebben az esetben admin.php

    PHP kód:
    <p align='center'>
      <
    class='buttonview' href='admin.php?todo=uj'>Új vers</a>
    </
    p><br>"; 
    Mikor meghívja az oldal saját magát, a $todo változó tartalma üres... Nem
    ad át semmit... Eddig működött, de most hogy újra telepítettem a gépet, nem igazán akar menni... Debian etch rendszerem van.



Oldal: 1 / 2 12 UtolsóUtolsó

A téma címkéi:

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •