Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mały problem
Forum PHP.pl > Forum > Gotowe rozwiązania
Gh4nd4r
[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ć? sad.gif
scanner
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
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
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
No tak zapomnialem o zmiennych. Dzięki!
Kinool
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 questionmark.gif

uppss to sie troche spoznilem smile.gif
Gh4nd4r
Kurcze nadal nie dodaje :?
nobody
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 smile.gif .
kliszaq
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";

questionmark.gif
nobody
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";

questionmark.gif

Powinno, problem ten juz zostal rozwiazany, zobacz post scanner'a. :wink:
patrycjusz
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
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
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
Ludzie nie robcie jazdy...ten nie czyta postow i powtarza...ten robi z forum manuala [shocked] 8O
Kinool
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
Nadal nie działa :?
rzseattle
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
[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?questionmark.gif
scanner
[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
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
[sql:1:e7460af0b5]SELECT id,tytul,data FROM newsy ORDER BY data DESC[/sql:1:e7460af0b5]
Gh4nd4r
:/ ja nie mam daty w newsach :/, poza tym z tym kodem co mi podałeś i tak nie działa :?
Gh4nd4r
Wiecie? :? Teraz wprowadziłęm datę do mojego skryptu, ale i tak nie działa :x
KaMeLeOn
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
Nadal, nie działa :?
KaMeLeOn
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
[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
Dobra już sobie poradziłem. Dzięki za pomoc!
Gh4nd4r
Przypomniałem sobię, o ostatnim problemie tongue.gif
[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
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.
Invision Power Board © 2001-2024 Invision Power Services, Inc.