PHP i MySQL wadliwy kod z książki(?)


(Dajznac) #1

Ucze sie wlasnie PHP i MySQL z kasiazki ktora ostatnio zakupilem i napotkalem na pewna niedogodnosc. Mam taki kod:

<?php

	$link=mysql_connect("localhost","root","") or die (blad_mysql());

	echo("Polaczono z serwerem MySQL. 
");

	mysql_select_db('moja_baza') or die (blad_mysql());

	$wynik=@mysql_query('show tables');

	echo("Połaczono z baza danych. 
");

	mysql_close();


//-------------------------------------


	function blad_mysql()

	{

		echo("Kod bledu: ". mysql_errno()."
"."Tresc bledu: ".mysql_error());

		exit;

	}


//--------------------------------------

W piatym wierszu jest $wynik=@mysql_query('show tables');. Wg autora ksiazki na stronie powinna ukazac sie lista tabel ktore zawiera baza. Czy ten skrypt jest niepelny? Oczywiscie baza zawiera tabele a serwer dziala dobrze (domyslny konfig).


(Kubarek) #2

a co sie pokazuje ? wyswietla sie blad ?

//po przemysleniach:

nigdzie nie nakazujesz skryptowi aby wyswietlil zawartosc zmiennej $wynik, to moze by przyczyna


(system) #3

zobacz na http://www.helion.pl, tam są erraty do książek :slight_smile:


(Skr3czu) #4

Zły adres:)

to jest dobry http://helion.pl/


(adam9870) #5

No i fajnie co ?? Napisałeś kolejną pierdołę i +1 na liczniku. Co nie ??

A adres nie działał bo rss postawił przecinek zaraz po adresie.

Poza tym to z http://helion.pl/ tez można wejść :slight_smile:


(Dajznac) #6

Dzieki za zainteresowanie moim pytaniem. Niestety nadal nie rozwiazalem tego problemu. Ksiazka pochodzi od innego wydawcy a ten nie zamieszcza errat na swojej witrynie.

Staralem sie wyswietlic zawartosc zmiennej $wynik poleceniem echo a co za tym idze wykonac zapytanie MySQL lecz nie odnioslo to skutku... Na stronie nie ma żadnych wynikow wykonania zapytania a co ciekawsze wcale nie otrzymuje komunikatu o błędzie.

Prosze o zamieszczenie przykladu poprawnego zapisu.


(Kubarek) #7

sprobuj usunac znaki '@', wtedy ci sie wyswietla bledy


(Dajznac) #8

:idea: javascript:emoticon(':idea:')

Idea


(Slawek) #9

Moim zdaniem powinno być:

$wynik=mysql_query('show tables');

while ($p = mysql_fetch_array($wynik))

print_r($p);

zamiast:

Błąd na poziomie kogoś kto widzi PHP/mySQL pierwszy raz na oczy - bardzo dziwne że takie coś znalazło się w książce.

Poza tym kolejny błąd (tym razem logiczny) - to @ przy kwerendzie. Takie olewanie błędów bardzo mści się przy debugowaniu, jak już się błąd ukrywa to trzeba napisać jakąś alternatywną metodę jego obsługi.


(Balon) #10

slawek zamiast takiej zabawy w printowanie tablic wystarczy

$q = mysql_query( 'SHOW TABLES' );

while( $r = mysql_fetch_array( $q ) )

{

    echo $r[0].'
';

}

(Slawek) #11

To był raczej taki kod "poglądowy" :slight_smile: