Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[problem] php/msql


Rekomendowane odpowiedzi

Opublikowano

Mam problem ze skryptem dodającym dane do bazy danych msql.

Skrypt ten wygląda następująco:

<?php
// odbieramy dane z formularza 
$date     = $_POST['date'];
$name     = $_POST['name'];
$md5sum   = $_POST['md5sum'];
$size     = $_POST['size'];
$download = $_POST['download'];
$mirrordl = $_POST['mirrordl'];

if ($date and $name and $md5sum and $size and $download and $mirrordl) {
    // łączymy się z bazą danych 
    $connection = @mysql_connect('mysql.hostinger.pl', 'nazwa_bazy', 'hasło') or die('Brak połączenia z serwerem MySQL');
    $db = @mysql_select_db('nazwa_bazy', $connection) or die('Nie mogę połączyć się z bazą danych');
    
    $wynik = mysql_query("SELECT * FROM cyanogenmod") or die('Błąd zapytania');
    
    // dodajemy rekord do bazy 
    $ins = @mysql_query("INSERT INTO cyanogenmod SET date='$date', name='$name', md5sum='$md5sum', size='$size', download='$download', mirrordl='$mirrordl'");
    
    if ($ins)

        echo "<div class=\"container\"><h1>New bulid has been added correctly</h1></div>";
    
    else
      echo "Error. Bulid was not added";  
  
    mysql_close($connection);
}
?>

I taki formularz:

<form method="post">
                        Date:
                        <br />
                        <input type="date" class="form-control" name="date" />
                        <br />Name:
                        <br />
                        <input type="text" class="form-control" name="name" />
                        <br />Checksum:
                        <br />
                        <input type="text" class="form-control" name="md5sum" />
                        <br />Size:
                        </br>
                        <input type="text" class="form-control" name="size" />
                        <br />Download link:</br>
                        <input type="text" class="form-control" name="download" />
                        <br />Mirror Download link:</br>
                        <input type="text" class="form-control" name="mirrordl" />
                        <br />
                        <br>
                        <input type="submit" value="Send" class="btn btn-default" />
                    </form>

Niestety nie działa to prawidłowo. Czasami dodają się dane a czasami nie. Co w tym kodzie jest źle napisane?

Pumpernikiell.png


Opublikowano

kod php wyglada ok, przyczepie sie tylko niepotrzebnego powolywania zmiennych i przepisywania do nich wartosci z tablicy $_POST bez zadnej obrobki, co moglo by takie zachowanie usprawiedliwiac, ale widze, ze to norma

kod html (pod bootsrap 3.x) tez wyglada ok

 

zdejmij "wyciszacze" (@) z zapytania

$ins = mysql_query("INSERT INTO cyanogenmod SET date='$_POST[date]', name='$_POST[name]', md5sum='$_POST[md5sum]', size='$_POST[size]', download='$_POST[download]', mirrordl='$_POST[mirrordl]'");

Problem moze powodowac data - jesli pole bazy jest fotmatu date a ktos poda date w innym formacie niz "YYYY-mm-dd" to moze wywalic blad i nie utworzyc rekordu, ale wszystko wyjdzie w praniu jak poprawisz kod php

i zobacz co wyswietli w przypadku niedodania rekordu

Lepiej jest nie odzywać się wcale i pozwolić ludziom myśleć, że jesteś glupi, niż odezwać się i rozwiać wszelkie wątpliwości.
Mark Twain

Opublikowano

Dzięki za pomoc. Niestety mam następny problem. W tym pliku z formularzem dodałem drugi formularz który wygląda tak:

<form action="omni_sql.php" method="post">
                        Date:
                        <br />
                        <input type="date" class="form-control" name="dateo" />
                        <br />Name:
                        <br />
                        <input type="text" class="form-control" name="nameo" />
                        <br />Checksum:
                        <br />
                        <input type="text" class="form-control" name="md5sumo" />
                        <br />Size:
                        </br>
                        <input type="text" class="form-control" name="sizeo" />
                        <br />Download link:</br>
                        <input type="text" class="form-control" name="downloado" />
                        <br />Mirror Download link:</br>
                        <input type="text" class="form-control" name="mirrordlo" />
                        <br />
                        <br>
                        <input type="submit" value="Send" class="btn btn-default" />
                    </form>

i plik omni_sql.php:

<?php
// odbieramy dane z formularza 
$dateo     = $_POST['dateo'];
$nameo     = $_POST['nameo'];
$md5sum    = $_POST['md5sumo'];
$sizeo     = $_POST['sizeo'];
$downloado = $_POST['downloado'];
$mirrordlo = $_POST['mirrordlo'];

if ($dateo and $nameo and $md5sumo and $sizeo and $downloado and $mirrordlo) {
    // łączymy się z bazą danych 
    $connection = @mysql_connect('mysql.hostinger.pl', 'nick', 'hasło') or die('Brak połączenia z serwerem MySQL');
    $db = @mysql_select_db('nazwa bazy danych', $connection) or die('Nie mogę połączyć się z bazą danych');
    
    $wynik = mysql_query("SELECT * FROM omni") or die('Błąd zapytania');
    
    // dodajemy rekord do bazy 
    $ins = mysql_query("INSERT INTO omni SET dateo='$_POST[dateo]', nameo='$_POST[nameo]', md5sumo='$_POST[md5sumo]', sizeo='$_POST[sizeo]', downloado='$_POST[downloado]', mirrordlo='$_POST[mirrordlo]'");
    
    if ($ins)

        echo "<h1>New bulid has been added correctly</h1>";
    
    else
      echo "Error. Bulid was not added";  
  
    mysql_close($connection);
}
?>

Po wypełnieniu wszystkich pól i kliknięciu subbmit przenosi na /omni_sql.php i nie wyświetla żadnego komunikatu. Dodam że tamten formularz działa już bez problemu

Pumpernikiell.png


Opublikowano

Nie rozumiem tego :

if ($dateo and $nameo and $md5sumo and $sizeo and $downloado and $mirrordlo) {

Że wartości zmiennych nie mogą być NULL ?

 

Daj np.:

if ($dateo != '' and $nameo != '' and $md5sumo != '' and $sizeo != '' and $downloado != '' and $mirrordlo != '') {
// jakiś kod }
 else { echo "Wypełnij wszystkie pola";
}

Pomogłem? Daj Like'a

:)

Opublikowano
SELECT * FROM moja_tablica ORDER BY dateo DESC

jakos w tym stylu :)

Lepiej jest nie odzywać się wcale i pozwolić ludziom myśleć, że jesteś glupi, niż odezwać się i rozwiać wszelkie wątpliwości.
Mark Twain

Opublikowano

phpmyadminem nie wykonasz zapytan na strone, ale zawsze mozna podpatrzec jaki kod SQL wygeneruje :)

Lepiej jest nie odzywać się wcale i pozwolić ludziom myśleć, że jesteś glupi, niż odezwać się i rozwiać wszelkie wątpliwości.
Mark Twain

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...