22. marts 2004 - 16:19
Der er
64 kommentarer og 1 løsning
Finde navn af upload
Hej. Jeg har et uploade script, som virker som det skal... Det uploader 5 billeder på en gang, men når den uploader mere end 1 af gangen så laver den en ny row i databasen, og skriver navnet på billede 2,3,4 og 5 i de nye rows, istedet for i den nuværende row, hvor alt det andet data og billede 1 man ligger ind er. Er det ikke muligt at gøre sådan at den skriver navnet på de 5 uploadede billeder i samme row, så der er nogle felter som hedder billede, billede 2, billede 3 osv.? Det er fordi det skal have samme ID, så derfor er det lidt vigtigt. Her er upload.php: <? include "top.php"; ?> <table><tr> <td> <? $con = mysql_connect("localhost", "**", "**"); mysql_select_db("**"); ?> <?php $dist = $_SERVER["DOCUMENT_ROOT"] ."/pass/upload/"; if (isset($_FILES["upfile"])) { echo"<b>Det er oprettet</b><br><br>"; $antal = 0; for($i = 0; $i < count($_FILES["upfile"]["name"]); $i++) { if ($_FILES["upfile"]["name"][$i] !="") { $antal++; if(is_uploaded_file($_FILES["upfile"]["tmp_name"][$i])) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i])) { $navn = $_POST["navn"] ; $sort = $_POST["sort"] ; $before = $_POST["before"] ; $nu = $_POST["nu"] ; $sparer = $_POST["sparer"] ; $tekst = $_POST["tekst"] ; $str1 = $_FILES["upfile"]["name"][$i]; $str2 = $_FILES["upfile"]["size"][$i]; $str3 = $_FILES["upfile"]["type"][$i]; echo "". $str1 ." er uploadet<br>\n"; }else{ echo"Der skete en fejl, prøv igen"; } }else{ echo"Der skete en fejl, og tilbudet blev ikke oprettet. Prøv igen"; } } } } ?> <?php mysql_query("INSERT INTO upload (navn, sort, before, nu, sparer, tekst, billede) values ('$navn', '$sort', '$before', '$nu', '$sparer', '$tekst', '$str1')"); printf("Der er nu oprettet %d\n", mysql_insert_id()); ?> <? $query = mysql_query('SELECT * FROM upload order by id'); while($row = mysql_fetch_array($query)) { $indhold = '<? include "top.php"; $con = mysql_connect("localhost", "**", "**"); mysql_select_db("**"); mysql_close; $id = basename($_SERVER["PHP_SELF"], ".php"); $query = mysql_query("SELECT * FROM upload WHERE ID=$id") or die(mysql_error()); while($row = mysql_fetch_array($query)) { echo " <table width=489 border=0> <tr> <td width=313 valign=top><table width=100 border=0 cellpadding=0 cellspacing=1 bgcolor=#333333> <tr> <td bgcolor=#E7E4E0> <p><img src=\"../pass/upload/$row[billede]\" alt=\"$row[navn] - $row[sort]\" width=\"270\" height=\"200\"></p></td> </tr> </table> <font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif><br> </font> <table width=240 border=0> <tr> <td width=154><table width=150 border=0 cellpadding=0 cellspacing=0> <tr> <td width=81><table width=69 border=0 cellpadding=0 cellspacing=1 bgcolor=#333333> <tr> <td width=133 bgcolor=#E7E4E0><a href=# onclick=popup(tilbud11_1.htm,tilbud11_1,600,573);><img src=../images/tilbud/casa1_lille.jpg alt=1 . Casa Eg width=67 height=50 border=0></a></td> </tr> </table></td> <td width=69><table width=69 border=0 cellpadding=0 cellspacing=1 bgcolor=#333333> <tr> <td width=133 bgcolor=#E7E4E0><a href=# onclick=popup(tilbud11_2.htm,tilbud11_2,450,600);><img src=../images/tilbud/casa2_lille.jpg alt=2. Casa Eg width=67 height=50 border=0></a></td> </tr> </table></td> </tr> </table></td> <td width=76><table width=69 border=0 cellpadding=0 cellspacing=1 bgcolor=#333333> <tr> <td width=133 bgcolor=#E7E4E0><a href=# onclick=popup(tilbud11_3.htm,tilbud11_3,600,450);><img src=../images/tilbud/casa3_lille.jpg alt=3. Casa Eg width=67 height=50 border=0></a></td> </tr> </table></td> </tr> </table> <font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif> <br> Klik på billederne for at se dem i stor format </font></td> <td width=166 valign=top><table width=196 border=0> <tr> <td colspan=2><font size=1 face=Verdana, Arial, Helvetica, sans-serif><strong>Udstillingskøkken</strong></font></td> </tr> <tr> <td width=76><font size=1><strong><font color=#333333 face=Verdana, Arial, Helvetica, sans-serif>Navn:</font></strong></font></td> <td width=110><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>$row[navn]</font></td> </tr> <tr> <td><font size=1><strong><font color=#333333 face=Verdana, Arial, Helvetica, sans-serif>Træsort:</font></strong></font></td> <td><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>$row[sort]</font></td> </tr> <tr> <td><font face=verdana size=1 color=#333333><strong><font color=#333333 face=Verdana, Arial, Helvetica, sans-serif>Før pris:</font></strong></font></td> <td><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>$row[before]</font></td> </tr> <tr> <td><font face=verdana size=1 color=#333333><strong><font color=#333333 face=Verdana, Arial, Helvetica, sans-serif>Nu pris:</font></strong></font></td> <td><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>$row[nu]</font></td> </tr> <tr> <td><strong><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>Du sparer:</font></strong></td> <td><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>$row[sparer]</font></td> </tr> </table> <p><font face=verdana size=1 color=#333333>$row[tekst]</font></strong></p> </td> </tr> </table> <font color=#000000 size=1 face=Verdana, Arial, Helvetica, sans-serif><br> <a href=../tilbud.php target=_self>Tilbage</a></font> "; } include "bund.php"; ?> '; $fp = fopen("$row[id].php","w"); fputs($fp,$indhold); fclose($fp); } ?> </td> </tr></table> <? include "bund.php"; ?> Og her er den side med forms: <?php if(ini_get("file_uploads") == 1) { ?> <form enctype="multipart/form-data" action="upload.php" method="post"> <table width="468" border="0" cellspacing="0" cellpadding="0"> <tr valign="top"> <td width="180"><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Billede 1 (stor):</font></strong></td> <td width="288"><input name="upfile[]" type="file" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Billede 2:</font></strong></td> <td><input name="upfile[2]" type="file" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Billede 3:</font></strong></td> <td><input name="upfile[3]" type="file" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Billede 4:</font></strong></td> <td><input name="upfile[4]" type="file" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Billede 5:</font></strong></td> <td><input name="upfile[5]" type="file" size="30" class="input"></td> </tr> <tr valign="top"> <td> </td> <td> </td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Navn:</font></strong></td> <td><input type="text" name="navn" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Træsort:</font></strong></td> <td><input type="text" name="sort" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Før pris:</font></strong></td> <td><input type="text" name="before" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Nu pris:</font></strong></td> <td><input type="text" name="nu" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Man sparer:</font></strong></td> <td><input type="text" name="sparer" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Tekst om køkkenet:</font></strong></td> <td><textarea name="tekst" cols="37" rows="7"></textarea></td> </tr> <tr valign="top"> <td><input type="submit" name="Submit" value="Indsæt"> <input type="reset" name="reset" value="Slet alt"></td> <td> </td> </tr> </table> </form> <?php }else{ echo""; echo""; } ?>
Annonceindlæg fra itavis
22. marts 2004 - 16:24
#1
har du oprettet flere felter i din database/tabel der billedere kommer ind
22. marts 2004 - 16:26
#2
Ikke lige nu, men jeg har tænkt mig at oprette 4 felter mere. I øjeblikket er der en der hedder billede, og jeg vil så oprette 4 som skal hedde billede 2, billede 3, billede 4 og billede 5
22. marts 2004 - 16:34
#3
prøv at rette bare et gæt <?php mysql_query("INSERT INTO upload (navn, sort, before, nu, sparer, tekst, billede, billede2, billede3, billede4, billede5) values ('$navn', '$sort', '$before', '$nu', '$sparer', '$tekst', '$str1','$str1','$str1','$str1','$str1')"); printf("Der er nu oprettet %d\n", mysql_insert_id()); ?>
22. marts 2004 - 16:39
#4
Det virkede ikke... Så skriver den bare det første billede jeg uploader ind... Mit gæt ville nok være noget med at man på form siden kalder dem for noget forskelligt, og så den vej gør det, men kan ikke lige finde ud af hvordan det skal gøres
22. marts 2004 - 16:39
#5
Lige en rettelse... Sådan her ser min form side ud: <?php if(ini_get("file_uploads") == 1) { ?> <form enctype="multipart/form-data" action="upload.php" method="post"> <table width="468" border="0" cellspacing="0" cellpadding="0"> <tr valign="top"> <td width="180"><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Billede 1 (stor):</font></strong></td> <td width="288"><input name="upfile[]" type="file" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Billede 2:</font></strong></td> <td><input name="upfile[]" type="file" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Billede 3:</font></strong></td> <td><input name="upfile[]" type="file" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Billede 4:</font></strong></td> <td><input name="upfile[]" type="file" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Billede 5:</font></strong></td> <td><input name="upfile[]" type="file" size="30" class="input"></td> </tr> <tr valign="top"> <td> </td> <td> </td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Navn:</font></strong></td> <td><input type="text" name="navn" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Træsort:</font></strong></td> <td><input type="text" name="sort" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Før pris:</font></strong></td> <td><input type="text" name="before" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Nu pris:</font></strong></td> <td><input type="text" name="nu" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Man sparer:</font></strong></td> <td><input type="text" name="sparer" size="30" class="input"></td> </tr> <tr valign="top"> <td><strong><font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">Tekst om køkkenet:</font></strong></td> <td><textarea name="tekst" cols="37" rows="7"></textarea></td> </tr> <tr valign="top"> <td><input type="submit" name="Submit" value="Indsæt"> <input type="reset" name="reset" value="Slet alt"></td> <td> </td> </tr> </table> </form> <?php }else{ echo""; echo""; } ?>
22. marts 2004 - 16:40
#6
Jeg ville nok lægge filnavne ind i et array under upload, og derefter smide det array ind i DB'en
22. marts 2004 - 16:42
#7
Hmm... Kan du ikke lige komme med et eksempel?
22. marts 2004 - 16:55
#8
$antal = 0; $names = array(); længere nede: if(move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i])) { $names[] = $_FILES["upfile"]["name"][$i]; I query ville jeg så lægge filnavne ind i et felt, med et komma imellem implode()og så explode() ved udtræk fra DB
22. marts 2004 - 17:00
#9
Jeg har fixet de 2 første ting, men forstår ikke lige den sidste... I query ville du gøre hvad? mysql_query("INSERT INTO upload (navn, sort, before, nu, sparer, tekst, billede) values ('$navn', '$sort', '$before', '$nu', '$sparer', '$tekst', '$str1')");
22. marts 2004 - 17:09
#10
$names = implode(",", $names); og så istedet for $str1 bruge $names i query'en Kolonnen billede indeholder så filnavne som er blevet uploadet a'la' billede1.jpg,billede2.jpg,billede3.jpg
22. marts 2004 - 17:12
#11
æhh, og når du så henter fra DB bruger du $filer = explode(",", $var["billede"]); så har du filnavne adskilt til visning af hver enkelt
22. marts 2004 - 17:14
#12
Mener nu godt nok at der er en anden måde at bruge et array sammen med Mysql, men er ikke sikker! :O)
http://eksperten.dk/spm/479442
22. marts 2004 - 18:21
#13
Det virker ikke det der... Den skriver stadig kun den ene af filerne... Her er min upload.php: <? include "top.php"; ?> <table><tr> <td> <? $con = mysql_connect("localhost", "xxxx", "xxxxxx"); mysql_select_db("xxxx"); mysql_close; ?> <?php $dist = $_SERVER["DOCUMENT_ROOT"] ."/pass/upload/"; if (isset($_FILES["upfile"])) { echo"<b>Det er oprettet</b><br><br>"; $antal = 0; $names = array(); for($i = 0; $i < count($_FILES["upfile"]["name"]); $i++) { if ($_FILES["upfile"]["name"][$i] !="") { $antal++; if(is_uploaded_file($_FILES["upfile"]["tmp_name"][$i])) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i])) { $names[] = $_FILES["upfile"]["name"][$i]; $navn = $_POST["navn"] ; $sort = $_POST["sort"] ; $before = $_POST["before"] ; $nu = $_POST["nu"] ; $sparer = $_POST["sparer"] ; $tekst = $_POST["tekst"] ; $names = implode(",", $names); $str1 = $_FILES["upfile"]["name"][$i]; $str4 = $_FILES["up"]["name"][$i]; $str2 = $_FILES["upfile"]["size"][$i]; $str3 = $_FILES["upfile"]["type"][$i]; echo "". $str1 ." er uploadet<br>\n"; }else{ echo"Der skete en fejl, prøv igen"; } }else{ echo"Der skete en fejl, og tilbudet blev ikke oprettet. Prøv igen"; } } } } ?> <?php mysql_query("INSERT INTO upload (navn, sort, before, nu, sparer, tekst, billede, billede2, billede3, billede4, billede5) values ('$navn', '$sort', '$before', '$nu', '$sparer', '$tekst', '$names','$str1','$str1','$str1','$str1')"); printf("Der er nu oprettet %d\n", mysql_insert_id()); echo" $names"; ?> <? $query = mysql_query('SELECT * FROM upload order by id'); while($row = mysql_fetch_array($query)) { $indhold = '<? include "top.php"; $con = mysql_connect("localhost", "xxxxxx", "xxxxx"); mysql_select_db("xxxxx"); mysql_close; $id = basename($_SERVER["PHP_SELF"], ".php"); $query = mysql_query("SELECT * FROM upload WHERE ID=$id") or die(mysql_error()); while($row = mysql_fetch_array($query)) { echo " <table width=489 border=0> <tr> <td width=313 valign=top><table width=100 border=0 cellpadding=0 cellspacing=1 bgcolor=#333333> <tr> <td bgcolor=#E7E4E0> <p><img src=\"../pass/upload/$row[billede]\" alt=\"$row[navn] - $row[sort]\" width=\"270\" height=\"200\"></p></td> </tr> </table> <font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif><br> </font> <table width=240 border=0> <tr> <td width=154><table width=150 border=0 cellpadding=0 cellspacing=0> <tr> <td width=81><table width=69 border=0 cellpadding=0 cellspacing=1 bgcolor=#333333> <tr> <td width=133 bgcolor=#E7E4E0><a href=# onclick=popup(tilbud11_1.htm,tilbud11_1,600,573);><img src=../images/tilbud/casa1_lille.jpg alt=1 . Casa Eg width=67 height=50 border=0></a></td> </tr> </table></td> <td width=69><table width=69 border=0 cellpadding=0 cellspacing=1 bgcolor=#333333> <tr> <td width=133 bgcolor=#E7E4E0><a href=# onclick=popup(tilbud11_2.htm,tilbud11_2,450,600);><img src=../images/tilbud/casa2_lille.jpg alt=2. Casa Eg width=67 height=50 border=0></a></td> </tr> </table></td> </tr> </table></td> <td width=76><table width=69 border=0 cellpadding=0 cellspacing=1 bgcolor=#333333> <tr> <td width=133 bgcolor=#E7E4E0><a href=# onclick=popup(tilbud11_3.htm,tilbud11_3,600,450);><img src=../images/tilbud/casa3_lille.jpg alt=3. Casa Eg width=67 height=50 border=0></a></td> </tr> </table></td> </tr> </table> <font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif> <br> Klik på billederne for at se dem i stor format </font></td> <td width=166 valign=top><table width=196 border=0> <tr> <td colspan=2><font size=1 face=Verdana, Arial, Helvetica, sans-serif><strong>Udstillingskøkken</strong></font></td> </tr> <tr> <td width=76><font size=1><strong><font color=#333333 face=Verdana, Arial, Helvetica, sans-serif>Navn:</font></strong></font></td> <td width=110><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>$row[navn]</font></td> </tr> <tr> <td><font size=1><strong><font color=#333333 face=Verdana, Arial, Helvetica, sans-serif>Træsort:</font></strong></font></td> <td><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>$row[sort]</font></td> </tr> <tr> <td><font face=verdana size=1 color=#333333><strong><font color=#333333 face=Verdana, Arial, Helvetica, sans-serif>Før pris:</font></strong></font></td> <td><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>$row[before]</font></td> </tr> <tr> <td><font face=verdana size=1 color=#333333><strong><font color=#333333 face=Verdana, Arial, Helvetica, sans-serif>Nu pris:</font></strong></font></td> <td><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>$row[nu]</font></td> </tr> <tr> <td><strong><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>Du sparer:</font></strong></td> <td><font color=#333333 size=1 face=Verdana, Arial, Helvetica, sans-serif>$row[sparer]</font></td> </tr> </table> <p><font face=verdana size=1 color=#333333>$row[tekst]</font></strong></p> </td> </tr> </table> <font color=#000000 size=1 face=Verdana, Arial, Helvetica, sans-serif><br> <a href=../tilbud.php target=_self>Tilbage</a></font> "; } include "bund.php"; ?> '; $fp = fopen("$row[id].php","w"); fputs($fp,$indhold); fclose($fp); } ?> </td> </tr></table> <? include "bund.php"; ?>
22. marts 2004 - 22:45
#14
Jeg har fået den til at gemme navnene i databasen, som den skal, men hvordan virker det der explode? Hvis man nu gerne vil hente de 5 billeder ud, hvordan skal man så skrive i denne situation: <? $query = mysql_query("SELECT * FROM upload order by id"); while($row = mysql_fetch_array($query)) { echo" <img src=\"$row[billede]\"> "; } ?> Hvis man gør sådan der, skriver den bare alle navnene på billederne med et komma imellem... Hvor skal jeg smide explode ind, og hvordan henter man de 5 forskellige navne frem? Altså $row[Hvad skal der stå her?] ??
23. marts 2004 - 06:13
#15
Det er jo fedt du fandt ud af det første uden at få serveret den fulde kode! :O) Og prøv så: <? $query = mysql_query("SELECT * FROM upload order by id"); while($row = mysql_fetch_array($query)) { $pic = explode(",", $row["billede"]); // Brug hellere gåse-øjne!!! " for($i = 0; $i < count($pic); $i++) { echo $pic[$i] ." | "; // Bruger du jo så <img scr=....... for at vise $pic[$i] } } ?>
23. marts 2004 - 16:24
#16
Det kan jeg så ikke få til at virke... Her er koden: <?php Database login ?> <? $query = mysql_query("SELECT * FROM upload order by id"); while($row = mysql_fetch_array($query)) { $pic = explode(",", $row["billede"]); // Brug hellere gåse-øjne!!! " for($i = 0; $i < count($pic); $i++) { echo $pic[$i] ." | ";" ; } } ?> Hvis man skriver <img src=$pic[$i] ." | ";"> skriver den bare $pic[$1] der hvor den skal finde billedet... Hvad gør jeg forkert her?
23. marts 2004 - 16:34
#17
Tror jeg har fundet fejlen. Det er fordi at den kun skriver navnet på billederne hvis man skriver echo, og ikke echo"... Men hvis man kun skriver echo, skriver den at der var en unexpected < ved <img src= Hvad gør man der?
23. marts 2004 - 16:56
#18
Det virker også nu :) <? $query = mysql_query("SELECT * FROM upload order by id"); while($row = mysql_fetch_array($query)) { $pic = explode(",", $row["billede"]); // Brug hellere gåse-øjne!!! " for($i = 0; $i < count($pic); $i++) { $b = $pic[$i] ." | ";; echo" <img src=/pass/upload/$b> "; } } ?>
23. marts 2004 - 16:58
#19
Er det ikke muligt at skære dem fra hinanden? Lige nu viser den jo bare de 5 billeder på en række... Kan man ikke gøre sådan at man kan vise dem skilt fra hinanden, hvor som helst på en side?
23. marts 2004 - 17:29
#20
johh, hvis du kører $query førend det første billede skal vises, kan du bruge: $pics = explode(",", mysql_result($query, 6); hvor 6 == 7. kolonne som hentes med din query.
23. marts 2004 - 17:29
#21
23. marts 2004 - 18:00
#22
<? include "top.php"; ?> <? $con = mysql_connect("localhost", "xxxx", "xxxx"); mysql_select_db("xxxx"); mysql_close; ?> <? $query = mysql_query("SELECT * FROM upload order by id"); while($row = mysql_fetch_array($query)) { $pic = explode(",", $row["billede"]); for($i = 0; $i < count($pic); $i++) { $pics = explode(",", mysql_result($query, 6); $b = $pic[$i] ." | ";; echo" $pics <img src=/pass/upload/$b> "; } } ?> <? include "bund.php"; ?> Gir denne fejl: Parse error: parse error, unexpected ';' in C:\W3Sites\biga8000\www\pass\show2.php on line 23 Linje 23: $pics = explode(",", mysql_result($query, 6);
23. marts 2004 - 18:15
#23
jah, det var jo noget være vrøvl jeg fik fyret af der! Glemte også lige at spørge hvorfor du kører det i en while-løkke? Skal den det? Du kender ikke ID'et på det du vil vise?
23. marts 2004 - 18:16
#24
være == værre ???
23. marts 2004 - 18:21
#25
Sådan her kører det: Når man opretter noget nyt data og billeder, opretter den samtidig en ny fil, som hedder det samme som ID'et på den row man lige har smidt noget data ind i. Så henter jeg så ID igen ind i ved hjælp af det du hjalp mig med for et par dage siden, altså det med at den henter fil navnet igen... Så jo jeg kender jo ID'en...
23. marts 2004 - 18:25
#26
Hvorfor laver den en ny fil?
23. marts 2004 - 18:27
#27
Her kommer den lange forklaring :)
http://www.biga-aarhus.dk/tilbud.php - det er det jeg er igang med. Jeg skal lave et uploade system hvor man kan uploade alt det som man kan skrive lige nu, så det bare bliver lettere at lave et nyt tilbud. Jeg opretter så en ny fil, fordi den jo skal ind på en ny side for hvert tilbud der er... (Correct me if i'm wrong)
23. marts 2004 - 18:30
#28
jahh, wrong vil jeg sgu nok sige, uden at ha' set på dit link! Er din table ikke med en ID som automatisk øges hvergang du gemmer noget nyt i DB'en? Så bruger du php til at hente info igen ud fra det ID i stedet for en ny fil. Altså kun en fil.
23. marts 2004 - 18:35
#29
Jo, DB tæller ID... Det var også det jeg havde tænkt mig at gøre først, men hvordan får man den til at gøre det præcist? Det den skal gøre er følgende: 1: Man går ind under opret og opretter et nyt tilbud, herefter bliver data og navne på billederne smidt ind i databasen, og billederne bliver smidt ind på ftp. 2: Man går ind på tilbud.php og der er nu automatisk oprettet et nyt link til det nye tilbud (det kan jeg godt selv få den til, for det er jo bare at vise dem alle... Har dog et lille spørgsmål her også. Er det ikke muligt at smide billede og navn på tilbudet ind i en tabel (altså html ikke database), og så få 3 til at stå op på række? Hvis jeg gør det nu, viser den kun en på en linje, og så går den en linje ned og viser den næste her) 3: Når man klikker på det nye link skal man komme ind på selve tilbudet. Og her skal den så hente WHERE ID = (ID på det tilbud der lige er blevet oprettet) Har php en kommando som kan hente den id? (du skal lige vide at jeg kun har arbejdet med php i et par måneder, og det her er den største opgave jeg har fået smidt i hovedet indtil videre)
23. marts 2004 - 18:39
#30
hmm, jow, men nu vil jeg hellere spørge: Tilbud oprettes, og der bliver lavet et nyt ID for det tilbud! Ok. På tilbud.php, som skal vise både alle tilbud samt et enkelt tilbud, hvis det er valgt, hvordan ville du prøve at "nå" det? Du har vel prøvet at "fyre en IF af :O)"?
23. marts 2004 - 18:41
#31
Jeg er ikke helt gode venner med IF og While og de andre funktioner php har endnu... Jeg ved godt hvad IF gør, men jeg er ikke sikker på hvordan den bruges... Men hvordan vil du lave en IF om det?
23. marts 2004 - 19:01
#32
Hmm, prøv lige: <?php $nr1 = "Hejsa du du"; $nr2 = 6; if($nr1 == "Hejsa du") { echo $nr1; }else{ echo"\$nr1 er IKKE <b>Hejsa du</b>!!!!!"; } echo"<p>\n"; if(!isset($_GET["id"])) { for($i = 1; $i <=10; $i++) { echo"<a href=\"". $_SERVER["PHP_SELF"] ."?id=". $i ."\">Link ". $i ."</a><br>\n"; } }else{ echo"GET id == ". $_GET["id"] .". <a href=\"". $_SERVER["PHP_SELF"] ."\">back</a><p>"; if($_GET["id"] <= $nr2) { echo"\$_GET[\"id\"] er lig med eller mindre end ". $nr2; }else{ echo"\$_GET[\"id\"] er større end ". $nr2; } } ?>
23. marts 2004 - 19:03
#33
hmm, og nu når vi ved at det er tal vi vil spørge efter, så tjek lige at GET id er numerisk: if(!isset($_GET["id"]) || !is_numeric($_GET["id"])) {
23. marts 2004 - 19:05
#34
23. marts 2004 - 19:07
#35
Jow, men hvad får du ud af det?
23. marts 2004 - 19:08
#36
I forhold til at du vil bruge samme fil til at vise et "row-id" fra din DB?
23. marts 2004 - 19:09
#37
og et andet "row-id" hvis et id er valgt!
23. marts 2004 - 19:11
#38
Nåh, en gang til! :O) Hvad får du ud af det, hvis du med en og samme fil vil vise alle ID'er, og vælger man et ID så er det det ID som skal vises?
23. marts 2004 - 19:12
#39
Altså, kan du følge "meningen"?
23. marts 2004 - 19:12
#40
ideen........
23. marts 2004 - 19:14
#41
Idnen jeg overhovedet vidste der var noget som hed PHP, havde jeg lavet et DK-kort, klik til et amt, drefra klik til en kommune, og derfra klik til en by! (blev til noget med 12-1300 HTML filer! :O]) Og det kan jo laves i en enkelt! :O)
23. marts 2004 - 19:15
#42
PHP fil altså!!! :O)
23. marts 2004 - 19:15
#43
Kan godt følge ideen... Og det vil også være noget nemmere... Jeg vil lige prøve at sætte den kode du har givet mig der ind i det jeg skal bruge... Giv mig lige et par minutter :)
23. marts 2004 - 19:16
#44
jahh, jeg vil lige gå en tur i netto! :O)
23. marts 2004 - 19:20
#45
Lige en ting!!!!!!!! Når du laver dine query'es, så adskil gerne PHP og mysql for sig. Det er ikke strngt nødvendigt, men du "kommer aldrig galt afsted" Ikke $query = mysql_query("SELECT * FROM table WHERE id = '$id'") or die (mysql_error()); Brug hellere den sikre (og "langsommere kodning"): $query = mysql_query("SELECT * FROM `table` WHERE `id` = '". $_GET["id"] ."'") or die (mysql_error());
23. marts 2004 - 19:51
#46
<?php
$conn = mysql_connect("localhost", "xxxx", "xxxx");
mysql_select_db("xxxx");
$query = mysql_query("SELECT * FROM `upload`") or die (mysql_error());
while($row = mysql_fetch_array($query)) {
echo"<p>\n";
if(!isset($_GET["id"]) || !is_numeric($_GET["id"])) {
for($i = 1; $i <=1 ; $i++) {
echo"
<a href=\"". $_SERVER["PHP_SELF"] ."?id=". $i ."\">Link $row[id]</a>\n<br><br>";
}
}else{
$query = mysql_query("SELECT * FROM `upload` WHERE `id` = '". $_GET["id"] ."'") or die (mysql_error());
while($row = mysql_fetch_array($query)) {
echo"<a href=\"". $_SERVER["PHP_SELF"] ."\">back</a><p>
<br>
<br>
<b> $row[navn] </b>
";
} } }
?>
Du kan se resultatet her:
http://www.biga-aarhus.dk/pass/vis.php Jeg mangler dog et par ting:
Den går hver gang ind og henter ID 1 fordi jeg har sagt at den kun skal vise 1 link for hver id den finder... for($i = 1; $i <=1; $i++) {
Kan man ikke gøre så den kun henter det ene link per id den finder, og stadig går ind på den rigtige id?
23. marts 2004 - 19:59
#47
Hvis id IKKE er sat, elelr den ikke er numerisk, så henter alle id i table! Og er id sat, og den er numerisk, så skal den kun hente det row som svarer til id! if(!isset($_GET["id"]) || !is_numeric($_GET["id"])) { hent alle id, og KUN id! }else{ hent KUN det row som svarer til id } forløkken var kun for at "demonstrere" en if, og havde som sådan ikke noget med dit "behov" at gøre
23. marts 2004 - 20:02
#48
$query("SELECT `id` FROM `upload`"); $query("SELECT * FROM `upload` WHERE `id` = '". $_GET["id"] ."'");
23. marts 2004 - 20:02
#49
Jamen jeg skal vel også bruge den der henter alle id'er? Det er jo til den side hvor man skal vælge hvilket tilbud man gerne vil kigge nærmere på?
23. marts 2004 - 20:08
#50
Det giver det samme jo, bortset fra at den ikke henter alt data'en. Men den laver jo stadig samme fejl :)
23. marts 2004 - 20:15
#51
hmm, ja, men prøv at se den her: ("udvidet" fordi du bør tjekke lidt om med din DB hvad du ønsker at hente, inden du laver din query!) <?php //laver et array for testens skyld. "Svarer" til de id'er du har i DB'en $nr1 = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Tal behøver ikke komme i parentes. Hvis det ikke var et tal: $nr1 = array("navn1", "navn2"); if(!isset($_GET["id"]) || !is_numeric($_GET["id"])) { for($i = 1; $i <= count($nr1); $i++) { //for-løkken er "erstatning" for while-løkken echo"<a href=\"". $_SERVER["PHP_SELF"] ."?id=". $i ."\">Link ". $i ."</a><br>\n"; //lav link til hvert id } }else{ if(!in_array($_GET["id"], $nr1)) { // if(mysql_num_rows($query) == 0) { INTET id som svarer til efterspurgte! echo"Sorry, men \$_GET[\"id\"] = ". $_GET["id"] ." findes desværre ikke!"; }else{ echo"Ok, det lykkedes at hente et row i db'en som svarer til den satte \$_GET[\"id\"]!"; // if(mysql_num_rows($query) == 1) { } } ?>
23. marts 2004 - 20:16
#52
Er du med? :O)
23. marts 2004 - 20:19
#53
hmm, <?php //laver et array for testens skyld. "Svarer" til de id'er du har i DB'en $nr1 = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Tal behøver ikke komme i parentes. Hvis det ikke var et tal: $nr1 = array("navn1", "navn2"); if(!isset($_GET["id"]) || !is_numeric($_GET["id"])) { //lav query her so mhenter alle id'er for($i = 1; $i <= count($nr1); $i++) { //for-løkken er "erstatning" for while-løkken echo"<a href=\"". $_SERVER["PHP_SELF"] ."?id=". $i ."\">Link ". $i ."</a><br>\n"; //lav link til hvert id } }else{ // lav query som henter præcis det satte id if(!in_array($_GET["id"], $nr1)) { // if(mysql_num_rows($query) == 0) { INTET id som svarer til efterspurgte! echo"Sorry, men \$_GET[\"id\"] = ". $_GET["id"] ." findes desværre ikke!"; }else{ echo"Ok, det lykkedes at hente et row i db'en som svarer til den satte \$_GET[\"id\"]!"; // if(mysql_num_rows($query) == 1) { } } ?>
23. marts 2004 - 20:27
#54
<?php Database connection if(!isset($_GET["id"]) || !is_numeric($_GET["id"])) { $query = mysql_query("SELECT `id` FROM `upload`"); while($row = mysql_fetch_array($query)) { for($i = 1; $i <= count($row[id]); $i++) { //for-løkken er "erstatning" for while-løkken echo"<a href=\"". $_SERVER["PHP_SELF"] ."?id=". $i ."\">Link ". $i ."</a><br>\n"; //lav link til hvert id }} }else{ $query = mysql_query("SELECT `id` FROM `upload`"); while($row = mysql_fetch_array($query)) { if(!in_array($_GET["id"], $row[id])) { // if(mysql_num_rows($query) == 0) { INTET id som svarer til efterspurgte! echo"Sorry, men \$_GET[\"id\"] = ". $_GET["id"] ." findes desværre ikke!"; }else{ echo"Ok, det lykkedes at hente et row i db'en som svarer til den satte \$_GET[\"id\"]!"; // if(mysql_num_rows($query) == 1) { } } } ?>
23. marts 2004 - 20:28
#55
Når du siger at For-løkken er en erstatning for while løkken, hvad skal jeg så bruge der istedet for while?
23. marts 2004 - 20:31
#56
hmm, hmm: <?php if(!isset($_GET["id"]) || !is_numeric($_GET["id"])) { $query = mysql_query("SELECT `id` FROM `upload`") or die (mysql_error()); while($vis=mysql_fetch_array($query)) { echo"<a href=\"". $_SERVER["PHP_SELF"] ."?id=". $vis["id"] ."\">Link ". $vis["id"] ."</a><br>\n"; } }else{ $query = mysql_query("SELECT * FROM `upload` WHERE `id` = '". $_GET["id"] ."'") or die (mysql_error()); if(mysql_num_rows($query) == 1) { echo"Ok, det lykkedes at hente et row i db'en som svarer til den satte \$_GET[\"id\"]!"; }else{ echo"Sorry, men \$_GET[\"id\"] = ". $_GET["id"] ." findes desværre ikke i DB'en!";} } } ?> utestet, men je gtror den virker! :O)
23. marts 2004 - 20:34
#57
Det virker :) Så skal jeg bare lige have sat det op til mit eget, men det burde ikke volde de store problemer :) Det bliver først i morgen jeg sætter det helt op, for jeg daffer af nu :) Men jeg skriver igen i morgen engang, og tusinde tak for hjælpen!
24. marts 2004 - 00:37
#58
Hvordan henter man data fra databasen nu? <?php if(!isset($_GET["id"]) || !is_numeric($_GET["id"])) { $query = mysql_query("SELECT `id` FROM `upload`") or die (mysql_error()); while($vis=mysql_fetch_array($query)) { echo"<a href=\"". $_SERVER["PHP_SELF"] ."?id=". $vis["id"] ."\">Link ". $vis["id"] ."</a><br>\n"; } }else{ $query = mysql_query("SELECT * FROM `upload` WHERE `id` = '". $_GET["id"] ."'") or die (mysql_error()); if(mysql_num_rows($query) == 1) { echo" $row[id] "; }else{ echo"Der er sket en fejl, prøv igen";} } ?> Førhen skrev jeg $row[id], men det virker ikke mere efter while linjen er blevet ændret... Hvad skal man så skrive nu? :)
24. marts 2004 - 06:44
#59
Du definerer jo ikke $row! if(mysql_num_rows($query) == 1) { $row = mysql_fetch_array($query); echo $row["id"]; } Og brug nu hellere " eller ' når du vise indhold. Ikke $row[id] men $row["id"] eller $row['id']
24. marts 2004 - 19:18
#60
Ok, nu har jeg fået sat det op. Jeg har lige 2 spg :) 1: Er det muligt at lave et echo, hvor man kan få det til at vises på lige en række? Det kan man jo godt ved at lade være med at bruge <br>, men det er fordi jeg skal have et billede øverst, og så skal jeg nedenunder skrive navnet, og så bliver jeg jo nød til at bruge <br>. Har også prøvet med en tabel, men det kan jeg hellere ikke få til at virke. 2: Vi gik lidt i stå med det der explode, så jeg har ikke fået navnene på billeder til at være skilt fra hinanden endnu, hvordan gøres det?
25. marts 2004 - 19:18
#61
Nå, jeg fik explode til at virke ved hjælp fra php.net :) Kommer du ikke lige med et svar, så du kan få dine meget velfortjente points ? :)
25. marts 2004 - 19:23
#62
Jow da! :O) Fandt du ud af det med billedvisningen på række?
25. marts 2004 - 19:43
#63
Nej, det fik jeg ikke helt til at virke. Kan man det ?
25. marts 2004 - 20:00
#64
Du kan prøve dig frem med dette måske? (ved jo ikke lige hvordan du har opbygget din side med HTML) <?php if(!isset($_GET["id"]) || !is_numeric($_GET["id"])) { $query = mysql_query("SELECT `id` FROM `upload`") or die (mysql_error()); while($vis=mysql_fetch_array($query)) { echo"<a href=\"". $_SERVER["PHP_SELF"] ."?id=". $vis["id"] ."\">Link ". $vis["id"] ."</a><br>\n"; } }else{ $query = mysql_query("SELECT * FROM `upload` WHERE `id` = '". $_GET["id"] ."'") or die (mysql_error()); if(mysql_num_rows($query) == 1) { $row = mysql_fetch_array($query); $pics = explode(",", $row["billede"]); echo"<table border=1><tr>\n"; echo"<td colspan=\"". count($pics) ."\">". $row["id"] ."</td>\n"; echo"</tr><tr>\n"; for($i = 0; $i < count($pics); $i++) { echo"<td valign=\"top\">". $pics[$i] ."<br>\nNoget tekst til</td>\n"; // Hvor kommer teksten fra? :O) } echo"</tr></table>"; }else{ echo"Sorry, men \$_GET[\"id\"] = ". $_GET["id"] ." findes desværre ikke i DB'en!"; } } ?> Tak for point! :O)
25. marts 2004 - 20:12
#65
Det virker egentlig, men jeg har fået at vide at ham som jeg skal lave det til hellere vil have det hvor det går ned på en ny linje for hvert tilbud, så det er bare i orden :) Og igen, jeg kan sku ikke takke dig nok Sukos! :)
Vi tilbyder markedets bedste kurser inden for webudvikling