Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]if set problem
Forum PHP.pl > Forum > Przedszkole
Grzes978
witam napisałem sobie taki scrypcik

<?php
include("include/menu.php");

$host = 'localhost';
$user = 'planeta_test';
$passwort = 'planeta_test';
$baza = 'planeta_test';


if(is_set($_GET["v"])
$id=$_GET["v"]; // tutaj wywala bład na tej lini
else
$id=1;


$polaczenie = mysql_connect($host, $user, $passwort)
or die ( 'nie można sie połaczyć z MSQL');
$db = mysql_select_db($baza,$polaczenie);

$query=mysql_query("select id, videoTyp, title, videoId from video where id=$id limit 1",$db)
$result=mysql_fetch_row($query);


$id = $result[0]; // id filmu
$type = $result[1]; //typ filmu
$title = $result[2]; // title filmu
$videoid = $result[3]; // id filmu z URLA

echo( if ($type == 1)

$kod = '<object width="640" height="360">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id='.$videoid '&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" />
<embed src="http://vimeo.com/moogaloop.swf?clip_id='.$videoid '&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=&amp;fullscreen=1&amp;autoplay=1&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360">
</embed>
</object>';
else
$kod = '<object width="480" height="385">
<param name="movie" value="http://www.youtube.com/v/'.$videoid '&amp;hl=pl_PL&amp;fs=1"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/'.$videoid '&amp;hl=pl_PL&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385">
</embed>
</object>';
?>


<center>
<table>
<tr>
<td>
<a href=<?php echo '"./test.php?v=' . --$id .'" ';
$id+=2;
?>>Poprzedni film</a>
</td>
<td>
<?php
echo $kod.'<br/>';
echo $title;
?>
</td>
<td>
<a href=<?php echo '"./test.php?v=' . $id .'"'; ?>>Następny film</a>
</td>
</tr>
</table>
</center>

<?php
include("include/footer.php");
?>

i wywala mi bład na lini 25 czyli linijka pi if secie, nie wiem w czym jest rzecz

ma ktos pomysłquestionmark.gif?
Mostrom
Chyba dlatego, że funkcja ta nie nazywa się is_set tylko isset, ale nie jest pewien.
Spróbuj tak:
  1. if(is_set($_GET["v"]){
  2. @$id=$_GET["v"]; }
nospor
To tez jest bardzo ciekawe:
echo( if ($type == 1)
smile.gif

@Grzes978
1) Zacznij uzywac bbcode
2) Jak wyswietla ci błąd to należy ten błąd dokładnie podać.
3) Zanim napiszesz kolejnego posta zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
Mostrom
4) Naucz się liczyć, bo wg mnie linia 25 wypada jakoś tak właśnie na to co kolega podał, ale ja tam nie wiem ile linijek usunąłeś przed napisaniem posta biggrin.gif
bastard13
  1. if(is_set($_GET["v"])

Na wszelki wypadek sprawdzałem jeszcze manuala, ale tam też nie ma nic o funkcji is_set. Zmień na isset().
sadistic_son
I domknij nawias okrągły!! isset ma domkniety nawias u Ciebie w kodzie ale if już nie!

if ( isset ($_GET['costam']) )

A błąd, który Ci wywala to błąd, że napotkano nieznany string T_STRING. Dzieje się tak bo kolejna linijka po if traktowana jest jako ciąg dalszy warunku logicznego if, a nie jako następne instrukcje. Właśnie przez brak domkniętego nawiasu!
Grzes978
[quote name='nospor' date='9.09.2010, 20:53:58 ' post='788120']
To tez jest bardzo ciekawe:
echo( if ($type == 1)
smile.gif

poprzednie linijki już poprawiłem i faktycznie teraz wywala mi tą linijkę którą zacytował nospor

w czym problem?
nospor
Cytat
w czym problem?
W tym, ze nie raczyłeś wpierw przejrzeć podstaw php.
W echo nie wstawia się zadnych IF
To w IF robi się instrukcje
nie: echo (IF blabla)
a: if (cośtam) echo 'blabla';

http://pl2.php.net/manual/pl/control-structures.if.php
Grzes978
no jasne echo jest niepotrzebne w tym momencie, ;-)
nospor
Cytat
no jasne echo jest niepotrzebne w tym momencie, ;-)
To po co je dajesz? żeby ładniej wyglądało?
Grzes978
przeoczyłem, czasami tak jest że sie człowiek na coś gapi i nie widzi tego

ale ale, mam nowy orzech do rozgryzienia

otóż

mam cos takiego, co pokazuje że jesli zmienna GEt nie ma wartości to deafault jest 1, moje pytanie brzmi jak zrobić by dafault była ostatnia ID z bazy danych ID jest autoicrement

if(isset($_GET["v"]))
$id=$_GET["v"];
else
$id=1;

myślałem o czymś takim

if(isset($_GET["v"]))
$id=$_GET["v"];
else

$query1=mysql_query("SELECT id from video DESC limit 1",$polaczenie);
$wynik=mysql_result($query1);
$id=$wynik;

oczywiscie mam połaczenie z bazą

$host = 'localhost';
$user = 'planeta_test';
$passwort = 'planeta_test';
$baza = 'planeta_test';

$polaczenie = mysql_connect($host, $user, $passwort)
or die ( 'nie można sie połaczyć z MSQL');
$db = mysql_select_db($baza,$polaczenie)
or die ( 'nie można sie połaczyć z bazą');

niestety cos nie funga

może ma ktos pomysł na to

sorrki za upierdliwość ale na początku wszystko jest czarną magia,
Mostrom
Czy użycie BBcode też jest czarną magią?

1)Instrukcje w ELSE też trzeba ująć w klamrach.
2)password pisze się z literką "d" na końcu ;p
3)Zmieniłem ci metodę połączenia z bazą, bo nie wiem czy zmienne będą działać w taki sposób, nie sprawdzałem (najwyżej zmienisz).
4)Z bazą łączysz się na początku kodu a nie na końcu!
5)Porządek w kodzie:

  1. $polaczenie = @mysql_connect("localhost", "planeta_test", "planeta_test") or die("Nie można nawiązać połączenia z bazą");
  2. $db = @mysql_select_db("planeta_test", $polaczenie) or die ("nie można sie połaczyć z bazą");
  3.  
  4.  
  5. if(isset($_GET["v"])){
  6. $id=$_GET["v"];
  7. }
  8. else{
  9. $query1=mysql_query("SELECT id from video DESC limit 1");
  10. $wynik=mysql_result($query1);
  11. $id=$wynik;
  12. }
Grzes978
tak wygląda pełny kod a i tak wyskauje mi bład w linii 21 i 31

dokładnie taki

Warning: mysql_result() expects at least 2 parameters, 1 given in C:\wamp\www\test\proby.php on line 21

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\wamp\www\test\proby.php on line 31


  1. <?php
  2. include("include/menu.php");
  3.  
  4. $host = 'localhost';
  5. $user = 'planeta_test';
  6. $passwort = 'planeta_test';
  7. $baza = 'planeta_test';
  8.  
  9. $polaczenie = mysql_connect($host, $user, $passwort)
  10. or die ( 'nie można sie połaczyć z MSQL');
  11. $db = mysql_select_db($baza,$polaczenie)
  12. or die ( 'nie można sie połaczyć z bazą');
  13.  
  14. if(isset($_GET["v"]))
  15. {
  16. $id=$_GET["v"];
  17. }
  18. else
  19. {
  20. $query1=mysql_query("SELECT id from video DESC limit 1",$polaczenie);
  21. $wynik=mysql_result($query1);
  22. $id=$wynik;
  23. }
  24.  
  25. $polaczenie = mysql_connect($host, $user, $passwort)
  26. or die ( 'nie można sie połaczyć z MSQL');
  27. $db = mysql_select_db($baza,$polaczenie)
  28. or die ( 'nie można sie połaczyć z bazą');
  29.  
  30. $query=mysql_query("SELECT id, videoType, title, videoId FROM video where id={$id} LIMIT 1",$polaczenie);
  31. $result=mysql_fetch_row($query);
  32.  
  33. $id = $result[0];
  34. $type = $result[1];
  35. $title = $result[2];
  36. $videoid = $result[3];
  37.  
  38. if ($type == 1)
  39.  
  40. $kod = '<object width="640" height="360">
  41. <param name="allowfullscreen" value="true" />
  42. <param name="allowscriptaccess" value="always" />
  43. <param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id='.$videoid. '&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" />
  44. <embed src="http://vimeo.com/moogaloop.swf?clip_id='.$videoid. '&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="360">
  45. </embed>
  46. </object>';
  47.  
  48. else
  49.  
  50. $kod = '<object width="480" height="385">
  51. <param name="movie" value="http://www.youtube.com/v/'.$videoid. '&amp;hl=pl_PL&amp;fs=1"></param>
  52. <param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
  53. <embed src="http://www.youtube.com/v/'.$videoid. '&amp;hl=pl_PL&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385">
  54. </embed>
  55. </object>';
  56. ?>
  57. <center>
  58. <table>
  59. <tr>
  60. <td>
  61. <a href=<?php echo '"./proby.php?v=' . --$id .'" ';
  62. $id+=2;
  63. ?>>Poprzedni film</a>
  64. </td>
  65. <td>
  66. <center>
  67. <?php
  68. echo $kod.'<br/>';
  69. echo $title;
  70. ?>
  71. </center>
  72. </td>
  73. <td>
  74. <a href=<?php echo '"./proby.php?v=' . $id .'"'; ?>>Następny film</a>
  75. </td>
  76. </tr>
  77. </table>
  78. </center>
  79.  
  80. <?php
  81. include("include/footer.php");
  82. ?>
Mostrom
Po co robisz to w każdym zapytaniu?:
  1. $polaczenie)


Twój kod jest strasznie pokręcony =] Takie rzeczy nie ułatwiają dobrze napisanego kodu:
  1. <a href=<?php echo '"./proby.php?v=' . --$id .'" ';
  2. $id+=2;
  3. ?>>Poprzedni film</a>


Pozatym nei możesz dwa razy łączyć się z bazą! Wywal to co drugi raz napisałeś:
  1. $polaczenie = mysql_connect($host, $user, $passwort)
  2. or die ( 'nie można sie połaczyć z MSQL');
  3. $db = mysql_select_db($baza,$polaczenie)
  4. or die ( 'nie można sie połaczyć z bazą');


A na końcu kodu pamiętaj o zakończeniu połączenia z bazą
bastard13
ad 1) funkcja mysql_result() przyjmuje dwa parametry: wynik zapytania i numer wiersza, opcjonalnie 3 - nr pola:
http://php.net/manual/pl/function.mysql-result.php

ad 2) dodaj sobie var_dump($query). W zmiennej nie masz obiektu z wynikiem tylko wartość boolowską. Pewnie źle jest skonstruowane zapytanie, ponieważ dla selecta mysql_query() zwraca bool, ale tylko false - gdy zapytanie jest niepoprawne. Sprawdź nazwy kolumn i tabeli.
Grzes978
po wielu bojach wkońcu się udało dzieki wszystkim za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.