Komentarze do art.

Wszystko o językach skryptowych takich jak PHP i Perl, serwerach WWW, CGI, bazach danych i języku SQL.
supergol
Posty: 15
Rejestracja: 09 sty 2021, 17:28:01
Płeć: Niewybrana
User Agent: Chrome Windows 1366x768

Komentarze do art.

Post autor: supergol »

Staram się ustalić pewien konstrukt myślowy. Opracowałem panel redaktorski z logowaniem, dodawaniem, edycją, kasowaniem i wyświetlaniem artykułów itd. Teraz chciałbym zapodać pod każdy artykuł, możliwość dodawania komentarzy. Chyba uda mi się to zrobić, ale poszukuje najprostszego z możliwych rozwiązań. Póki co wychodzi mi tak:
1. Prawdopodobnie jestem w stanie przy wysyłaniu nowego art. do bazy pod tym samym submit, uruchomić Create table z nazwą taką samą jak nazwa artykułu. Stworzy się wtedy dedykowana tabela z kolumnami: autor, tekst, data.
2. Krok 2 wyświetlam artykuł z warunkiem: jeśli to jest art. „ABC” to dołącz formularz i wyświetlaj komentarze do tego artykułu z tabeli „ABC”

Co wy na to? Czy to prawidłowy konstrukt, czy zaproponowalibyście inny. Prostszy?
supergol
Posty: 15
Rejestracja: 09 sty 2021, 17:28:01
Płeć: Niewybrana
User Agent: Chrome Windows 1920x1080

Komentarze do art.

Post autor: supergol »

Kontynuując powyższe kod, który miałby to wykonać mógłby wyglądać tak:

Kod: Zaznacz cały

<?php
include('polacz.php');

$result=mysql_query ("SELECT * FROM uzytkownicy ORDER BY id DESC limit 1");
while($row = mysql_fetch_array($result)) {
$pseudonim= $row['pseudonim']; 

echo " $pseudonim </br>";
}

$link = include('polacz.php');

if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
 if(isset($_POST['cr7'])) {

$sql = "CREATE TABLE IF NOT EXISTS $pseudonim (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    first_name VARCHAR(30) NOT NULL,
    last_name VARCHAR(30) NOT NULL,
    email VARCHAR(70) NOT NULL UNIQUE
)";
if(mysqli_query($link, $sql)){
    echo "Table created successfully.";
} else{
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
mysqli_close($link);
 }
?>

<form action="#" method="POST">
<input type="submit" name="cr7"/>
</form>
I wydaje się, że jest elegansio ale zwraca błąd: ERROR: Could not able to execute CREATE TABLE juventus ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL, email VARCHAR(70) NOT NULL UNIQUE ).

WHY??????
supergol
Posty: 15
Rejestracja: 09 sty 2021, 17:28:01
Płeć: Niewybrana
User Agent: Chrome Windows 1920x1080

Komentarze do art.

Post autor: supergol »

Nazwa tabeli generowana ze zmiennej. Działa. temat do zamknięcia.

Kod: Zaznacz cały

<?php
include('polacz.php');

$result=mysql_query ("SELECT * FROM uzytkownicy ORDER BY id DESC limit 1");
while($row = mysql_fetch_array($result)) {
$pseudonim= $row['pseudonim'];
echo " $generator </br>";
}

 
// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
 
if (isset($_POST['cr7'])){
$s="CREATE TABLE $pseudonim(
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tresc` text COLLATE utf8_polish_ci NOT NULL,
  `autor` text COLLATE utf8_polish_ci NOT NULL,
  `data` text COLLATE utf8_polish_ci NOT NULL,
  `banned` tinyint(1) NOT NULL,
   PRIMARY KEY (id)) ;";
mysql_query($s) or die(mysql_error());
echo "Tabela $pseudonim zostala utworzona.";
mysql_close($link);

}

?>
ODPOWIEDZ