Jeśli rekord znajduje się w bazie

0

Mam taki kod dodawania formularzy:

<?php
     include 'config.php';
    $data = date("d.m.Y H:i:s");
     
    echo '<center><b>Dodawnie nowego newsa</b><br /><br />';
    echo '<form action="add.php?dodaj=yes" method="post"><table border=0>';
    echo '<tr><td align=right>Tytuł newsa:</td><td><input type="text" name="tytul" /></td></tr>';
    echo '<tr><td align=right>Autor:</td><td><input type="text" name="autor" /></td></tr>';
    echo '<tr><td align=right>Tre?ć:</td><td><textarea name="tresc" rows=5 cols=30></textarea></td></tr>';
    echo '<tr><td align=right>Data: </td><td><input type="text" name="data" value="'.$data.'" /></td></tr>';
    echo '</table><input type="hidden" name="akcja" value="dodawanie" /><br /><input type="submit" value="Wyslij"/></center></form>';
 
    if ($_GET["dodaj"]=="yes") {
     
    $tytul = $_POST['tytul'];
    $autor = $user_data['user_name'];
    $tresc = $_POST['tresc'];
    $data = $_POST['data'];
     
    if ($tytul and $autor and $tresc and $data) {
    $polaczenie = mysql_connect('aaa', 'aaa', 'aaa');
    $db = mysql_select_db('aaa');
     
    $tresc = str_replace("\n","<br />",$tresc);
    $wstaw = mysql_query("INSERT INTO news SET tytul='$tytul', autor='$autor', tresc='$tresc', data='$data'");
    

    if($wstaw) {
    echo "<font color='green'>";
    echo "Dodano nowego newsa. ";
    echo "<a href='news.php'>Zobacz newsa</a>";
    echo "</font>";
    }
    else {
    echo "<font color='red'>";
    echo "Nie dodano newsa!";
    echo "</font>";
    }
     
    }
     
    else {
    echo "<font color='red'>";
    echo "Uzupełnij wszystkie pola!";
    echo "</font>";
    }
    }
     
    ?>

Jak zrobić, aby gdy w bazie znajduje się "$user_data['user_name']" (to nick usera), aby nie mógł on wysłać formularza i pojawiała się informacja?

0

"select autor from news where autor='$autor'"

0

To niestety nie rozwiązuje mojego problemu.
Po prostu $user_data['user_name'] tym odczytuję nick zalogowanego usera i chcę, aby nie mógł on wysyłać formularza jesli już to zrobil (czyli jego nick jest w bazie)

0

Co mi z pobrania rekordów? skoro nie wiem co dalej?

0

Zrobiłem tak i póki co działa. Czy wszystko z tym w porządku?

<?php
     include 'config.php';

    $data = date("d.m.Y H:i:s");
     
    echo '<center><b>Dodawnie nowego newsa</b><br /><br />';
    echo '<form action="add.php?dodaj=yes" method="post"><table border=0>';
    echo '<tr><td align=right>Tytuł newsa:</td><td><input type="text" name="tytul" /></td></tr>';
    echo '<tr><td align=right>Autor:</td><td><input type="text" name="autor" /></td></tr>';
    echo '<tr><td align=right>Tre?ć:</td><td><textarea name="tresc" rows=5 cols=30></textarea></td></tr>';
    echo '<tr><td align=right>Data: </td><td><input type="text" name="data" value="'.$data.'" /></td></tr>';
    echo '</table><input type="hidden" name="akcja" value="dodawanie" /><br /><input type="submit" value="Wyslij"/></center></form>';
    error_reporting(E_ALL);

    if (isset($_GET["dodaj"])=="yes") {
     
    $tytul = $_POST['tytul'];
    $autor = $user_data['user_name'];
    $tresc = $_POST['tresc'];
    $data = $_POST['data'];
	
  
     if ($tytul and $autor and $tresc and $data) {
    $polaczenie = mysql_connect('zzz', 'zzz', 'zzz');
    $db = mysql_select_db('zzz');
    
    $tresc = str_replace("\n","<br />",$tresc);
	$result = mysql_query("SELECT `autor` FROM `news` ")
	or die('Błąd zapytania');
     while ($rows=mysql_fetch_array($result)){
    
    if($rows['autor'] === $autor)
    {
    echo 'Przykro nam, ale nie można wysłać.';
die();
    }}
    if($rows['autor'] != $autor)
    {
    $wstaw = mysql_query("INSERT INTO news SET tytul='$tytul', autor='$autor', tresc='$tresc', data='$data'");
 }
   ;
	
   

    if($wstaw) {
    echo "<font color='green'>";
    echo "Dodano nowego newsa. ";

    echo "<a href='news.php'>Zobacz newsa</a>";
    echo "</font>";
    }
    else {
    echo "<font color='red'>";
    echo "Nie dodano newsa!";
    echo "</font>";
    }
     
    }
     
    else {
    echo "<font color='red'>";
    echo "Uzupełnij wszystkie pola!";
    echo "</font>";
    }
    }
     
    ?>
1

Zamień selecta na taki jaki zaproponowałem, wtedy masz prościej:
if($rows=mysql_fetch_array($result)) ... już jest taki nie wstawiamy
else ... nie ma takiego wstawiamy

0
<?php
     include 'config.php';

    $data = date("d.m.Y H:i:s");
     
    echo '<center><b>Dodawnie nowego newsa</b><br /><br />';
    echo '<form action="add.php?dodaj=yes" method="post"><table border=0>';
    echo '<tr><td align=right>Tytuł newsa:</td><td><input type="text" name="tytul" /></td></tr>';
    echo '<tr><td align=right>Autor:</td><td><input type="text" name="autor" /></td></tr>';
    echo '<tr><td align=right>Tre?ć:</td><td><textarea name="tresc" rows=5 cols=30></textarea></td></tr>';
    echo '<tr><td align=right>Data: </td><td><input type="text" name="data" value="'.$data.'" /></td></tr>';
    echo '</table><input type="hidden" name="akcja" value="dodawanie" /><br /><input type="submit" value="Wyslij"/></center></form>';
    error_reporting(E_ALL);

    if (isset($_GET["dodaj"])=="yes") {
     
    $tytul = $_POST['tytul'];
    $autor = $user_data['user_name'];
    $tresc = $_POST['tresc'];
    $data = $_POST['data'];
	
  
     if ($tytul and $autor and $tresc and $data) {
    $polaczenie = mysql_connect('zzz', 'zzz', 'zzz');
    $db = mysql_select_db('zzz');
    
    $tresc = str_replace("\n","<br />",$tresc);
	$result = mysql_query("SELECT `autor` FROM `news` where autor='$autor'")
	or die('Błąd zapytania');
     if ($rows=mysql_fetch_array($result))
{
echo 'Przykro nam, ale nie można wysłać.';
}
 else
{
    $wstaw = mysql_query("INSERT INTO news SET tytul='$tytul', autor='$autor', tresc='$tresc', data='$data'");
} ;

    if($wstaw) {
    echo "<font color='green'>";
    echo "Dodano nowego newsa. ";

    echo "<a href='news.php'>Zobacz newsa</a>";
    echo "</font>";
    }
    else {
    echo "<font color='red'>";
    echo "Nie dodano newsa!";
    echo "</font>";
    }
     
    }
     
    else {
    echo "<font color='red'>";
    echo "Uzupełnij wszystkie pola!";
    echo "</font>";
    }
    }
     
    ?>

Tak zmieniłem. Dzięki. poza tym wszystko ok?

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