Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Skrypt rejestracji
Forum PHP.pl > Forum > Przedszkole
slawo123
Witam, od niedawna bawię się php, i postanowiłem napisać własnego CMS'a blinksmiley.gif
Napisałem między innymi skrypt rejestracji, ale nie wiem czy nie popełniłem w nim jakiś rażących błędów, oprócz tego że nie miesza się html'a z php.
Nie wiem również czy jest on zoptymalizowany i czy jest bezpieczny...

Proszę o szczere opinie, i wytykanie mi błędów. Nie śmiejcie się z nazewnictwa zmiennych i funkcji tongue.gif

Skrypt można przetestować pod tym adresem: http://e50.com.pl/test/register.php

A kod to: http://e50.com.pl/test/kod.txt

Za długi był by go wkleić tutaj tongue.gif
peter13135
niechce mi sie wszystkiego czytać, ale już widze pare błedów optymalizacji, a konkretnie na początku pobierasz z jednej tabeli nr 1 wartośc nr 1 a potem z tej samej tabeli wartosć nr 2, niemożesz wykonać raz zapytanie pobierając obie wartości?
slawo123
Czyli w jaki sposób mam pobrać kilka rekordów z tabeli i zapisać je osobno w zmiennych?

Proszę o dalsze opinie.
rupek
kurde, tego sie nie dało normalnie przeczytać, popraw formatowanie i wrzuć ponownie, a wtedy na pewno ludzie będą chętniej pomagać, zauważy się więcej błedów a i Tobie będzie się ten kod łatwiej poprawiać
slawo123
Racja. http://www.wklejto.pl/8614

Czekam na sugestie...

Ok, to może inaczej...

Jak za pomocą jednego zapytania do mysql uzyskać osobno wartości z kilku rekordów? Za pewne przez pętlę, ale nie wiem jak potem te dane wyciągnąć...

Mam zapytania:

  1. <?php
  2. //odczyt nazwy domeny
  3. $zapytanie3 = @mysql_query("SELECT wartosc FROM `config` WHERE nazwa = 'domena'");
  4. $domena = @mysql_fetch_array($zapytanie3);
  5. $domena = $domena['wartosc'];
  6.  
  7. //odczyt ścieżki path
  8. $zapytanie2 = @mysql_query("SELECT wartosc FROM `config` WHERE nazwa = 'script_path'");
  9. $path = @mysql_fetch_array($zapytanie2);
  10. $path = $path['wartosc'];
  11.  
  12. //odczyt zawartości konfiguracji email
  13. $zapytanie1 = @mysql_query("SELECT wartosc FROM `config` WHERE nazwa = 'email'");
  14. $obecny_email = @mysql_fetch_array($zapytanie1);
  15. $obecny_email = $obecny_email['wartosc'];
  16. ?>
ferrero2
Pętla while :

Jeśli np "nazwa" to u Ciebie 2-ga kolumna licząc od lewej (pierwsza kolumna ma index 0) to robisz tak
Kod
$zapytanie = "SELECT * FROM config";
$result = mysql_query($zapytanie);
while($row = mysql_fetch_array($result))
{
echo $row['1'] . '<br />';
}


Niewiem czy konkretnie o to chodzi.
slawo123
Ale ja nie chcę wyświetlać wyników tylko je przypisywać do różnych zmiennych.

Mam tabelę config a w niej 2 kolumny: nazwa i wartosc.

Rekordów mam 3.

I chcę w jednym zapytaniu pobrać wszystkie dane z tabeli i każdy rekord przypisać do innej zmiennej, tak jak poradził peter13135
golaod
Wszystkie dane z tabeli SELECT * FROM tabela
Funkcja http://pl.php.net/manual/pl/function.eval.php
while($wynik = mysql_fetch_array($zapytanie)
eval("\$$wynik['nazwa']=$wynik['wartosc'];");

Dzieki temu stworza Ci sie 3 zmienne o nazwach jak w tabeli (chyba ze beda spacje) i wartosciach jak w tabeli.
ferrero2
To dodaj :
Kod
$zapytanie = "SELECT nazwa, wartosc FROM config";
  $result = mysql_query($zapytanie);
  $licznik = 1;
  while($row = mysql_fetch_array($result))
  {
$wartosc[$licznik] =$row['wartosc'];
  $nazwa[$licznik] = $row['nazwa'];
  licznik++;
  }
golaod
@ferrero2 nie ucz go zlych nawykow
PHP jest sprytne i potrafi sam indeksowac tablice zatem wystarczy tylko $nazwa[]=$row['nazwa'],$wartosc[]=$row['wartosc']. A w ogole to po co mu dwie tablice do tego ?
peter13135
<?
$sql=@mysql_query("SELECT wartosc FROM `config` );
$row=mysql_fetch_array($sql);
$domena=$row['domena'];
$path = $row['script_path'];
$email=$row['email];
?>

zdaje sie że powinno być tak, jeśli źle to niech mnie ktoś poprawi
ale myśle że dobrze myśle więc napisałem co myślałem smile.gif smile.gif

edit, coś mi sie pomyliło, myślałem że masz inną strukture tabeli
w twoim przypadku powinno sie zastosować petle

$sql=@mysql_query("SELECT wartosc FROM `config` );
for($x=0,$x>3;$x++)
{
$row=mysql_fetch_array($sql);
$nazwa[$i]=row[wartosc];
}
no i $nazwa[0] to będzie domena
$nazwa[1] to patch
$nazwa[2] to email
(tak mi sie wydaje że tak być powinno, jak źle to poprawcie)
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.