Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Aiuto pre programma

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    22

    Aiuto pre programma

    Save a tutti,

    Premetto che non sono alle prime armi, il mio cervello deve ancora pensare di cominciare di pensare di cominciare a studiare il php e come interagire con il database mysql, quindi vi chiedo il massimo aiuto in questo programmino semplicissimo, ho esperienza con l'html ed il c, il php per ora mi è ancora sconosciuto.

    Descrizione del programma:

    Fate conto di avere 3 variabili numeriche che chiameremo "galaxy" "system" "planet", immaginatevi l'universo, abbiamo n galassie (MAX 9) in cui ci sono n sistemi solari (MAX 500) in cui ci sono n pianeti (MAX 15) [mi può capire solo chi conosce ogame ] tutto questo è archiviato in una tabella del database (denominato gala) denominata "galgalaxy" in cui sono archiviate le galassie nella righa "galaxy" il sistema solare "system" e il pianeta numero x "planet" ed altre righe che prenderemo in considerazione, ovvero: galaxy, system, planet, player_id

    Girovagando per il web sono riusito a connettermi al database e scrivere il contenuto delle righe galaxy, system, planet, player_id utilizzando il seguente codice:

    codice:
    <?php  
     // Stabiliamo una connessione MySQL 
    
    mysql_connect("localhost", "root", "") or die(mysql_error()); 
    mysql_select_db("gala") or die(mysql_error());  
    
    // Eseguiamo la SELECT sulla tabella 'galgalaxy' 
    $result = mysql_query("SELECT * FROM galgalaxy") or die(mysql_error());
    
    // Salviamo alcune righe della tabella "galgalaxy" nella variabile $row
    
     mysql_fetch_array($result);
    
    while($row = mysql_fetch_array($result)){
     // Visualizziamo sulla pagina il contenuto della riga letta     
    
    echo "Galassia: ".$row['galaxy']." - Sistema: ".$row['system']."- Posizione: ".$row['planet']."- Id giocatore: ".$row['player_id']."
    "; 
    }  
    
    ?>
    ottenendo:

    (non capisco come mai non mi scrive Galassia: 1 - Sistema: 1- Posizione: 1 ma parte direttamente dalla posizione 2)

    Galassia: 1 - Sistema: 1- Posizione: 2- Id giocatore: 8
    .
    .
    .
    .
    Galassia: 1 - Sistema: 1- Posizione: 15- Id giocatore: 14
    Galassia: 1 - Sistema: 2- Posizione: 1- Id giocatore: 0

    ecc...

    (come notate la posizione una volta arrivata a 15 torna ad 1 e il sistema aumenta di uno,una volta che il sistema è arrivato a 499 torna ad uno e incrementa Galassia, però questa cosa comunque non vi è utile saperla)

    Fino a quì ci sono arrivato anche io e non ho avuto problemi, vi ricordo che è un copia ed incolla!

    Adesso arriva il cuore del programma e quì non posso fare altro che piangere

    Cosa deve fare il programma:

    Il programma deve avere uno checkbox e un menu a tendina (non mi ricordo il nome tecnico) in cui sia possibile selezionare un un numero da 1 a 15 che sarà la variabile x:

    -se il checkbox è attivo mi deve scrivere la variabile della riga "galaxy" e "system" ogni volta che x planet (la x è quella inserita nel textbox) è occupato da id_giocatore DIVERSO da 0
    -se il checkbox è disattivato mi deve scrivere la variabile della riga "galaxy" e "system" ogni volta che x planet (la x è quella inserita nel textbox) è occupato da id_giocatore UGUALE 0
    detto in soldoni dovrebbe venire così:


    if(checkbox attivo)
    {
    if($row['player_id']!=0;if($row['planet']==x)
    {

    echo "Galassia: ".$row['galaxy']." - Sistema: ".$row['system']."- Posizione: ".$row['planet']."- Id giocatore: ".$row['player_id']."
    ";

    }
    }
    else
    {
    if($row['player_id']==0;if($row['planet']==x)
    {

    echo "Galassia: ".$row['galaxy']." - Sistema: ".$row['system']."- Posizione: ".$row['planet']."- Id giocatore: ".$row['player_id']."
    ";

    }
    }

    Per ora vi chiedo questa bischerata di codice che, almeno a me, fa impazzire!! rignrazio anitcipatamente chi mi aiuta!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505

    Re: Aiuto pre programma

    Intanto vediamo la prima parte
    Codice PHP:
    <?php  
     
    // Stabiliamo una connessione MySQL 
    mysql_connect("localhost""root""") or die(mysql_error()); 
    mysql_select_db("gala") or die(mysql_error());  

    // Eseguiamo la SELECT sulla tabella 'galgalaxy' 
    //$result = mysql_query("SELECT * FROM galgalaxy") or die(mysql_error());
    //gli eventuali errori è meglio gestirli e poter andare avanti invece che terminare il programma.
    $result mysql_query("SELECT * FROM galgalaxy");

    //per gestire l'errore dipende da come vuoi che sia il comportamento,
    //mysql_query() in caso di errore ritorna false, quindi puoi testare il valore di $result per
    //conoscere l'esito della query, se è false è andata male, altrimenti tutto ok (non testare true, testa false)

    // Salviamo alcune righe della tabella "galgalaxy" nella variabile $row
    //qui c'è il tuo errore, questa carica a vuoto la prima riga (devi togliere l'istruzione)
    mysql_fetch_array($result);

    //qui carichi dalla seconda in poi perché la prima è andata
    while($row mysql_fetch_array($result)){
        
    // Visualizziamo sulla pagina il contenuto della riga letta     
        
    echo "Galassia: ".$row['galaxy']." - Sistema: ".$row['system']."- Posizione: ".$row['planet']."- Id giocatore: ".$row['player_id']."
    "

    }  
    ?>
    Per la seconda parte il controllo sulla stampa puoi farlo così
    Codice PHP:
    //ammesso che usi POST per inviare i dati e che il checkbox si chiami checkbox
    if($_POST['checkbox'] != "") {
        if(
    $row['player_id'] != && $row['planet'] == x) {
            echo 
    "Galassia: ".$row['galaxy']." - Sistema: ".$row['system']."- Posizione: ".$row['planet']."- Id giocatore: ".$row['player_id']."
    "
    ;
        }
    }
    else {
        if(
    $row['player_id'] == && $row['planet']==x) {
            echo 
    "Galassia: ".$row['galaxy']." - Sistema: ".$row['system']."- Posizione: ".$row['planet']."- Id giocatore: ".$row['player_id']."
    "
    ;
        }

    P.S. mi hai ricordato anni bui durante i quali non poter accedere ad internet ad una certa ora poteva significare una catastrofe

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    22
    grazie mille per ora allora, per quanto riguarda l'errore della prima stringa me ne sono accorto dopo D:

    se conosci ogame, conosci sicuramente il galaxytool, e questo programmino mi serve proprio per cercere tutti i pianeti in posizione 1...non si sà mai...potrebbe esserci tanti satelliti hehehehe, oppure potrebbe essere utile per colonizzare e trovare posizioni 8 libere comunque, come faccio a inserire il checkbox, il menu a tendina e il bottone che mi fa eseguire lo script?? quando il checkbox è attivo nell'if basta inserire ""? non ci sono parole acome active false?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    22
    codice:
    <?php
    
    
    // Stabiliamo una connessione MySQL
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("gala") or die(mysql_error());
    
    // Eseguiamo la SELECT sulla tabella 'galgalaxy'
    $result = mysql_query("SELECT * FROM galgalaxy")
    or die(mysql_error());  
    
    
    while($row = mysql_fetch_array($result)){
    
    
    if($_POST['checkbox'] != "")
    {
        if($row['player_id'] != 0 && $row['planet'] ==$posizione)
    	{
            echo "Galassia: ".$row['galaxy']." - Sistema: ".$row['system']."- Posizione: ".$row['planet']."- Id giocatore: ".$row['player_id']."
    ";
        }
    }
    else 
    {
        if($row['player_id'] == 0 && $row['planet']==$posizione)
    	{
            echo "Galassia: ".$row['galaxy']." - Sistema: ".$row['system']."- Posizione: ".$row['planet']."- Id giocatore: ".$row['player_id']."
    ";
        }
    }
    }
    ?>
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    
    <input type="checkbox" name="checkbox" value="checkbox"/> 
    
    
    <select name="posizione">
    	<option value="1">1</option>
    	<option value="2">2</option>
    	<option value="3">3</option>
    	<option value="4">4</option>
    	<option value="5">5</option>
    	<option value="6">6</option>
    	<option value="7">7</option>
    	<option value="8">8</option>
    	<option value="9">9</option>
    	<option value="10">10</option>
    	<option value="11">11</option>
    	<option value="12">12</option>
    	<option value="13">13</option>
    	<option value="14">14</option>
    	<option value="15" >15</option>
    </select>
    <input name="submit" type="submit" value="Trova">
    </form>
    ho provato così però mi escano fuori parecchi errori in cui si dice:

    Undefined index: checkbox
    Undefined variable: posizione

    come faccio a fargliele vedere??

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    22
    qualcuno che mi aiuta??? mi pare una cavolata di programma per chi sa almeno le basi!!!

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ti escono tutti quegli errori perché la prima volta su quella pagina non ci arrivi dopo aver compilato una form e quindi la variabile $_POST non è inizializzata.

    Devi inserire un controllo

    Codice PHP:
    if(isset($_POST['posizione'])) {
        
    //tutta ciò che deve fare avendo compilato la form
    }
    else {
        
    //mostra la form


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.