Olen ajautunut tilanteeseen josta ei vaan osaa selvitä. Eli tarkoitus on saada tuohon tiedoston alle tulostettua aina tuo kuvaus siitä videon pätkästä. Olen vääntänyt vaikka mitenkä mut en ole saanut toivottua tulosta. Johtuu siitä, että olen aivan aloittelija näissä jutuissa. Jos joku voisi ystävällisesti auttaa tämän asian kanssa, sivut käytänöössä tätä vailla.
<?php $DBServer="localhost"; # Serveri $DBUser=""; # Käyttäjänimi $DBPassword=""; # Salasana $DBName="kommentit"; # Tietokannan nimi $Que="SELECT * FROM vidmus"; { $Conn=mysql_connect($DBServer,$DBUser,$DBPassword) or die("Virhe, tietokantaan ei saa yhteyttä<BR>".mysql_error()); mysql_select_db($DBName,$Conn) or SQLError("Virhe, kantaa \"$DBName\" ei voi valita<BR>".mysql_error()); $Res=mysql_query($Que,$Conn) or die ("Virheellinen kysely: \"$Que\"<BR>".mysql_error()); while ($rivi = mysql_fetch_array($Res)) { $kuvaus = $rivi['kuvaus']; echo $kuvaus; } mysql_free_result($Res); mysql_close($Conn); } $perus="images/"; function laske($a){ for($i=0;$i<$a;$i++){ $sis.=" - "; } return $sis; } function listaa($alku, &$tied, &$hak){ global $perus; if(!file_exists($alku)) exit("<font color=\"red\">ERROR: hakemistoa <b>$perus</b> ei löydy</font>"); foreach(glob("$alku*") as $nimi){ $sis=explode("/", str_replace("$perus", "", $nimi)); echo laske(count($sis)); if(is_dir($nimi)){ $hak++; echo "<a href=\"$nimi\" class=\"hak\">".str_replace("$alku", "", $nimi)."</a><br>"; }else{ // ja jos ei $tied++; echo "<a href=\"$nimi\" class=\"fil\">".str_replace("$alku", "", $nimi)."</a> (".round(filesize($nimi)/1024/1024,2)." Mt) <br>"; } if(is_dir("$nimi")) listaa($nimi."/", $tied, $hak); } } ?> <html> <head> <title>Video leikkeet</title> <style type="text/css" href="styles.css"> body { font-family: Sans; color: #000; font-size: 11px; padding: 0px 0px 0px 0px; } h1 { margin: 0 } div.listaus { background: #b6e2ed; border: 1px solid #5894a3; padding: 10px } div.tulos { float: right top; } a:link.hak { color: red; text-decoration: none } a:visited.hak { color: #990000; text-decoration: none } a:hover.hak { color: red; text-decoration: none } a:active.hak { color: blue; text-decoration: none } a:link.fil { color: black; text-decoration: none } a:visited.fil { color: gray; text-decoration: none } a:hover.fil { color: black; text-decoration: none } a:active.fil { color: blue; text-decoration: none } </style> </head> <body> <h1>Video leikkeet</h1><br><br> <?php $tied = $hak = 0; echo "<div class=\"listaus\">"; listaa($perus, $tied, $hak, $kuvaus); echo "</div>Leikkeitä yhteensä: $tied"; ?> </body> </html>
Eli tuohon tiedostolistaus missä tiedostonnimi on linkkinä ja sen koko. Niin siihen alle aina tulostettaisiin tuosta $kuvaus tiedot. Saan tulemaan oikeassa järjästyksessä muualle mutta tuohon kohtaan en osaa laittaa.
Jos vidmus-taulussa on kenttänä tiedostonimi ja kuvaus niin voit hakea tuossa listauksen yhteydessä aina oikean kuvauksen tyyliin:
$sql = mysql_query("SELECT kuvaus FROM vidmus WHERE tiedosto = \"$nimi\"", $Conn); $kuvaus = mysql_result($sql, 0, 0); echo $kuvaus;
MUOKS: Ja tietenkin siirtää tuolta alusta mysql_close vasta loppuun.
Mysql_close kannattaa ottaa kokonaan pois, koska skriptin lopussa yhteys katkeaa joka tapauksessa.
<?php $DBServer="localhost"; # Serveri $DBUser=""; # Käyttäjänimi $DBPassword=""; # Salasana $DBName="kommentit"; # Tietokannan nimi $Que="SELECT kuvaus FROM vidmus WHERE tiedosto = \"$nimi\""; $Conn=mysql_connect($DBServer,$DBUser,$DBPassword) or die("Virhe, tietokantaan ei saa yhteyttä<BR>".mysql_error()); mysql_select_db($DBName,$Conn) or SQLError("Virhe, kantaa \"$DBName\" ei voi valita<BR>".mysql_error()); $Res=mysql_query($Que,$Conn) or die ("Virheellinen kysely: \"$Que\"<BR>".mysql_error()); $kuvaus = mysql_result($sql, 0, 0); echo $kuvaus; $perus="images/"; function laske($a){ for($i=0;$i<$a;$i++){ $sis.=" - "; } return $sis; } function listaa($alku, &$tied, &$hak){ global $perus; if(!file_exists($alku)) exit("<font color=\"red\">ERROR: hakemistoa <b>$perus</b> ei löydy</font>"); foreach(glob("$alku*") as $nimi){ $sis=explode("/", str_replace("$perus", "", $nimi)); echo laske(count($sis)); if(is_dir($nimi)){ $hak++; echo "<a href=\"$nimi\" class=\"hak\">".str_replace("$alku", "", $nimi)."</a><br>"; }else{ // ja jos ei $tied++; echo "<a href=\"$nimi\" class=\"fil\">".str_replace("$alku", "", $nimi)."</a> (".round(filesize($nimi)/1024/1024,2)." Mt) <br>"; } if(is_dir("$nimi")) listaa($nimi."/", $tied, $hak); } } ?> <html> <head> <title>Video leikkeet</title> <style type="text/css" href="styles.css"> body { font-family: Sans; color: #000; font-size: 11px; padding: 0px 0px 0px 0px; } h1 { margin: 0 } div.listaus { background: #b6e2ed; border: 1px solid #5894a3; padding: 10px } div.tulos { float: right top; } a:link.hak { color: red; text-decoration: none } a:visited.hak { color: #990000; text-decoration: none } a:hover.hak { color: red; text-decoration: none } a:active.hak { color: blue; text-decoration: none } a:link.fil { color: black; text-decoration: none } a:visited.fil { color: gray; text-decoration: none } a:hover.fil { color: black; text-decoration: none } a:active.fil { color: blue; text-decoration: none } </style> </head> <body> <h1>Video leikkeet</h1><br><br> <?php $tied = $hak = 0; echo "<div class=\"listaus\">"; listaa($perus, $tied, $hak, $kuvaus); echo "</div>Leikkeitä yhteensä: $tied"; ?> </body> </html>
Noin laittelin niin en saa mitään tulostettua tarkistin et on tietokannassa tiedosto kenttä missä justiisa nuo tiedoston nimet on samassa muodossa kun tuossa tulostuksessa. Alakaa olla tosiaan leipääntynyt kun tuntuu että ei mitään osaa. Oisko tulla sitten väliä missä välissä tuo Tietokanta osio on tai jotain. Meinaa jos tuossa kohti yritän echota noita muita muuttujia niin ei tulostu mitään. En tiiä en varmaan ei oo paljosta kiinni viikon ajan yrittäny saaha tätäkii mut ei.
töheltäjä kirjoitti:
$Res=mysql_query($Que,$Conn) or die ("Virheellinen kysely: \"$Que\"<BR>".mysql_error()); $kuvaus = mysql_result($sql, 0, 0);
Eikös tuossa ole menny sekasin... $Res != $sql
itse asiassa on $kuvaus = mysql_result($Res, 0, 0); Jostain syystä oli tuohon jäänyt vielä noin, mutta silti ei toimi.
Hmm... Pitäiskö tuo kantakysely suorittaa tuolla listaa-funktion silmukassa? Nythän tuolla $nimi muuttujalla ei ole arvoa lainkaan kyselyä tehtäessä.
Yritin tarjota tuota vaikka mihin kohtaan, ei apua ollu tietysti ei sattunu oikeeseen kohtaan. Äijän voi olla hankala juttu minulle.
Mites tämä toimis, pikaisesti muokattu sinun koodia.
<?php $DBServer="localhost"; # Serveri $DBUser=""; # Käyttäjänimi $DBPassword=""; # Salasana $DBName="kommentit"; # Tietokannan nimi $Conn=mysql_connect($DBServer,$DBUser,$DBPassword) or die("Virhe, tietokantaan ei saa yhteyttä<BR>".mysql_error()); mysql_select_db($DBName,$Conn) or SQLError("Virhe, kantaa \"$DBName\" ei voi valita<BR>".mysql_error()); $perus="images/"; function laske($a){ for($i=0;$i<$a;$i++){ $sis.=" - "; } return $sis; } function listaa($alku, &$tied, &$hak){ global $perus; if(!file_exists($alku)) exit("<font color=\"red\">ERROR: hakemistoa <b>$perus</b> ei löydy</font>"); foreach(glob("$alku*") as $nimi){ $sis=explode("/", str_replace("$perus", "", $nimi)); echo laske(count($sis)); if(is_dir($nimi)){ $hak++; echo "<a href=\"$nimi\" class=\"hak\">".str_replace("$alku", "", $nimi)."</a><br>"; }else{ // ja jos ei $tied++; echo "<a href=\"$nimi\" class=\"fil\">".str_replace("$alku", "", $nimi)."</a> (".round(filesize($nimi)/1024/1024,2)." Mt) <br>"; $Que="SELECT kuvaus FROM vidmus WHERE tiedosto = \"$nimi\""; $Res=mysql_query($Que,$Conn) or die ("Virheellinen kysely: \"$Que\"<BR>".mysql_error()); $kuvaus = mysql_result($sql, 0, 0); echo $kuvaus . "<br>"; } if(is_dir("$nimi")) listaa($nimi."/", $tied, $hak); } } ?> <html> <head> <title>Video leikkeet</title> <style type="text/css" href="styles.css"> body { font-family: Sans; color: #000; font-size: 11px; padding: 0px 0px 0px 0px; } h1 { margin: 0 } div.listaus { background: #b6e2ed; border: 1px solid #5894a3; padding: 10px } div.tulos { float: right top; } a:link.hak { color: red; text-decoration: none } a:visited.hak { color: #990000; text-decoration: none } a:hover.hak { color: red; text-decoration: none } a:active.hak { color: blue; text-decoration: none } a:link.fil { color: black; text-decoration: none } a:visited.fil { color: gray; text-decoration: none } a:hover.fil { color: black; text-decoration: none } a:active.fil { color: blue; text-decoration: none } </style> </head> <body> <h1>Video leikkeet</h1><br><br> <?php $tied = $hak = 0; echo "<div class=\"listaus\">"; listaa($perus, $tied, $hak); echo "</div>Leikkeitä yhteensä: $tied"; ?> </body> </html>
Virheellinen kysely: "SELECT kuvaus FROM vidmus WHERE tiedosto = images/Bear.wmv"
Tuommosen antaa eli sisältääkö tuo hakumuuttuja sitten tuon images/ eli pitäs kait saaha pois tuo, vai miten mahtas olla vaikuttas et vihdoinkin olis lähellä.
Antaa tuon saman virheilimotuksen vaikka laittaa suoraan tuohon WHERE tiedosto = 'Bear.wmv'"; mikähän lie sitten pielessä?
Jep, nyt nuo rivit:
$Conn=mysql_connect... mysql_select_db($DBName,$Conn)...
on tuon funktion ulkopuolella. Siirrä ne sinne mukaan tai anna $Conn parametrinä.
Ja tosiaan tuo polku pitäisi saada pois kyselystä.
Nyt tekee kun laittaa tuon pelekästään sillä nimellä. Pitäs varmaan tutkia et miten sais sen alaku osan siitä $nimi pois.
Laiton sen silleen et siinä tallennus vaiheessa lisään sen tiedoston nimen eteen tuon images/ ,silleen ainakiin tuntus toimivan.
Kyllä täytii kiittää Wiwwee suuresti saan vihdoinkin ehkäpä valamiiks tämän tekeleistön.
Eipä kestä...
Aihe on jo aika vanha, joten et voi enää vastata siihen.