Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    array bidimensionali calcolo chilometri

    ciao, ho necessità di implementare attraverso mysql e php un calcolo tipo quelli delel vecchie agende es:

    Codice PHP:
                 torino milano roma
    torino         
    -    152    600
    milano        152    
    -     450
    roma          600   450     

    qualcuno ha qualche idea? grazie mille
    One bug, one crash

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    un possibile inizio potrebbe essere questo:
    codice:
    $temp=array(
    	"città"=>array("torino","milano","roma"),
    	"0"=>array("-",152,600),
    	"1"=>array(152,"-",450),
    	"2"=>array(600,450,"-")
    	);
    if (!empty($_POST))
    	if ($_POST['partenza'] != $_POST['arrivo']){
    		echo "distanza: ".$temp['città'][$_POST['partenza']]." ".$temp['città'][$_POST['arrivo']];
    		echo " ".$temp[$_POST['partenza']][$_POST['arrivo']]."km";
    	} else
    		echo "partenza e arrivo coincidono";
    echo "
    \n";
    echo "<form action={$_SERVER['PHP_SELF']} method=POST>\n";
    echo "<select name=partenza>\n";
    for ($i=0;$i<3;$i++)
    	echo "<option value=$i>".$temp['città'][$i]."</option>\n";
    echo "</select>\n";
    echo "
    \n";
    echo "<select name=arrivo>\n";
    for ($i=0;$i<3;$i++)
    	echo "<option value=$i>".$temp['città'][$i]."</option>\n";
    echo "</select>
    
    <input type=submit></form>\n";
    think simple think ringo

  3. #3
    sì, questo è un ottimo inizio e ti ringrazio.

    tuttavia il mio problema è che devo creare su db circa 32 città, e il bello è questo:

    calcolare distanza tra città e città (risolto)
    calcolare costo benzina per 5 tipi categorie diverse di veicoli.

    quindi dovrei inserire nel db 5 modelli diversi, e stavo meditando sulla struttura della tabella. avevo pensato a


    codice:
    CREATE TABLE `stazioni` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `code` char(3) NOT NULL default '',
      `nome` varchar(255) NOT NULL default '',
      PRIMARY KEY  (`id`)
    )
    
    
    CREATE TABLE `matrice` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `primo_argomento` int(10) unsigned NOT NULL default '0',
      `secondo_argomento` int(10) unsigned NOT NULL default '0',
      `tipo_valore` tinyint(3) unsigned NOT NULL default '0',
      `valore` double NOT NULL default '0',
      PRIMARY KEY  (`id`),
      KEY `primo_argomento` (`primo_argomento`,`secondo_argomento`,`tipo_valore`)
    )
    
    CREATE TABLE `valori` (
      `id` smallint(5) unsigned NOT NULL auto_increment,
      `categoria` varchar(255) NOT NULL default '',
      PRIMARY KEY  (`id`)
    )

    cosa ne dici?

    è sensato?
    One bug, one crash

  4. #4
    cmq sia mi sa che devo rassegnarmi a (32*32) * 6 insert nella tabella matrice
    One bug, one crash

  5. #5
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    per il discorso delle distanze potresti fare così:

    -tabella città (ID, città) dove inserisci i nomi delle città (32 inserimenti);
    -tabella distanze (IDcittà1,IDcittà2,distanza) dove inserisci le rispettiva distanze.
    in questa ultima tabella dovrai fare 496 inserimenti.

    da dove salta fuori 496?? eccolo spiegato:

    con 3 città hai 3 distanze;
    con 4 città hai 6 distanze;
    con 5 città hai 10 distanze;

    il numero totale di distanze corrisponde alla sommatoria dei numeri da 1 a n-1, dove n è il numero di città.
    think simple think ringo

  6. #6
    sì, è come ho scritto io, solo che metto la specifica sul tipo di valore cercato.

    o mi sono perso qualcosa?
    One bug, one crash

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.