Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]PHPadmin może wpisywać a z PHP nie moge?
Forum PHP.pl > Forum > Przedszkole
Shylios
Witam...

Więc mam taki problem, wpisuje z poziomu php do bazy danych
Kod
$field[1]=$_POST['tytul'];
     $field[2]=$_POST['tresc1'];
     $field[3]=$_POST['tresc2'];
     $field[4]=$_POST['data'];
     $query="INSERT INTO news (`tytul`,`tresc1`,`tresc2`,`data`) VALUES ('".$field[1]."','".$field[2]."','".$field[3]."','".$field[4]."')";
     $result=mysql_query($query) or die( mysql_error() );

I wywala mi błąd
Cytat
Table 'shylios.news' doesn't exist


Pomimo że tabela istnieje, i gdy z poziomy phpmyadmin daje to samo tylko że zamiast zmiennych daje jakieś wartości to działa O_O

Zaznaczę że połączenie jest dobrze napisane, oraz wszystkie zmienne mają wartość...

Czy wiece czemu tak się dzieje??
piotrooo89
ja bym to tak zrobił:

  1. <?php
  2. $tyt=$_POST['tytul'];
  3. $txt1=$_POST['tresc1'];
  4. $txt2=$_POST['tresc2'];
  5. $data=$_POST['data'];
  6. $query=mysql_query("INSERT INTO news SET
  7. tytul='$tyt',
  8. tresc1='$txt1',
  9. tresc2='$txt2',
  10. data='$data'");
  11. ?>


zakładając że masz pełen dostęp do bazy i poprawnie podajesz nazwy kolumn, tabeli i bazy.
Shylios
Cytat(piotrooo89 @ 21.12.2008, 19:31:22 ) *
ja bym to tak zrobił:

  1. <?php
  2. $tyt=$_POST['tytul'];
  3. $txt1=$_POST['tresc1'];
  4. $txt2=$_POST['tresc2'];
  5. $data=$_POST['data'];
  6. $query=mysql_query(&#092;"INSERT INTO news SET
  7. tytul='$tyt';
  8. tresc1='$txt1',
  9. tresc2='$txt2',
  10. data='$data'&#092;");
  11. ?>


zakładając że masz pełen dostęp do bazy i poprawnie podajesz nazwy kolumn, tabeli i bazy.


Query was empty O_O

-Sprawdziałem, ponownie, dane w zmiennych posiadają wartości
piotrooo89
tam była literówka....
Shylios
Gdzie Ty widzisz literówkę?
piotrooo89
już ja poprawiłem, dzieje się coś?
erix
Cytat
Zaznaczę że połączenie jest dobrze napisane, oraz wszystkie zmienne mają wartość...

A wybrałeś odpowiednią DB?
Shylios
Kod
mysql_select_db($mysql_nazwa) or die('Nie udało się wybrać bazy: '.$mysql_nazwa);

Owszem
piotrooo89
poczytaj to i to i powiedz czy robisz tak samo.
Shylios
Kod
//Łączenie z MySQL
$mysql_connect=mysql_connect($mysql_dir,$mysql_login,$mysql_haslo) or die('Nie udało się połączyć z bazą MySQL');
mysql_select_db($mysql_nazwa,$mysql_connect) or die('Nie udało się wybrać bazy: '.$mysql_nazwa);

A widzisz różnicę? winksmiley.jpg
erix
Cytat
Owszem

A nie zrobiłeś gdzieś przypadkiem literówki? Może podaj jakiś większy kawałek kodu.
Shylios
Wszystko co Ci potrzeba

Kod
include('config.php');

//Łączenie z MySQL
$mysql_connect=mysql_connect($mysql_dir,$mysql_login,$mysql_haslo) or die('Nie udało się połączyć z bazą MySQL');
mysql_select_db($mysql_nazwa,$mysql_connect) or die('Nie udało się wybrać bazy: '.$mysql_nazwa);


Kod
function dodaj_news()
    {
    ?>
        <form action="?do=addnews" method="post">
        Tytul:<br /><input type="text" name="tytul" size="60"><br />
        Tresc(dla indexu):<br /><textarea name="tresc1" rows="10" cols="65"></textarea><br />
        Tresc(czytaj wiecej)*:<br /><textarea name="tresc2" rows="10" cols="65"></textarea><br />
        Data dodania:<br /><input type="text" name="data" value="<?php echo date("G:i - d/m/Y");?>"><br /><br />
        <input type="submit" value="Wyślij"> <input type="reset" value="Reset">
        </form><br />
        <center><font style="font-size:7pt">* - pole nieobowiązkowe</font></center>
    <?php
    }


Kod
function dodaj_news_mysql()
    {
    $tyt=$_POST['tytul'];
    $txt1=$_POST['tresc1'];
    $txt2=$_POST['tresc2'];
    $data=$_POST['data'];
    if ($tyt!=null && $txt1!=null && $data!=null)
        {
            $query=mysql_query("INSERT INTO news SET tytul='$tyt';tresc1='$txt1',tresc2='$txt2',data='$data'");
            $result=mysql_query($query) or die(mysql_error()); echo 'News dodany prawidłowo!';
        }
        elseif ($tyt==null)
        {
        echo 'Tytuł nie może być pusty!';
        }
        elseif ($txt1==null)
        {
        echo 'Treść dla indexu nie może być posta!';
        }
        elseif ($data==null)
        {
        echo 'Musisz podać datę!';
        };
    }
erix
  1. <?php
  2. $query=mysql_query("INSERT INTO news SET tytul='$tyt';tresc1='$txt1',tresc2='$txt2',data='$data'");
  3.            $result=mysql_query($query) or die(mysql_error()); echo 'News dodany prawidłowo!';
  4. ?>
  1. kod podatny na SQL Injection
  2. po kiego grzyba podstawiasz resource pod mysql_query" title="Zobacz w manualu PHP" target="_manual?
  3. od kiedy do oddzielania pól przy INSERT używa się średnika? Raz oddzielasz przecinkiem, raz średnikiem...
Shylios
Poprawione, i nic dalej
Kod
    $tyt=mysql_escape_string($_POST['tytul']);
    $txt1=mysql_escape_string($_POST['tresc1']);
    $txt2=mysql_escape_string($_POST['tresc2']);
    $data=mysql_escape_string($_POST['data']);
    
    if ($tyt!=null && $txt1!=null && $data!=null)
        {
            $query="INSERT INTO `news` SET `tytul` = '$tyt', `tresc1` = '$txt1', `tresc2` = '$txt2', `data` = '$data'";
            $result=mysql_query($query) or die(mysql_error()); echo 'News dodany prawidłowo!';
        }


Teraz dostaje że tabele nie istnieje - ale ją w phpadminie widze
piotrooo89
a wybierasz poprawną bazę danych? bo jest to niemożliwe żeby nie działało. ja nie widzę innej przyczyny
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.