Skocz do zawartości

Zablokowane [PHP] Błędny kod.


Luksor

Rekomendowane odpowiedzi

Proszę o poprawę kodu, ponieważ zacząłem się uczyć o MySql w PHP i coś mi nie wyszło.

Strona się nie wyświetla, skrypt nie dodaje tabeli do bazy.

 

<?php


$sql_conn = mysql_connect('XXX', 'XXX', 'XXX')
or die('Nie mogłem połaczyć się z bazą danych');


mysql_select_db('XXX');


$zapytanie = "CREATE TABLE news (id int NOT NULL AUTO_INCREMENT, tytul char(50), tresc char(300), autor char(20), PRIMARY KEY(id))";
$idzapytania = mysql_query($zapytanie);


$zapytanie = "INSERT INTO `news` (`id`, `tytul`, `tresc`, `autor`) VALUES ('', 'Start sronki', 'Dzisiaj strona wystartowala!', 'Luksor')";
$idzapytania = mysql_query($zapytanie);


$zapytanie = "SELECT `id`,`tytul`,`tresc`,`autor` FROM `news`";
$idzapytania = mysql_query($zapytanie);


echo '<table>';
while ($wiersz = mysql_fetch_row($idzapytania)) {
echo '<tr><td>'. $wiersz[0] .'</td> - <td>'. $wiersz[1] .'</td></tr><tr><td>'. $wiersz[2] .'</td></tr><td>Autor: '. $wiersz[3] .'</td>';
}
echo '</table>';


mysql_close($sql_conn);


?>

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

Jeżeli tabela jest już stworzona, to nie da rady stworzyć jej drugi raz, więc jest już 1 error.

Możesz uzyć SELECT * FROM będzie szybsiej.

Możesz użyć mysql_fetch i wtedy w tablicy poza $wiersz[0] będziesz miał np. $wiersz['id'].

Poza tym, nie widze błędów.

Zresztą mysql_error(); powinno wskazać jakiś, jeżeli wystąpi.

Ew. na początku pliku daj error_reporting(E_ALL); aby zobaczyć, czy to nie php zwraca błąd.

Odnośnik do komentarza
Udostępnij na innych stronach

A "6135" to co jest ? Chyba numer błędu ?

 

btw. wywaliłeś to create ?

To był numer błędu, bo dałem inaczej to error reporting.

 

Nie wywaliłem create, ale zaraz wywale.

E: Po skasowaniu create też strona się nie wyświetla.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

zrób tak:

 

if ( !$idzapytania = mysql_query( $zapytanie ) )
{
die( mysql_error() );
}

 

A najlepiej to zrób tak:

 

<?php
error_reporting(E_ALL);

$db = mysql_connect('XXX', 'XXX', 'XXX')
or die('Nie mogłem połaczyć się z bazą danych');

mysql_select_db('XXX');

$sql = "SELECT * FROM news";
if (!$result = mysql_query($sql))
{
die( mysql_error() );
}

echo '<table>';
while ($r = mysql_fetch($result))
{
echo '<tr><td>'. $r['id'] .'</td> - <td>'. $r['tytul'] .'</td></tr><tr><td>'. $r['tresc'] .'</td></tr><td>Autor: '. $r['autor'] .'</td>';
}
echo '</table>';


mysql_close($db);
?>

 

Insert i create nie są potrzebne, już powinny te dane być w bazie (sprawdź czy są, lub ręcznie dodaj phpmyadminem).

Odnośnik do komentarza
Udostępnij na innych stronach

nom jakbyś dał mysql_error, to by pokazało. Btw. najlepiej tworzyć tabele poprzez phpmyadmina - jest wygodniejszy i zobaczysz swoje błędy.

Ok, dzięki za poradę. :thumbsup: Teraz robię dodawanie przez formularz.

 

Zamykam.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...