Gh4nd4r
23.09.2003, 08:31:22
[php:1:ae4ca6314d]
<?
include( "config.php" );
$zapytanie = "SELECT id, autor, email, tytul, tresc, data";
$wynik = mysql_query( $zapytanie );
while( $wiersz = mysql_fetch_array( $wynik ))
{
$id = $wiersz['id'];
$autor = $wiersz['autor'];
$email = $wiersz['email'];
$tytul = $wiersz['tytul'];
$tresc = $wiersz['tresc'];
$data = $wiersz['data'];
echo "Tytuł: $tytul.<BR>";
echo "$tresc<BR";
echo "Autor: <A HREF="mailto:$email">$autor</A>";
}
?>
[/php:1:ae4ca6314d]
Mam taki kod i wystkuje mi taki błąd
Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:usrkrasnalwwwnewsyodczyt.php on line 7
Wie ktoś jak się tego pozbyć?
scanner
23.09.2003, 08:34:18
Cytat
[php:1:527a345258]
$zapytanie = "SELECT id, autor, email, tytul, tresc, data";
[/php:1:527a345258]
Czwegoś tu brakuje.
[sql:1:527a345258]SELECT fiellds FROM table WHERE statement ORDER BY expression ASC|DESC LIMIT offset, maxrows[/sql:1:527a345258] (tak na szybko)
Gh4nd4r
23.09.2003, 08:55:16
To jeszcie jedno.
dodanie.php
[php:1:b2f339e396]
<?
include( "config.php" );
$data = date( "d.m.Y H:i" );
$zapytanie = "INSERT TO newsy( id, autor, email, tytul, tresc, data )";
$wynik = mysql_query( $zapytanie );
?>
[/php:1:b2f339e396]
dodaj_news.php
Kod
<TABLE width="500" border="0" cellpadding="0" cellspacing="0">
<TR>
<TD width="500" height="25" background="images/center/background.gif"><B><DIV align="center">Dodaj News</DIV></B></TD>
</TR>
<TR>
<TD width="500" background="images/center/middle.gif" class="padding">
<DIV align="center">
<FORM action="dodanie.php" method="post">
<TABLE width="75%" border="0" cellpadding="0" cellspacing="0">
<TR>
<TD width="25%" valign="top">
Autor
</TD>
<TD width="75%" valign="top">
<INPUT TYPE="text" name="autor">
</TD>
</TR>
<TR>
<TD width="25%" valign="top">
E-mail
</TD>
<TD width="75%" valign="top">
<INPUT TYPE="text" name="emial">
</TD>
</TR>
<TR>
<TD width="25%" valign="top">
Tytuł
</TD>
<TD width="75%" valign="top">
<INPUT TYPE="text" name="tytul">
</TD>
</TR>
<TR>
<TD width="25%" valign="top">
Treść
</TD>
<TD width="75%" valign="top">
<TEXTAREA name="tresc" cols="35" rows="7"></TEXTAREA>
</TD>
</TR>
<INPUT TYPE="submit" name="wyslij" value="Wyślij">
</TABLE>
</FORM>
</DIV>
</TD>
</TR>
<TR>
<TD width="500" height="1" background="images/center/bottom.gif"></TD>
</TR>
</TABLE>
I czemu to nie dodaje.
rzseattle
23.09.2003, 09:01:46
blad w zapytaniu ogolnie powinno byc tak
[php:1:65fdce5e4a]<?php
$zapytanie = "INSERT TO newsy( id, autor, email, tytul, tresc, data ) VALUES ('', '".$_POST['autor']."', '".$_POST['email']."', '".$_POST['tytul']."', '".$_POST['tresc']."', '".$data."') ";
?>[/php:1:65fdce5e4a]
Gh4nd4r
23.09.2003, 09:04:57
No tak zapomnialem o zmiennych. Dzięki!
Kinool
23.09.2003, 09:06:43
a nie powinno byc ...
[php:1:ba77e199e2]<?php
$zapytanie = "INSERT INTO newsy VALUES('".$id."','".$autor."','".$email."','".$tytul."',''".$tresc."','".$data."')";
?>[/php:1:ba77e199e2]
gdzie $id $autor itp to odpowiednie zmienne przekazane przez formulaz
uppss to sie troche spoznilem
Gh4nd4r
23.09.2003, 09:41:30
Kurcze nadal nie dodaje :?
nobody
23.09.2003, 14:17:23
Cytat
[php:1:e0413b7690]<?php
$zapytanie = "INSERT INTO newsy VALUES('".$id."','".$autor."','".$email."','".$tytul."',''".$tresc."','".$data."')";
?>[/php:1:e0413b7690]
Cytat
Kurcze nadal nie dodaje :/
Bo jest blad, o jeden srednik za duzo przy zmiennej $tresc. :wink: Jak masz wylaczone register globals to skorzystaj jeszcze z tablicy _POST i bedzie hulac

.
kliszaq
23.09.2003, 15:04:35
Cytat
$zapytanie = "SELECT id, autor, email, tytul, tresc, data";
czy nie powinno byc
Cytat
$zapytanie = "SELECT id, autor, email, tytul, tresc, data FROM nazwa_tabeli";
nobody
23.09.2003, 15:20:16
Cytat
Cytat
$zapytanie = "SELECT id, autor, email, tytul, tresc, data";
czy nie powinno byc
Cytat
$zapytanie = "SELECT id, autor, email, tytul, tresc, data FROM nazwa_tabeli";

Powinno, problem ten juz zostal rozwiazany, zobacz post
scanner'a. :wink:
patrycjusz
23.09.2003, 15:30:10
co do dodawania... nie wiem jakie masz pole id w bazie ale jezeli auto_increment to powinno byc chyba tak...
[php:1:cf81b74d82]<?php
$zapytanie = "INSERT INTO newsy VALUES(' ','".$autor."','".$email."','".$tytul."','".$tresc."','".$data."')";
?>[/php:1:cf81b74d82]
chyba nie jestem pewien...
zawada
23.09.2003, 15:46:45
teraz tak w ramach przypomnienia podaje kody, ktorych ja zawsze uzywam przy tworzeniu, wpisywaniu i odczytywaniu danych z MySQL
Tworzenie bazy, wstawianie tabelek:
[php:1:f45f219d03]<?php
$conn = mysql_connect ("127.0.0.1","","");
echo "<br>";
mysql_create_db ("baza",$conn);
if (mysql_error()) {
echo mysql_error();
exit;
} else {
echo "Ok!"; };
mysql_select_db("baza");
// TABELA NR 1 - PRODUKTY
mysql_query("CREATE TABLE produkty (lp int(3), nazwa text, opis text, foto text, cena text )");
if (mysql_error()) {
echo mysql_error();
exit;
} else {
echo "Ok!"; };
mysql_close($conn);
?>[/php:1:f45f219d03]
A teraz dodawanie danych do tablic. Zmienna $b polega na tym ze jest liczona ilosc "wierszy" w tablicy a nastepnie jest zwiekszana o jeden.
[php:1:f45f219d03]<?php
$conn = mysql_connect("127.0.0.1", "", "");
mysql_select_db("baza");
$nazwa = "pralka";
$opis = "super pralko zamrazalka";
$foto = "1";
$cena = "2939";
$a = mysql_query("SELECT * FROM produkty");
$b = mysql_num_rows($a);
$b++;
mysql_query("INSERT INTO produkty VALUES ('$b', '$nazwa', '$opis', '$foto', '$cena')");
if (mysql_error()) {
echo mysql_error();
exit;
} else {
echo "Ok!"; };
?>[/php:1:f45f219d03]
A teraz odczytywanie danych z bazy i wstawianie do prostej tabelki:
<table align="center" cellspacing="2" cellpadding="2" border="2">
<tr>
<td>l.p</td>
<td>produkt</td>
<td>opis</td>
<td>foto</td>
<td>cena</td>
</tr>
[php:1:f45f219d03]<?php
$conn = mysql_connect ("127.0.0.1","","");
mysql_select_db ("baza",$conn);
$alfa = mysql_query("SELECT * FROM temat ORDER BY lp");
while ($beta = mysql_fetch_array($alfa)) {
echo "<tr><td>". $beta[0] . "</td><td>" . $beta[1] . "</td><td><". $beta[2] . "</td><td>" . $beta[3] . "</td><td>" . $beta[4] . "</td></tr>" ;
};
mysql_close($conn);
?>[/php:1:f45f219d03]
</table>
rzseattle
23.09.2003, 16:03:30
Cytat
teraz tak w ramach przypomnienia podaje kody, ktorych ja zawsze uzywam przy tworzeniu, wpisywaniu i odczytywaniu danych z MySQL
Tworzenie bazy, wstawianie tabelek:
8O :?: :?: :?:
nobody
23.09.2003, 16:08:46
Ludzie nie robcie jazdy...ten nie czyta postow i powtarza...ten robi z forum manuala [shocked] 8O
Kinool
23.09.2003, 16:16:37
jep male nie dopatrzenie z mojej strony (prosze o wybaczenie pislem to po calej nocy spedzonej przy kompie w pracy z temp. ~39 stopni)
Gh4nd4r
23.09.2003, 16:21:49
Nadal nie działa :?
rzseattle
23.09.2003, 16:28:57
to sproboj pytania [php:1:5b7197e75d]<?php
$zapytanie = "INSERT INTO newsy (autor) values('wacek')";
?>[/php:1:5b7197e75d]
i zobacz czy cokolwiek cos sie dodalo
potem zmien wacek na $_POST['autor'] i znowu zobacz
potem sproboj uzupelniac juz wszystkie pola i znowu zobacz
jesli dalej nie bedzie sie dodawac to napisz w ktorym etapie sie wysypuje
Gh4nd4r
25.09.2003, 19:45:38
[php:1:7cffc9049d]
<?php
include ("config.php" );
$zapytanie = mysql_query ("SELECT id, url, img, alt FROM $dbname WHERE RAND(id) LIMIT 1" );
while ($wiersz = mysql_fetch_array ($zapytanie))
{
$id = $wiersz['id'];
$url = $wiersz['url'];
$img = $wiersz['img'];
$alt = $wiersz['alt'];
echo $wiersz['id'];
}
?>[/php:1:7cffc9049d]
Czemu mi nie wyświetla id z wylosowanego rekordku?
scanner
26.09.2003, 10:13:47
[sql:1:2bbcb0660d]SELECT id, url, img, alt FROM $dbname ORDER BY RAND() LIMIT 1[/sql:1:2bbcb0660d] - podobny przykład jest w manualu do mysql.
Gh4nd4r
30.09.2003, 09:56:33
Ok, dzięki wszystko działa! Tylko ostatnie zapytanie. Jak zrobić by newsy były wyświetlane od najnoweszego i w dół są stare, a ja mam odwrotnie.
GeoS
30.09.2003, 10:11:41
[sql:1:e7460af0b5]SELECT id,tytul,data FROM newsy ORDER BY data DESC[/sql:1:e7460af0b5]
Gh4nd4r
30.09.2003, 10:48:45
:/ ja nie mam daty w newsach :/, poza tym z tym kodem co mi podałeś i tak nie działa :?
Gh4nd4r
1.10.2003, 13:47:34
Wiecie? :? Teraz wprowadziłęm datę do mojego skryptu, ale i tak nie działa :x
KaMeLeOn
1.10.2003, 15:02:49
Sortuj po id:
[sql:1:aee34e7a2c]SELECT n.id, n.tytul, n.data FROM newsy AS n ORDER BY n.id DESC[/sql:1:aee34e7a2c]
Gh4nd4r
3.10.2003, 18:05:23
Nadal, nie działa :?
KaMeLeOn
3.10.2003, 22:36:05
Nie działa to telewizor jak się zepsuje...
Może troszkę więcej szczegółów.
Co zwraca?
Czy wogóle coś zwraca?
Masz błąd? Pokaż jaki.
Jaka jest struktura tabeli? Bo tego jeszcze nie pokazałeś.
Gh4nd4r
4.10.2003, 08:14:10
[sql:1:78f2956b23]
CREATE TABLE `newsy` (
`numer` int(11) NOT NULL auto_increment,
`autor` text NOT NULL,
`email` text NOT NULL,
`data` date NOT NULL default '0000-00-00',
`temat` text NOT NULL,
`tresc` text NOT NULL,
UNIQUE KEY `numer` (`numer`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;
[/sql:1:78f2956b23]
A kod pliku
[php:1:78f2956b23]
<?
include ("config.php");
$zapytanie = mysql_query ("SELECT n.numer, n.autor, email, n.data, n.temat, n.tresc FROM ".$dbname. "AS n ORDER BY n.numer DESC");
while ($rekord = mysql_fetch_array ($zapytanie))
{
$numer = $rekord['numer'];
$autor = $rekord['autor'];
$email = $rekord['data'];
$temat = $rekord['temat'];
$tresc = $rekord['tresc'];
echo $rekord['autor']."<BR><BR>".$rekord['email']."<BR><BR>".$rekord['data']."<BR><BR>".$rekord['temat']."<BR><BR>".$rekord['tresc'];
}
?>
[/php:1:78f2956b23]
I błąd jest w linii z mysql_fetch_array.
Gh4nd4r
4.10.2003, 08:24:29
Dobra już sobie poradziłem. Dzięki za pomoc!
Gh4nd4r
4.10.2003, 11:05:40
Przypomniałem sobię, o ostatnim problemie
[php:1:c375188df7]
<?
if ($_COOKIE['Administrator'] == "Zalogowany")
{
?>
<TABLE width="800" align="center" cellpadding="0" cellspacing="0" border="0">
<TR>
<TD width="800" height="20" background="images/center/top.gif" align="center"><B>News dopisano</B></TD>
</TR>
<TR>
<TD width="800" background="images/center/middle.gif" style="padding-left: 4px; padding-right: 4px">
<BR>
<?
include ("config.php");
$data = date ("d-m-Y, H:i:s");
$zapytanie = mysql_query ("INSERT INTO ".$dbname." (numer, autor, email, data, temat, tresc) VALUES ('$numer', '$autor', '$email', '$data', '$temat', '$tytul')");
echo "News dopisano poprawnie."."<BR>";
echo "<A HREF="index.php?dzial=administracja">Wróc do administracji</A>.";
?>
<BR><BR>
</TD>
</TR>
<TR>
<TD width="800" height="1" background="images/center/bottom.gif"></TD>
</TR>
</TABLE>
<?
}
else
{
header ("location: index.php?dzial=zaloguj_sie");
}
?>
[/php:1:c375188df7]
I to jest plik news_dopisano. I mam jeszcze plik dodaj_news.php
Kod
<?
if ($_COOKIE['Administrator'] == "Zalogowany")
{
?>
<TABLE width="800" align="center" cellpadding="0" cellspacing="0" border="0">
<TR>
<TD width="800" height="20" background="images/center/top.gif" align="center"><B>Dodaj news</B></TD>
</TR>
<TR>
<TD width="800" background="images/center/middle.gif" style="padding-left: 4px; padding-right: 4px">
<BR>
<FORM action="index.php?dzial=news_dopisano" method="POST">
<TABLE width="800" border="0" cellpadding="0" cellspacing="0">
<TR>
<TD width="100"align="left">Autor:</TD>
<TD width="700"align="left"><INPUT TYPE="text" name="autor"></TD>
</TR>
<TR>
<TD width="100"align="left">E-mail:</TD>
<TD width="700"align="left"><INPUT TYPE="text" name="email"></TD>
</TR>
<TR>
<TD width="100"align="left">Tytuł:</TD>
<TD width="700"align="left"><INPUT TYPE="text" name="tytul"></TD>
</TR>
<TR>
<TD width="100" align="left">Treść:</TD>
<TD width="700"align="left"><TEXTAREA rows="10" cols="50" name="tresc"></TEXTAREA></TD>
</TR>
<TR>
<TD width="800" align="left"><INPUT TYPE="Submit" name="wyslij" value="wyslij"></TD>
</TR>
</TABLE>
</FORM>
<BR><BR>
</TD>
</TR>
<TR>
<TD width="800" height="1" background="images/center/bottom.gif"></TD>
</TR>
</TABLE>
<?
}
else
{
header ("location: index.php?dzial=zaloguj_sie");
}
?>
I teraz problem. Nie dodaje mi daty do tabeli. A pole tabeli to 'data', typ 'datatime'. Na 'data', też nie działało. Wiecie, co jest źle?
Kinool
4.10.2003, 23:47:50
Typ DATETIME w MySQL zapisywany jest w formacie RRRR-MM-DD gg-mm-ss
u cibie wyglada to tak
[php:1:04d2add020]<?php
$data=date ("d-m-Y, H:i:s");
?>[/php:1:04d2add020]
widzisz gdzie jest blad??
ROZWIAZANIE
albo zapiszesz date w tak:
[php:1:04d2add020]<?php
$data=date ("Y-m-d, H-i-s");
?>[/php:1:04d2add020]
(powinno byc zgodne z DATETIME)
albo pobrac date jako znaczik czasu unixa czyli:
[php:1:04d2add020]<?php
$czas=time();
?>[/php:1:04d2add020]
i zapisac to jako CHAR lub VCHAR (co wolisz) a potem odpowiednio sobie sformatowac jak juz ci sie podoba np:
[php:1:04d2add020]<?php
$czas_dodania=date('d.m.Y - G:i:s',$wynik_zapytania_MySQL[czas]);
?>[/php:1:04d2add020]
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.