Przejście do rekordu metodą GET + mysql

0

Witajcie stoje nad takim problemem:

w index.php wyswietlane sa obrazki z bazy danych (w ktorej sa pola : id,name,sciezka), klikajac na kazdy obrazek przechodzi sie do dynamicznej strony obrazkow, w ktorej wyswietlany jest dany obrazek, wszystko bylo ok dopoty nie zminialem w hrefie z ID na NAME, problem jest zapewne z query w dynamicznej stronie, tutaj jest skrypt:

index.php:

echo "<a href=\"".$row['name']."\"style=\"text-decoration:none; color:red; a:color:black;\">";

(jest to petli while, ktora wyswietla wszystkie obrazki)

a kod w dynamicznej stronie obrazkow :

include_once('db_connection.php');	
@$name = $_GET['name'];  
$query=$mysqli ->query('Select * from photos WHERE name= $name '); 

....

 while ($row=$query ->fetch_array())

i wyskakuje blad: Fatal error: Call to a member function fetch_array()

(htaccess):

 RewriteRule ^([a-zA-Z-_0-9_\-]+)/?$ dynamiczna_strona_obrazkow.php?name=$1 [L]

Z kazda odp. wielkie dzieki :)

0

jakas koncepcja?

0
$query=$mysqli ->query('select * from photos where name="$name"');

Poza tym powinieneś to $name przynajmniej minimalnie zabezpieczyć, aby ktoś zamiast $name nie podał: " or name<>"
Bo wtedy po podstawieniu wyjdzie: select * from photos where name="" or name<>""
Poza tym prościej użyć fetch_row http://php.net/manual/pl/function.mysql-fetch-row.php

0

niestety po wklejeniu powyzszego skryptu, kiedy klikam w konkretny obrazek nie pojawia sie nic, zmienia sie url tak jak powinnien ale reszta nic

0

niestety, ale wgl ta peta w dynamiczny_obrazek - nie dziala, wysyla dobrze get bo sprawdzam print_r, ale juz nic z while nie wyswietla sie

0

Zgłoś się na forum wróżbitów, bo na tym forum jak coś nie działa to trzeba pokazać kod który nie działa.

0

Jednak zostane na 4programmers
dynamiczna strona:

 <?php  
	
include_once('db_connection.php');	
@$name = $_GET['name'];   
$query=$mysqli ->query('select * from photos where name = "$name"');                      
	 
	
	 while ($row=$query ->fetch_row())
	 {	
	    echo "<div style='border-bottom:2px solid black; padding: 50px; width:100px; position:relative; left:300px;'>";	
	 echo $row["name"];
echo "</br>";
	echo '<img src="'.$row['image'] .'"  height="244" width="312">';
	
	    echo "</div>";
		
	 }
	
?>	 

index.php: (czesciowo)

// Poczatek petli 
while($row = $sql2 ->fetch_row()){
echo "</br>";
	echo "<div id='pozycja'>";
    
	 echo "<div class='pozycja_obr'>"; echo "<a href=\"".$row['name']."\"style=\"text-decoration:none; color:red; a:color:black;\">"; echo "<h1>"; echo   $firstname = $row['name']; echo "</h1>";  echo "</a>";   echo "</div>";
     echo "<a href=\"".$row['name']."\"style=\"text-decoration:none;\">"; echo '<img src="'.$row['image'] .'"  height="244" width="312">';  echo "</a>";
	
	echo "</div>";  
echo "</br>";
echo "</br>";
	
	
      
    
} // zakonczenie petli
0

Skoro koniecznie chcesz posługiwać się nazwami kolumn to jednak musisz użyć:

while($row=$query->fetch_array(MYSQLI_ASSOC))

Poza tym dodaj to:

if($mysqli->connect_errno) die("Connect failed: %s\n", $mysqli->connect_error);

po:

include_once('db_connection.php');
0

niestety wciaz nie wyswietla :/

0

No to znowu, do wróżbitów lub poprawiony kod.

0

niestety dalej to samo..

include_once('db_connection.php');	
if($mysqli->connect_errno) die("Connect failed: %s\n". $mysqli->connect_error);
@$name = (string) $_GET['name'];   // BARDZO WAZNA ZMIENNA 
$query=$mysqli->query("select * from photos where name = '@$name'");                       
	 
	
	while($row=$query->fetch_array(MYSQLI_ASSOC))
	 {	
	    echo "<div style='border-bottom:2px solid black; padding: 50px; width:100px; position:relative; left:300px;'>";	
	 echo $row["name"];
echo "</br>";
	echo '<img src="'.$row['image'] .'"  height="244" width="312">';
	
	    echo "</div>";
		
	 }
	
?>	 
// Poczatek petli 
while($row=$sql2->fetch_array(MYSQLI_ASSOC)){
echo "</br>";
	echo "<div id='pozycja'>";
    
	 echo "<div class='pozycja_ob'>"; echo "<a href=\"".$row['name']."\"style=\"text-decoration:none; color:red; a:color:black;\">"; echo "<h1>"; echo   $firstname = $row['name']; echo "</h1>";  echo "</a>";   echo "</div>";
     echo "<a href=\"".$row['name']."\"style=\"text-decoration:none;\">"; echo '<img src="'.$row['image'] .'"  height="244" width="312">';  echo "</a>";
	
	echo "</div>";  
echo "</br>";
echo "</br>";
	
	
      
    
} // zakonczenie petli
1
$query=$mysqli->query("select * from photos where name = '@$name'");
0

niestety dalej to samo..

include_once('db_connection.php');	
if($mysqli->connect_errno) die("Connect failed: %s\n". $mysqli->connect_error);
@$name = (string) $_GET['name'];   // BARDZO WAZNA ZMIENNA 
$query=$mysqli->query("select * from photos where name = '@$name'");                       
	 
	
	while($row=$query->fetch_array(MYSQLI_ASSOC))
	 {	
	    echo "<div style='border-bottom:2px solid black; padding: 50px; width:100px; position:relative; left:300px;'>";	
	 echo $row["name"];
echo "</br>";
	echo '<img src="'.$row['image'] .'"  height="244" width="312">';
	
	    echo "</div>";
		
	 }
	
?>	 
// Poczatek petli 
while($row=$sql2->fetch_array(MYSQLI_ASSOC)){
echo "</br>";
	echo "<div id='pozycja'>";
    
	 echo "<div class='pozycja_ob'>"; echo "<a href=\"".$row['name']."\"style=\"text-decoration:none; color:red; a:color:black;\">"; echo "<h1>"; echo   $firstname = $row['name']; echo "</h1>";  echo "</a>";   echo "</div>";
     echo "<a href=\"".$row['name']."\"style=\"text-decoration:none;\">"; echo '<img src="'.$row['image'] .'"  height="244" width="312">';  echo "</a>";
	
	echo "</div>";  
echo "</br>";
echo "</br>";
	
	
      
    
} // zakonczenie petli
0

dodam ze wczesniej robilem to z id i dzialalo 100%:

<?php  
	@$id = (int) $_GET['id'];   // BARDZO WAZNA ZMIENNA
include_once('db_connection.php');	 
$query=$mysqli ->query("Select * from photos WHERE id= $id  ");                       
	 
	 while ($row=$query ->fetch_assoc())
	 {	
	    echo "<div style='border-bottom:2px solid black; padding: 50px; width:100px; position:relative; left:300px;'>";	
	 echo $row['name'];
echo "</br>";
	echo '<img src="'.$row['image'] .'"  height="244" width="312">';
	echo "sialal";
	    echo "</div>";
		
	 }
	
?>	 

i index.php

// Poczatek petli 
while($row = $sql2 ->fetch_array()){
echo "</br>";
	echo "<div id='pozycja'>";
    
	 echo "<div class='pozycja_br'>"; echo "<a href='$row[id]' style='text-decoration:none; color:red; a:color:black;'>"; echo "<h1>"; echo   $firstname = $row["name"]; echo "</h1>";  echo "</a>";   echo "</div>";
     echo "<a href='$row[id]' style='text-decoration:none;'>"; echo '<img src="'.$row['image'] .'"  height="244" width="312">';  echo "</a>";
	
	echo "</div>";  
echo "</br>";
echo "</br>";
	
	
      
    
} // zakonczenie petli
1

To wyświetl sobie dwie rzeczy:

$Q="select * from photos where name = '@$name'";
echo "<div>[$Q]</div></br>";
$query=$mysqli->query($Q);

A druga to sprawdź czy $mysqli->query() zwraca błąd.

0

kiedy daje

print_r($query);

to wyswietla:

mysqli_result Object ( [current_field] => 0 [field_count] => 3 [lengths] => [num_rows] => 0 [type] => 0 )
0

niestety nic :/

include_once('db_connection.php');	
if($mysqli->connect_errno) die("Connect failed: %s\n". $mysqli->connect_error);
@$name = (string) $_GET['name'];   // BARDZO WAZNA ZMIENNA 
//$query=$mysqli->query("select * from photos where name = '@$name'");                       
	 $Q="select * from photos where name = '@$name'";
           echo "<div>[$Q]</div></br>"; ?? to ma byc tu  czy w petli?
                   $query=$mysqli->query($Q);
	
	while($row=$query->fetch_array(MYSQLI_ASSOC))
	 {	
	    echo "<div style='border-bottom:2px solid black; padding: 50px; width:100px; position:relative; left:300px;'>";	
	 echo $row["name"];
echo "</br>";
	echo '<img src="'.$row['image'] .'"  height="244" width="312">';
	
	    echo "</div>";
		
	 }
	
?>	 
// Poczatek petli 
while($row=$sql2->fetch_array(MYSQLI_ASSOC)){
echo "</br>";
	echo "<div id='pozycja'>";
    
	 echo "<div class='pozycja_ob'>"; echo "<a href=\"".$row['name']."\"style=\"text-decoration:none; color:red; a:color:black;\">"; echo "<h1>"; echo   $firstname = $row['name']; echo "</h1>";  echo "</a>";   echo "</div>";
     echo "<a href=\"".$row['name']."\"style=\"text-decoration:none;\">"; echo '<img src="'.$row['image'] .'"  height="244" width="312">';  echo "</a>";
	
	echo "</div>";  
echo "</br>";
echo "</br>";
	
	
      
    
} // zakonczenie petli
0

klikajac na obrazek :

 [select * from photos where name = '@obraz1']

, ale kiedy echo "

[$Q]
</br>";</p>
 , nie jest w w while (czyli kod powyzej ^ )
1

A masz w bazie rekord dla którego: name='@obraz1' ?

0

mam w kolumnie name: obraz1, kiedy klikam w obraz 2 wyskakuje ten sam komunikat tylko @obraz 2 itd...

Dobra dotralismy do konca, dziekuje za konsekwancje, rozwiazanie problemu, twoje zapytanie + usuniecie z niego "@" Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1