Выберите сообщения и фотографии из базы данных MySQL - PullRequest
0 голосов
/ 12 октября 2019

Я создаю социальную сеть, и лента новостей похожа на Twitter. Пользователи могут загружать фотографии и сообщения, но не могут делать это одновременно. В новостной ленте я пытаюсь показать любые посты и фотографии внутри базы данных. Но единственное, что я могу показать, это пост, а не фото. Я пытался объединить его в один, но когда я загружаю картинку, она не сохраняется. Я весь день пробовал смотреть другие вопросы и видео, и это мое последнее средство.

Так как мне получить все из обеих таблиц в порядке временных меток?

newsfeed.php (загрузить изображение в базу данных):

<form id="form2" method="post" enctype="multipart/form-data">

<input type="file" name="fileToUpload" id="fileToUpload">
<br><input id="sub1" type="submit" value="Upload Pic" name="uploadPic"><br 
/>
</form>

<?php

$username = trim( isset($_SESSION['username']) ? $_SESSION['username'] : "" );
$pic_name = isset($_SESSION['pic_name']) ? $_SESSION['pic_name'] : ""; 

if(!empty($username))
{
if (isset($_FILES['fileToUpload'])) {
  $errors= array();
  $file_name = $_FILES['fileToUpload']['name'];
  $file_size = $_FILES['fileToUpload']['size'];
  $width = 200;
  $height = 200;
  $file_tmp = $_FILES['fileToUpload']['tmp_name'];
  $file_type = $_FILES['fileToUpload']['type'];
  $tmp = explode('.',$_FILES['fileToUpload']['name']);
  $file_ext=strtolower (end ($tmp));

  $extensions= array("jpeg","jpg","png");

  if(in_array($file_ext,$extensions)=== false){
     $errors[]="Please choose a JPEG or PNG file.";
  }

   if ($file_size > 8097152) {
    $errors[] = 'File size must be 2 MB';
}

  if ($width > 200 || $height > 200) {
        echo"File is to large";
  }

  if(empty($errors)==true)
  {
    $pic_name = $file_name;
    move_uploaded_file($file_tmp,"uploads/".$pic_name);

  $stmt = $conn->prepare("INSERT INTO pics (username, pic_name) VALUES(?, ?)");
  $stmt->bind_param('ss', $username, $pic_name);

  /* execute prepared statement */
   $stmt->execute();

 printf("", $conn->affected_rows);

 /* close statement and connection */

  }else{
     print_r($errors);
     echo"Couldn't upload picture";
  }

}
}
else
{
echo "Invalid Username";
}

?>

newsfeed.php (показывать сообщения и изображения в ленте новостей):

<?php

error_reporting(0);

include("connect.php");
include("auth_login.php");

$username = isset($_SESSION['username']) ? $_SESSION['username'] : '';
$username = trim(isset($_GET['username']) ? $_GET['username'] : $username);

//Write the query
$sql = "SELECT * FROM posts, pics ORDER BY post_id DESC";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {

    echo '<div id="rcorners2">';

    echo '<p id="p2">' .$row['username']. '</p>';

    echo '<p id="p4">' .$row['date_time']. '</p>';

    echo '<hr id="hr2">';

    echo '<p id="p3">' .$row['body']. '</p>';   

    echo '<div class="test"> <a href="#" class="fill-div"></a></div>';

    echo'</div>';
    echo'</br>';

}
}
else {

}
?>

1 Ответ

0 голосов
/ 12 октября 2019

Вы можете использовать это в одной таблице, используя одну форму, которая содержит как изображение, так и сообщение. Вот код, пожалуйста, измените его согласно вашему требованию

<form id="form2" method="post" enctype="multipart/form-data">
    <textarea name="post_content" placeholder="Content"></textarea>
    <input type="file" name="fileToUpload" id="fileToUpload">
    <br>
    <input id="sub1" type="submit" value="Upload Pic" name="uploadPic">
    <br
    />
</form>

<?php

$username = trim(isset($_SESSION['username']) ? $_SESSION['username'] : "");
$pic_name = isset($_SESSION['pic_name']) ? $_SESSION['pic_name'] : "";

if (!empty($username)) {

    $pic_name="";
    if (isset($_FILES['fileToUpload'])) {
        $errors = array();
        $file_name = $_FILES['fileToUpload']['name'];
        $file_size = $_FILES['fileToUpload']['size'];
        $width = 200;
        $height = 200;
        $file_tmp = $_FILES['fileToUpload']['tmp_name'];
        $file_type = $_FILES['fileToUpload']['type'];
        $tmp = explode('.', $_FILES['fileToUpload']['name']);
        $file_ext = strtolower(end($tmp));

        $extensions = array("jpeg", "jpg", "png");

        if (in_array($file_ext, $extensions) === false) {
            $errors[] = "Please choose a JPEG or PNG file.";
        }

        if ($file_size > 8097152) {
            $errors[] = 'File size must be 2 MB';
        }

        if ($width > 200 || $height > 200) {
            echo "File is to large";
        }

        if (empty($errors) == true) {
            $pic_name = $file_name;
            move_uploaded_file($file_tmp, "uploads/" . $pic_name);

        }
    } else {
        print_r($errors);
        echo "Couldn't upload picture";
    }
    $post_content=$_POST['post_content'];

    $stmt = $conn -> prepare("INSERT INTO pics (username, pic_name,post_content) VALUES(?, ?,?)");
    $stmt -> bind_param('sss', $username, $pic_name,$post_content);

    /* execute prepared statement */
    $stmt -> execute();

    printf("", $conn -> affected_rows);

    /* close statement and connection */

} else {
    echo "Invalid Username";
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...