Jeśli rekord znajduje się w bazie

2012-06-09 07:21
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?

Pozostało 580 znaków

2012-06-09 07:37
0

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon, 2012-06-09 07:38

Pozostało 580 znaków

2012-06-09 07:43
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)

Wyjaśnij: "nie rozwiązuje mojego problemu". Czy na pewno nie rozwiązuje czy raczej nie rozumiesz w jaki sposób to rozwiązuje twój problem? - _13th_Dragon 2012-06-09 07:54

Pozostało 580 znaków

2012-06-09 08:12
0

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

Pozostało 580 znaków

2012-06-09 09:06
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>";
    }
    }

    ?>

Pozostało 580 znaków

2012-06-09 09:13
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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon, 2012-06-09 09:13

Pozostało 580 znaków

2012-06-09 09:22
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. Po za tym wszystko ok?

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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